

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


 /* File created by MIDL compiler version 6.00.0361 */
/* at Wed Mar 22 20:04:06 2006
 */
/* Compiler settings for si3dobjectmodel.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


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

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

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

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __si3dobjectmodel_h__
#define __si3dobjectmodel_h__

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

/* Forward Declarations */ 

#ifndef __SIObject_FWD_DEFINED__
#define __SIObject_FWD_DEFINED__
typedef interface SIObject SIObject;
#endif 	/* __SIObject_FWD_DEFINED__ */


#ifndef __ProjectItem_FWD_DEFINED__
#define __ProjectItem_FWD_DEFINED__
typedef interface ProjectItem ProjectItem;
#endif 	/* __ProjectItem_FWD_DEFINED__ */


#ifndef __SceneItem_FWD_DEFINED__
#define __SceneItem_FWD_DEFINED__
typedef interface SceneItem SceneItem;
#endif 	/* __SceneItem_FWD_DEFINED__ */


#ifndef __X3DObject_FWD_DEFINED__
#define __X3DObject_FWD_DEFINED__
typedef interface X3DObject X3DObject;
#endif 	/* __X3DObject_FWD_DEFINED__ */


#ifndef __Primitive_FWD_DEFINED__
#define __Primitive_FWD_DEFINED__
typedef interface Primitive Primitive;
#endif 	/* __Primitive_FWD_DEFINED__ */


#ifndef __Model_FWD_DEFINED__
#define __Model_FWD_DEFINED__
typedef interface Model Model;
#endif 	/* __Model_FWD_DEFINED__ */


#ifndef __Null_FWD_DEFINED__
#define __Null_FWD_DEFINED__
typedef interface Null Null;
#endif 	/* __Null_FWD_DEFINED__ */


#ifndef __Camera_FWD_DEFINED__
#define __Camera_FWD_DEFINED__
typedef interface Camera Camera;
#endif 	/* __Camera_FWD_DEFINED__ */


#ifndef __Light_FWD_DEFINED__
#define __Light_FWD_DEFINED__
typedef interface Light Light;
#endif 	/* __Light_FWD_DEFINED__ */


#ifndef __DirectedObject_FWD_DEFINED__
#define __DirectedObject_FWD_DEFINED__
typedef interface DirectedObject DirectedObject;
#endif 	/* __DirectedObject_FWD_DEFINED__ */


#ifndef __Scene_FWD_DEFINED__
#define __Scene_FWD_DEFINED__
typedef interface Scene Scene;
#endif 	/* __Scene_FWD_DEFINED__ */


#ifndef __Project_FWD_DEFINED__
#define __Project_FWD_DEFINED__
typedef interface Project Project;
#endif 	/* __Project_FWD_DEFINED__ */


#ifndef __XSIProject_FWD_DEFINED__
#define __XSIProject_FWD_DEFINED__
typedef interface XSIProject XSIProject;
#endif 	/* __XSIProject_FWD_DEFINED__ */


#ifndef __Group_FWD_DEFINED__
#define __Group_FWD_DEFINED__
typedef interface Group Group;
#endif 	/* __Group_FWD_DEFINED__ */


#ifndef __Layer_FWD_DEFINED__
#define __Layer_FWD_DEFINED__
typedef interface Layer Layer;
#endif 	/* __Layer_FWD_DEFINED__ */


#ifndef __Pass_FWD_DEFINED__
#define __Pass_FWD_DEFINED__
typedef interface Pass Pass;
#endif 	/* __Pass_FWD_DEFINED__ */


#ifndef __Particle_FWD_DEFINED__
#define __Particle_FWD_DEFINED__
typedef interface Particle Particle;
#endif 	/* __Particle_FWD_DEFINED__ */


#ifndef __ParticleCloud_FWD_DEFINED__
#define __ParticleCloud_FWD_DEFINED__
typedef interface ParticleCloud ParticleCloud;
#endif 	/* __ParticleCloud_FWD_DEFINED__ */


#ifndef __ParticleCloudPrimitive_FWD_DEFINED__
#define __ParticleCloudPrimitive_FWD_DEFINED__
typedef interface ParticleCloudPrimitive ParticleCloudPrimitive;
#endif 	/* __ParticleCloudPrimitive_FWD_DEFINED__ */


#ifndef __AnimationSourceItem_FWD_DEFINED__
#define __AnimationSourceItem_FWD_DEFINED__
typedef interface AnimationSourceItem AnimationSourceItem;
#endif 	/* __AnimationSourceItem_FWD_DEFINED__ */


#ifndef __ActionSource_FWD_DEFINED__
#define __ActionSource_FWD_DEFINED__
typedef interface ActionSource ActionSource;
#endif 	/* __ActionSource_FWD_DEFINED__ */


#ifndef __ActionSourceCollection_FWD_DEFINED__
#define __ActionSourceCollection_FWD_DEFINED__
typedef interface ActionSourceCollection ActionSourceCollection;
#endif 	/* __ActionSourceCollection_FWD_DEFINED__ */


#ifndef __FxTree_FWD_DEFINED__
#define __FxTree_FWD_DEFINED__
typedef interface FxTree FxTree;
#endif 	/* __FxTree_FWD_DEFINED__ */


#ifndef __FxOperator_FWD_DEFINED__
#define __FxOperator_FWD_DEFINED__
typedef interface FxOperator FxOperator;
#endif 	/* __FxOperator_FWD_DEFINED__ */


#ifndef __FxOperatorCollection_FWD_DEFINED__
#define __FxOperatorCollection_FWD_DEFINED__
typedef interface FxOperatorCollection FxOperatorCollection;
#endif 	/* __FxOperatorCollection_FWD_DEFINED__ */


#ifndef __Parameter_FWD_DEFINED__
#define __Parameter_FWD_DEFINED__
typedef interface Parameter Parameter;
#endif 	/* __Parameter_FWD_DEFINED__ */


#ifndef __ProxyParameter_FWD_DEFINED__
#define __ProxyParameter_FWD_DEFINED__
typedef interface ProxyParameter ProxyParameter;
#endif 	/* __ProxyParameter_FWD_DEFINED__ */


#ifndef __ArrayParameter_FWD_DEFINED__
#define __ArrayParameter_FWD_DEFINED__
typedef interface ArrayParameter ArrayParameter;
#endif 	/* __ArrayParameter_FWD_DEFINED__ */


#ifndef __SimulationEnvironment_FWD_DEFINED__
#define __SimulationEnvironment_FWD_DEFINED__
typedef interface SimulationEnvironment SimulationEnvironment;
#endif 	/* __SimulationEnvironment_FWD_DEFINED__ */


#ifndef __SimulationEnvironmentCollection_FWD_DEFINED__
#define __SimulationEnvironmentCollection_FWD_DEFINED__
typedef interface SimulationEnvironmentCollection SimulationEnvironmentCollection;
#endif 	/* __SimulationEnvironmentCollection_FWD_DEFINED__ */


#ifndef __FileReference_FWD_DEFINED__
#define __FileReference_FWD_DEFINED__
typedef interface FileReference FileReference;
#endif 	/* __FileReference_FWD_DEFINED__ */


#ifndef __FileReferenceCollection_FWD_DEFINED__
#define __FileReferenceCollection_FWD_DEFINED__
typedef interface FileReferenceCollection FileReferenceCollection;
#endif 	/* __FileReferenceCollection_FWD_DEFINED__ */


#ifndef __HairPrimitive_FWD_DEFINED__
#define __HairPrimitive_FWD_DEFINED__
typedef interface HairPrimitive HairPrimitive;
#endif 	/* __HairPrimitive_FWD_DEFINED__ */


#ifndef __DataSource_FWD_DEFINED__
#define __DataSource_FWD_DEFINED__
typedef interface DataSource DataSource;
#endif 	/* __DataSource_FWD_DEFINED__ */


#ifndef __AnimationSource_FWD_DEFINED__
#define __AnimationSource_FWD_DEFINED__
typedef interface AnimationSource AnimationSource;
#endif 	/* __AnimationSource_FWD_DEFINED__ */


#ifndef __FCurve_FWD_DEFINED__
#define __FCurve_FWD_DEFINED__
typedef interface FCurve FCurve;
#endif 	/* __FCurve_FWD_DEFINED__ */


#ifndef __StaticSource_FWD_DEFINED__
#define __StaticSource_FWD_DEFINED__
typedef interface StaticSource StaticSource;
#endif 	/* __StaticSource_FWD_DEFINED__ */


#ifndef __FCurveKey_FWD_DEFINED__
#define __FCurveKey_FWD_DEFINED__
typedef interface FCurveKey FCurveKey;
#endif 	/* __FCurveKey_FWD_DEFINED__ */


#ifndef __ImageClip_FWD_DEFINED__
#define __ImageClip_FWD_DEFINED__
typedef interface ImageClip ImageClip;
#endif 	/* __ImageClip_FWD_DEFINED__ */


#ifndef __Expression_FWD_DEFINED__
#define __Expression_FWD_DEFINED__
typedef interface Expression Expression;
#endif 	/* __Expression_FWD_DEFINED__ */


#ifndef __ChainElement_FWD_DEFINED__
#define __ChainElement_FWD_DEFINED__
typedef interface ChainElement ChainElement;
#endif 	/* __ChainElement_FWD_DEFINED__ */


#ifndef __ChainRoot_FWD_DEFINED__
#define __ChainRoot_FWD_DEFINED__
typedef interface ChainRoot ChainRoot;
#endif 	/* __ChainRoot_FWD_DEFINED__ */


#ifndef __ChainBone_FWD_DEFINED__
#define __ChainBone_FWD_DEFINED__
typedef interface ChainBone ChainBone;
#endif 	/* __ChainBone_FWD_DEFINED__ */


#ifndef __ChainEffector_FWD_DEFINED__
#define __ChainEffector_FWD_DEFINED__
typedef interface ChainEffector ChainEffector;
#endif 	/* __ChainEffector_FWD_DEFINED__ */


#ifndef __UpdateContext_FWD_DEFINED__
#define __UpdateContext_FWD_DEFINED__
typedef interface UpdateContext UpdateContext;
#endif 	/* __UpdateContext_FWD_DEFINED__ */


#ifndef __Operator_FWD_DEFINED__
#define __Operator_FWD_DEFINED__
typedef interface Operator Operator;
#endif 	/* __Operator_FWD_DEFINED__ */


#ifndef __Envelope_FWD_DEFINED__
#define __Envelope_FWD_DEFINED__
typedef interface Envelope Envelope;
#endif 	/* __Envelope_FWD_DEFINED__ */


#ifndef __PortGroup_FWD_DEFINED__
#define __PortGroup_FWD_DEFINED__
typedef interface PortGroup PortGroup;
#endif 	/* __PortGroup_FWD_DEFINED__ */


#ifndef __Port_FWD_DEFINED__
#define __Port_FWD_DEFINED__
typedef interface Port Port;
#endif 	/* __Port_FWD_DEFINED__ */


#ifndef __InputPort_FWD_DEFINED__
#define __InputPort_FWD_DEFINED__
typedef interface InputPort InputPort;
#endif 	/* __InputPort_FWD_DEFINED__ */


#ifndef __OutputPort_FWD_DEFINED__
#define __OutputPort_FWD_DEFINED__
typedef interface OutputPort OutputPort;
#endif 	/* __OutputPort_FWD_DEFINED__ */


#ifndef __CustomOperator_FWD_DEFINED__
#define __CustomOperator_FWD_DEFINED__
typedef interface CustomOperator CustomOperator;
#endif 	/* __CustomOperator_FWD_DEFINED__ */


#ifndef __OperatorContext_FWD_DEFINED__
#define __OperatorContext_FWD_DEFINED__
typedef interface OperatorContext OperatorContext;
#endif 	/* __OperatorContext_FWD_DEFINED__ */


#ifndef __Property_FWD_DEFINED__
#define __Property_FWD_DEFINED__
typedef interface Property Property;
#endif 	/* __Property_FWD_DEFINED__ */


#ifndef __Material_FWD_DEFINED__
#define __Material_FWD_DEFINED__
typedef interface Material Material;
#endif 	/* __Material_FWD_DEFINED__ */


#ifndef __SoftMaterial_FWD_DEFINED__
#define __SoftMaterial_FWD_DEFINED__
typedef interface SoftMaterial SoftMaterial;
#endif 	/* __SoftMaterial_FWD_DEFINED__ */


#ifndef __Constraint_FWD_DEFINED__
#define __Constraint_FWD_DEFINED__
typedef interface Constraint Constraint;
#endif 	/* __Constraint_FWD_DEFINED__ */


#ifndef __Kinematics_FWD_DEFINED__
#define __Kinematics_FWD_DEFINED__
typedef interface Kinematics Kinematics;
#endif 	/* __Kinematics_FWD_DEFINED__ */


#ifndef __KinematicState_FWD_DEFINED__
#define __KinematicState_FWD_DEFINED__
typedef interface KinematicState KinematicState;
#endif 	/* __KinematicState_FWD_DEFINED__ */


#ifndef __StaticKinematicState_FWD_DEFINED__
#define __StaticKinematicState_FWD_DEFINED__
typedef interface StaticKinematicState StaticKinematicState;
#endif 	/* __StaticKinematicState_FWD_DEFINED__ */


#ifndef __Joint_FWD_DEFINED__
#define __Joint_FWD_DEFINED__
typedef interface Joint Joint;
#endif 	/* __Joint_FWD_DEFINED__ */


#ifndef __ClusterProperty_FWD_DEFINED__
#define __ClusterProperty_FWD_DEFINED__
typedef interface ClusterProperty ClusterProperty;
#endif 	/* __ClusterProperty_FWD_DEFINED__ */


#ifndef __ClusterPropertyCollection_FWD_DEFINED__
#define __ClusterPropertyCollection_FWD_DEFINED__
typedef interface ClusterPropertyCollection ClusterPropertyCollection;
#endif 	/* __ClusterPropertyCollection_FWD_DEFINED__ */


#ifndef __UserDataMap_FWD_DEFINED__
#define __UserDataMap_FWD_DEFINED__
typedef interface UserDataMap UserDataMap;
#endif 	/* __UserDataMap_FWD_DEFINED__ */


#ifndef __UserDataItem_FWD_DEFINED__
#define __UserDataItem_FWD_DEFINED__
typedef interface UserDataItem UserDataItem;
#endif 	/* __UserDataItem_FWD_DEFINED__ */


#ifndef __UserDataBlob_FWD_DEFINED__
#define __UserDataBlob_FWD_DEFINED__
typedef interface UserDataBlob UserDataBlob;
#endif 	/* __UserDataBlob_FWD_DEFINED__ */


#ifndef __CustomProperty_FWD_DEFINED__
#define __CustomProperty_FWD_DEFINED__
typedef interface CustomProperty CustomProperty;
#endif 	/* __CustomProperty_FWD_DEFINED__ */


#ifndef __ParticleType_FWD_DEFINED__
#define __ParticleType_FWD_DEFINED__
typedef interface ParticleType ParticleType;
#endif 	/* __ParticleType_FWD_DEFINED__ */


#ifndef __EnvelopeWeight_FWD_DEFINED__
#define __EnvelopeWeight_FWD_DEFINED__
typedef interface EnvelopeWeight EnvelopeWeight;
#endif 	/* __EnvelopeWeight_FWD_DEFINED__ */


#ifndef __Geometry_FWD_DEFINED__
#define __Geometry_FWD_DEFINED__
typedef interface Geometry Geometry;
#endif 	/* __Geometry_FWD_DEFINED__ */


#ifndef __Cluster_FWD_DEFINED__
#define __Cluster_FWD_DEFINED__
typedef interface Cluster Cluster;
#endif 	/* __Cluster_FWD_DEFINED__ */


#ifndef __Facet_FWD_DEFINED__
#define __Facet_FWD_DEFINED__
typedef interface Facet Facet;
#endif 	/* __Facet_FWD_DEFINED__ */


#ifndef __Segment_FWD_DEFINED__
#define __Segment_FWD_DEFINED__
typedef interface Segment Segment;
#endif 	/* __Segment_FWD_DEFINED__ */


#ifndef __Point_FWD_DEFINED__
#define __Point_FWD_DEFINED__
typedef interface Point Point;
#endif 	/* __Point_FWD_DEFINED__ */


#ifndef __Triangle_FWD_DEFINED__
#define __Triangle_FWD_DEFINED__
typedef interface Triangle Triangle;
#endif 	/* __Triangle_FWD_DEFINED__ */


#ifndef __TrianglePoint_FWD_DEFINED__
#define __TrianglePoint_FWD_DEFINED__
typedef interface TrianglePoint TrianglePoint;
#endif 	/* __TrianglePoint_FWD_DEFINED__ */


#ifndef __UV_FWD_DEFINED__
#define __UV_FWD_DEFINED__
typedef interface UV UV;
#endif 	/* __UV_FWD_DEFINED__ */


#ifndef __NurbsSurfaceMesh_FWD_DEFINED__
#define __NurbsSurfaceMesh_FWD_DEFINED__
typedef interface NurbsSurfaceMesh NurbsSurfaceMesh;
#endif 	/* __NurbsSurfaceMesh_FWD_DEFINED__ */


#ifndef __NurbsSurface_FWD_DEFINED__
#define __NurbsSurface_FWD_DEFINED__
typedef interface NurbsSurface NurbsSurface;
#endif 	/* __NurbsSurface_FWD_DEFINED__ */


#ifndef __NurbsSurfaceCollection_FWD_DEFINED__
#define __NurbsSurfaceCollection_FWD_DEFINED__
typedef interface NurbsSurfaceCollection NurbsSurfaceCollection;
#endif 	/* __NurbsSurfaceCollection_FWD_DEFINED__ */


#ifndef __KnotCollection_FWD_DEFINED__
#define __KnotCollection_FWD_DEFINED__
typedef interface KnotCollection KnotCollection;
#endif 	/* __KnotCollection_FWD_DEFINED__ */


#ifndef __PolygonNodeCollection_FWD_DEFINED__
#define __PolygonNodeCollection_FWD_DEFINED__
typedef interface PolygonNodeCollection PolygonNodeCollection;
#endif 	/* __PolygonNodeCollection_FWD_DEFINED__ */


#ifndef __PolygonFace_FWD_DEFINED__
#define __PolygonFace_FWD_DEFINED__
typedef interface PolygonFace PolygonFace;
#endif 	/* __PolygonFace_FWD_DEFINED__ */


#ifndef __PolygonFaceCollection_FWD_DEFINED__
#define __PolygonFaceCollection_FWD_DEFINED__
typedef interface PolygonFaceCollection PolygonFaceCollection;
#endif 	/* __PolygonFaceCollection_FWD_DEFINED__ */


#ifndef __PolygonMesh_FWD_DEFINED__
#define __PolygonMesh_FWD_DEFINED__
typedef interface PolygonMesh PolygonMesh;
#endif 	/* __PolygonMesh_FWD_DEFINED__ */


#ifndef __PolygonNode_FWD_DEFINED__
#define __PolygonNode_FWD_DEFINED__
typedef interface PolygonNode PolygonNode;
#endif 	/* __PolygonNode_FWD_DEFINED__ */


#ifndef __ParamDef_FWD_DEFINED__
#define __ParamDef_FWD_DEFINED__
typedef interface ParamDef ParamDef;
#endif 	/* __ParamDef_FWD_DEFINED__ */


#ifndef __NurbsCurveList_FWD_DEFINED__
#define __NurbsCurveList_FWD_DEFINED__
typedef interface NurbsCurveList NurbsCurveList;
#endif 	/* __NurbsCurveList_FWD_DEFINED__ */


#ifndef __NurbsCurveCollection_FWD_DEFINED__
#define __NurbsCurveCollection_FWD_DEFINED__
typedef interface NurbsCurveCollection NurbsCurveCollection;
#endif 	/* __NurbsCurveCollection_FWD_DEFINED__ */


#ifndef __NurbsCurve_FWD_DEFINED__
#define __NurbsCurve_FWD_DEFINED__
typedef interface NurbsCurve NurbsCurve;
#endif 	/* __NurbsCurve_FWD_DEFINED__ */


#ifndef __ControlPointCollection_FWD_DEFINED__
#define __ControlPointCollection_FWD_DEFINED__
typedef interface ControlPointCollection ControlPointCollection;
#endif 	/* __ControlPointCollection_FWD_DEFINED__ */


#ifndef __ControlPoint_FWD_DEFINED__
#define __ControlPoint_FWD_DEFINED__
typedef interface ControlPoint ControlPoint;
#endif 	/* __ControlPoint_FWD_DEFINED__ */


#ifndef __Sample_FWD_DEFINED__
#define __Sample_FWD_DEFINED__
typedef interface Sample Sample;
#endif 	/* __Sample_FWD_DEFINED__ */


#ifndef __SampleCollection_FWD_DEFINED__
#define __SampleCollection_FWD_DEFINED__
typedef interface SampleCollection SampleCollection;
#endif 	/* __SampleCollection_FWD_DEFINED__ */


#ifndef __NurbsSample_FWD_DEFINED__
#define __NurbsSample_FWD_DEFINED__
typedef interface NurbsSample NurbsSample;
#endif 	/* __NurbsSample_FWD_DEFINED__ */


#ifndef __NurbsSampleCollection_FWD_DEFINED__
#define __NurbsSampleCollection_FWD_DEFINED__
typedef interface NurbsSampleCollection NurbsSampleCollection;
#endif 	/* __NurbsSampleCollection_FWD_DEFINED__ */


#ifndef __Edge_FWD_DEFINED__
#define __Edge_FWD_DEFINED__
typedef interface Edge Edge;
#endif 	/* __Edge_FWD_DEFINED__ */


#ifndef __EdgeCollection_FWD_DEFINED__
#define __EdgeCollection_FWD_DEFINED__
typedef interface EdgeCollection EdgeCollection;
#endif 	/* __EdgeCollection_FWD_DEFINED__ */


#ifndef __Vertex_FWD_DEFINED__
#define __Vertex_FWD_DEFINED__
typedef interface Vertex Vertex;
#endif 	/* __Vertex_FWD_DEFINED__ */


#ifndef __VertexCollection_FWD_DEFINED__
#define __VertexCollection_FWD_DEFINED__
typedef interface VertexCollection VertexCollection;
#endif 	/* __VertexCollection_FWD_DEFINED__ */


#ifndef __PointLocatorData_FWD_DEFINED__
#define __PointLocatorData_FWD_DEFINED__
typedef interface PointLocatorData PointLocatorData;
#endif 	/* __PointLocatorData_FWD_DEFINED__ */


#ifndef __LightRig_FWD_DEFINED__
#define __LightRig_FWD_DEFINED__
typedef interface LightRig LightRig;
#endif 	/* __LightRig_FWD_DEFINED__ */


#ifndef __CameraRig_FWD_DEFINED__
#define __CameraRig_FWD_DEFINED__
typedef interface CameraRig CameraRig;
#endif 	/* __CameraRig_FWD_DEFINED__ */


#ifndef __Shader_FWD_DEFINED__
#define __Shader_FWD_DEFINED__
typedef interface Shader Shader;
#endif 	/* __Shader_FWD_DEFINED__ */


#ifndef __ConnectionPoint_FWD_DEFINED__
#define __ConnectionPoint_FWD_DEFINED__
typedef interface ConnectionPoint ConnectionPoint;
#endif 	/* __ConnectionPoint_FWD_DEFINED__ */


#ifndef __Texture_FWD_DEFINED__
#define __Texture_FWD_DEFINED__
typedef interface Texture Texture;
#endif 	/* __Texture_FWD_DEFINED__ */


#ifndef __TextureLayer_FWD_DEFINED__
#define __TextureLayer_FWD_DEFINED__
typedef interface TextureLayer TextureLayer;
#endif 	/* __TextureLayer_FWD_DEFINED__ */


#ifndef __TextureLayerPort_FWD_DEFINED__
#define __TextureLayerPort_FWD_DEFINED__
typedef interface TextureLayerPort TextureLayerPort;
#endif 	/* __TextureLayerPort_FWD_DEFINED__ */


#ifndef __SIObjectCollection_FWD_DEFINED__
#define __SIObjectCollection_FWD_DEFINED__
typedef interface SIObjectCollection SIObjectCollection;
#endif 	/* __SIObjectCollection_FWD_DEFINED__ */


#ifndef __ProjectItemCollection_FWD_DEFINED__
#define __ProjectItemCollection_FWD_DEFINED__
typedef interface ProjectItemCollection ProjectItemCollection;
#endif 	/* __ProjectItemCollection_FWD_DEFINED__ */


#ifndef __SceneItemCollection_FWD_DEFINED__
#define __SceneItemCollection_FWD_DEFINED__
typedef interface SceneItemCollection SceneItemCollection;
#endif 	/* __SceneItemCollection_FWD_DEFINED__ */


#ifndef __PrimitiveCollection_FWD_DEFINED__
#define __PrimitiveCollection_FWD_DEFINED__
typedef interface PrimitiveCollection PrimitiveCollection;
#endif 	/* __PrimitiveCollection_FWD_DEFINED__ */


#ifndef __X3DObjectCollection_FWD_DEFINED__
#define __X3DObjectCollection_FWD_DEFINED__
typedef interface X3DObjectCollection X3DObjectCollection;
#endif 	/* __X3DObjectCollection_FWD_DEFINED__ */


#ifndef __ModelCollection_FWD_DEFINED__
#define __ModelCollection_FWD_DEFINED__
typedef interface ModelCollection ModelCollection;
#endif 	/* __ModelCollection_FWD_DEFINED__ */


#ifndef __PortGroupCollection_FWD_DEFINED__
#define __PortGroupCollection_FWD_DEFINED__
typedef interface PortGroupCollection PortGroupCollection;
#endif 	/* __PortGroupCollection_FWD_DEFINED__ */


#ifndef __PortCollection_FWD_DEFINED__
#define __PortCollection_FWD_DEFINED__
typedef interface PortCollection PortCollection;
#endif 	/* __PortCollection_FWD_DEFINED__ */


#ifndef __InputPortCollection_FWD_DEFINED__
#define __InputPortCollection_FWD_DEFINED__
typedef interface InputPortCollection InputPortCollection;
#endif 	/* __InputPortCollection_FWD_DEFINED__ */


#ifndef __OutputPortCollection_FWD_DEFINED__
#define __OutputPortCollection_FWD_DEFINED__
typedef interface OutputPortCollection OutputPortCollection;
#endif 	/* __OutputPortCollection_FWD_DEFINED__ */


#ifndef __FacetCollection_FWD_DEFINED__
#define __FacetCollection_FWD_DEFINED__
typedef interface FacetCollection FacetCollection;
#endif 	/* __FacetCollection_FWD_DEFINED__ */


#ifndef __SegmentCollection_FWD_DEFINED__
#define __SegmentCollection_FWD_DEFINED__
typedef interface SegmentCollection SegmentCollection;
#endif 	/* __SegmentCollection_FWD_DEFINED__ */


#ifndef __PointCollection_FWD_DEFINED__
#define __PointCollection_FWD_DEFINED__
typedef interface PointCollection PointCollection;
#endif 	/* __PointCollection_FWD_DEFINED__ */


#ifndef __ClusterCollection_FWD_DEFINED__
#define __ClusterCollection_FWD_DEFINED__
typedef interface ClusterCollection ClusterCollection;
#endif 	/* __ClusterCollection_FWD_DEFINED__ */


#ifndef __ClusterElementCollection_FWD_DEFINED__
#define __ClusterElementCollection_FWD_DEFINED__
typedef interface ClusterElementCollection ClusterElementCollection;
#endif 	/* __ClusterElementCollection_FWD_DEFINED__ */


#ifndef __OperatorCollection_FWD_DEFINED__
#define __OperatorCollection_FWD_DEFINED__
typedef interface OperatorCollection OperatorCollection;
#endif 	/* __OperatorCollection_FWD_DEFINED__ */


#ifndef __EnvelopeCollection_FWD_DEFINED__
#define __EnvelopeCollection_FWD_DEFINED__
typedef interface EnvelopeCollection EnvelopeCollection;
#endif 	/* __EnvelopeCollection_FWD_DEFINED__ */


#ifndef __ConstraintCollection_FWD_DEFINED__
#define __ConstraintCollection_FWD_DEFINED__
typedef interface ConstraintCollection ConstraintCollection;
#endif 	/* __ConstraintCollection_FWD_DEFINED__ */


#ifndef __ShaderCollection_FWD_DEFINED__
#define __ShaderCollection_FWD_DEFINED__
typedef interface ShaderCollection ShaderCollection;
#endif 	/* __ShaderCollection_FWD_DEFINED__ */


#ifndef __ImageClipCollection_FWD_DEFINED__
#define __ImageClipCollection_FWD_DEFINED__
typedef interface ImageClipCollection ImageClipCollection;
#endif 	/* __ImageClipCollection_FWD_DEFINED__ */


#ifndef __TextureLayerCollection_FWD_DEFINED__
#define __TextureLayerCollection_FWD_DEFINED__
typedef interface TextureLayerCollection TextureLayerCollection;
#endif 	/* __TextureLayerCollection_FWD_DEFINED__ */


#ifndef __TextureLayerPortCollection_FWD_DEFINED__
#define __TextureLayerPortCollection_FWD_DEFINED__
typedef interface TextureLayerPortCollection TextureLayerPortCollection;
#endif 	/* __TextureLayerPortCollection_FWD_DEFINED__ */


#ifndef __ConnectionPointCollection_FWD_DEFINED__
#define __ConnectionPointCollection_FWD_DEFINED__
typedef interface ConnectionPointCollection ConnectionPointCollection;
#endif 	/* __ConnectionPointCollection_FWD_DEFINED__ */


#ifndef __ChainBoneCollection_FWD_DEFINED__
#define __ChainBoneCollection_FWD_DEFINED__
typedef interface ChainBoneCollection ChainBoneCollection;
#endif 	/* __ChainBoneCollection_FWD_DEFINED__ */


#ifndef __PassCollection_FWD_DEFINED__
#define __PassCollection_FWD_DEFINED__
typedef interface PassCollection PassCollection;
#endif 	/* __PassCollection_FWD_DEFINED__ */


#ifndef __LayerCollection_FWD_DEFINED__
#define __LayerCollection_FWD_DEFINED__
typedef interface LayerCollection LayerCollection;
#endif 	/* __LayerCollection_FWD_DEFINED__ */


#ifndef __TriangleCollection_FWD_DEFINED__
#define __TriangleCollection_FWD_DEFINED__
typedef interface TriangleCollection TriangleCollection;
#endif 	/* __TriangleCollection_FWD_DEFINED__ */


#ifndef __TrianglePointCollection_FWD_DEFINED__
#define __TrianglePointCollection_FWD_DEFINED__
typedef interface TrianglePointCollection TrianglePointCollection;
#endif 	/* __TrianglePointCollection_FWD_DEFINED__ */


#ifndef __ParticleCollection_FWD_DEFINED__
#define __ParticleCollection_FWD_DEFINED__
typedef interface ParticleCollection ParticleCollection;
#endif 	/* __ParticleCollection_FWD_DEFINED__ */


#ifndef __AnimationSourceItemCollection_FWD_DEFINED__
#define __AnimationSourceItemCollection_FWD_DEFINED__
typedef interface AnimationSourceItemCollection AnimationSourceItemCollection;
#endif 	/* __AnimationSourceItemCollection_FWD_DEFINED__ */


#ifndef __MappedItemCollection_FWD_DEFINED__
#define __MappedItemCollection_FWD_DEFINED__
typedef interface MappedItemCollection MappedItemCollection;
#endif 	/* __MappedItemCollection_FWD_DEFINED__ */


#ifndef __ParameterCollection_FWD_DEFINED__
#define __ParameterCollection_FWD_DEFINED__
typedef interface ParameterCollection ParameterCollection;
#endif 	/* __ParameterCollection_FWD_DEFINED__ */


#ifndef __DataSourceCollection_FWD_DEFINED__
#define __DataSourceCollection_FWD_DEFINED__
typedef interface DataSourceCollection DataSourceCollection;
#endif 	/* __DataSourceCollection_FWD_DEFINED__ */


#ifndef __FCurveCollection_FWD_DEFINED__
#define __FCurveCollection_FWD_DEFINED__
typedef interface FCurveCollection FCurveCollection;
#endif 	/* __FCurveCollection_FWD_DEFINED__ */


#ifndef __FCurveKeyCollection_FWD_DEFINED__
#define __FCurveKeyCollection_FWD_DEFINED__
typedef interface FCurveKeyCollection FCurveKeyCollection;
#endif 	/* __FCurveKeyCollection_FWD_DEFINED__ */


#ifndef __IDispatchCollection_FWD_DEFINED__
#define __IDispatchCollection_FWD_DEFINED__
typedef interface IDispatchCollection IDispatchCollection;
#endif 	/* __IDispatchCollection_FWD_DEFINED__ */


#ifndef __ParticleTypeCollection_FWD_DEFINED__
#define __ParticleTypeCollection_FWD_DEFINED__
typedef interface ParticleTypeCollection ParticleTypeCollection;
#endif 	/* __ParticleTypeCollection_FWD_DEFINED__ */


#ifndef __ParticleAttributeCollection_FWD_DEFINED__
#define __ParticleAttributeCollection_FWD_DEFINED__
typedef interface ParticleAttributeCollection ParticleAttributeCollection;
#endif 	/* __ParticleAttributeCollection_FWD_DEFINED__ */


#ifndef __ClipCollection_FWD_DEFINED__
#define __ClipCollection_FWD_DEFINED__
typedef interface ClipCollection ClipCollection;
#endif 	/* __ClipCollection_FWD_DEFINED__ */


#ifndef __TrackCollection_FWD_DEFINED__
#define __TrackCollection_FWD_DEFINED__
typedef interface TrackCollection TrackCollection;
#endif 	/* __TrackCollection_FWD_DEFINED__ */


#ifndef __TransitionCollection_FWD_DEFINED__
#define __TransitionCollection_FWD_DEFINED__
typedef interface TransitionCollection TransitionCollection;
#endif 	/* __TransitionCollection_FWD_DEFINED__ */


#ifndef __SourceCollection_FWD_DEFINED__
#define __SourceCollection_FWD_DEFINED__
typedef interface SourceCollection SourceCollection;
#endif 	/* __SourceCollection_FWD_DEFINED__ */


#ifndef __ClipEffectItemCollection_FWD_DEFINED__
#define __ClipEffectItemCollection_FWD_DEFINED__
typedef interface ClipEffectItemCollection ClipEffectItemCollection;
#endif 	/* __ClipEffectItemCollection_FWD_DEFINED__ */


#ifndef __ClipRelationCollection_FWD_DEFINED__
#define __ClipRelationCollection_FWD_DEFINED__
typedef interface ClipRelationCollection ClipRelationCollection;
#endif 	/* __ClipRelationCollection_FWD_DEFINED__ */


#ifndef __LibraryCollection_FWD_DEFINED__
#define __LibraryCollection_FWD_DEFINED__
typedef interface LibraryCollection LibraryCollection;
#endif 	/* __LibraryCollection_FWD_DEFINED__ */


#ifndef __SceneCollection_FWD_DEFINED__
#define __SceneCollection_FWD_DEFINED__
typedef interface SceneCollection SceneCollection;
#endif 	/* __SceneCollection_FWD_DEFINED__ */


#ifndef __GroupCollection_FWD_DEFINED__
#define __GroupCollection_FWD_DEFINED__
typedef interface GroupCollection GroupCollection;
#endif 	/* __GroupCollection_FWD_DEFINED__ */


#ifndef __MaterialCollection_FWD_DEFINED__
#define __MaterialCollection_FWD_DEFINED__
typedef interface MaterialCollection MaterialCollection;
#endif 	/* __MaterialCollection_FWD_DEFINED__ */


#ifndef __PropertyCollection_FWD_DEFINED__
#define __PropertyCollection_FWD_DEFINED__
typedef interface PropertyCollection PropertyCollection;
#endif 	/* __PropertyCollection_FWD_DEFINED__ */


#ifndef __StaticKinematicStateCollection_FWD_DEFINED__
#define __StaticKinematicStateCollection_FWD_DEFINED__
typedef interface StaticKinematicStateCollection StaticKinematicStateCollection;
#endif 	/* __StaticKinematicStateCollection_FWD_DEFINED__ */


#ifndef __Color_FWD_DEFINED__
#define __Color_FWD_DEFINED__
typedef interface Color Color;
#endif 	/* __Color_FWD_DEFINED__ */


#ifndef __OGLMaterial_FWD_DEFINED__
#define __OGLMaterial_FWD_DEFINED__
typedef interface OGLMaterial OGLMaterial;
#endif 	/* __OGLMaterial_FWD_DEFINED__ */


#ifndef __OGLLight_FWD_DEFINED__
#define __OGLLight_FWD_DEFINED__
typedef interface OGLLight OGLLight;
#endif 	/* __OGLLight_FWD_DEFINED__ */


#ifndef __OGLTexture_FWD_DEFINED__
#define __OGLTexture_FWD_DEFINED__
typedef interface OGLTexture OGLTexture;
#endif 	/* __OGLTexture_FWD_DEFINED__ */


#ifndef __ParticleAttribute_FWD_DEFINED__
#define __ParticleAttribute_FWD_DEFINED__
typedef interface ParticleAttribute ParticleAttribute;
#endif 	/* __ParticleAttribute_FWD_DEFINED__ */


#ifndef __Filter_FWD_DEFINED__
#define __Filter_FWD_DEFINED__
typedef interface Filter Filter;
#endif 	/* __Filter_FWD_DEFINED__ */


#ifndef __FilterCollection_FWD_DEFINED__
#define __FilterCollection_FWD_DEFINED__
typedef interface FilterCollection FilterCollection;
#endif 	/* __FilterCollection_FWD_DEFINED__ */


#ifndef __GridData_FWD_DEFINED__
#define __GridData_FWD_DEFINED__
typedef interface GridData GridData;
#endif 	/* __GridData_FWD_DEFINED__ */


#ifndef __GridWidget_FWD_DEFINED__
#define __GridWidget_FWD_DEFINED__
typedef interface GridWidget GridWidget;
#endif 	/* __GridWidget_FWD_DEFINED__ */


#ifndef __Library_FWD_DEFINED__
#define __Library_FWD_DEFINED__
typedef interface Library Library;
#endif 	/* __Library_FWD_DEFINED__ */


#ifndef __MaterialLibrary_FWD_DEFINED__
#define __MaterialLibrary_FWD_DEFINED__
typedef interface MaterialLibrary MaterialLibrary;
#endif 	/* __MaterialLibrary_FWD_DEFINED__ */


#ifndef __CollectionItemLegacy_FWD_DEFINED__
#define __CollectionItemLegacy_FWD_DEFINED__
typedef interface CollectionItemLegacy CollectionItemLegacy;
#endif 	/* __CollectionItemLegacy_FWD_DEFINED__ */


#ifndef __ShapeClip_FWD_DEFINED__
#define __ShapeClip_FWD_DEFINED__
typedef interface ShapeClip ShapeClip;
#endif 	/* __ShapeClip_FWD_DEFINED__ */


#ifndef __Clip_FWD_DEFINED__
#define __Clip_FWD_DEFINED__
typedef interface Clip Clip;
#endif 	/* __Clip_FWD_DEFINED__ */


#ifndef __MappedItem_FWD_DEFINED__
#define __MappedItem_FWD_DEFINED__
typedef interface MappedItem MappedItem;
#endif 	/* __MappedItem_FWD_DEFINED__ */


#ifndef __ClipContainer_FWD_DEFINED__
#define __ClipContainer_FWD_DEFINED__
typedef interface ClipContainer ClipContainer;
#endif 	/* __ClipContainer_FWD_DEFINED__ */


#ifndef __Track_FWD_DEFINED__
#define __Track_FWD_DEFINED__
typedef interface Track Track;
#endif 	/* __Track_FWD_DEFINED__ */


#ifndef __Transition_FWD_DEFINED__
#define __Transition_FWD_DEFINED__
typedef interface Transition Transition;
#endif 	/* __Transition_FWD_DEFINED__ */


#ifndef __TimeControl_FWD_DEFINED__
#define __TimeControl_FWD_DEFINED__
typedef interface TimeControl TimeControl;
#endif 	/* __TimeControl_FWD_DEFINED__ */


#ifndef __Source_FWD_DEFINED__
#define __Source_FWD_DEFINED__
typedef interface Source Source;
#endif 	/* __Source_FWD_DEFINED__ */


#ifndef __ShapeKey_FWD_DEFINED__
#define __ShapeKey_FWD_DEFINED__
typedef interface ShapeKey ShapeKey;
#endif 	/* __ShapeKey_FWD_DEFINED__ */


#ifndef __ClipEffect_FWD_DEFINED__
#define __ClipEffect_FWD_DEFINED__
typedef interface ClipEffect ClipEffect;
#endif 	/* __ClipEffect_FWD_DEFINED__ */


#ifndef __ClipEffectItem_FWD_DEFINED__
#define __ClipEffectItem_FWD_DEFINED__
typedef interface ClipEffectItem ClipEffectItem;
#endif 	/* __ClipEffectItem_FWD_DEFINED__ */


#ifndef __ClipRelation_FWD_DEFINED__
#define __ClipRelation_FWD_DEFINED__
typedef interface ClipRelation ClipRelation;
#endif 	/* __ClipRelation_FWD_DEFINED__ */


#ifndef __Mixer_FWD_DEFINED__
#define __Mixer_FWD_DEFINED__
typedef interface Mixer Mixer;
#endif 	/* __Mixer_FWD_DEFINED__ */


#ifndef __Application_FWD_DEFINED__
#define __Application_FWD_DEFINED__
typedef interface Application Application;
#endif 	/* __Application_FWD_DEFINED__ */


#ifndef __XSIApplication_FWD_DEFINED__
#define __XSIApplication_FWD_DEFINED__
typedef interface XSIApplication XSIApplication;
#endif 	/* __XSIApplication_FWD_DEFINED__ */


#ifndef __XSIApplicationEvents_FWD_DEFINED__
#define __XSIApplicationEvents_FWD_DEFINED__
typedef interface XSIApplicationEvents XSIApplicationEvents;
#endif 	/* __XSIApplicationEvents_FWD_DEFINED__ */


#ifndef __DXSIApplicationEvents_FWD_DEFINED__
#define __DXSIApplicationEvents_FWD_DEFINED__
typedef interface DXSIApplicationEvents DXSIApplicationEvents;
#endif 	/* __DXSIApplicationEvents_FWD_DEFINED__ */


#ifndef __Dictionary_FWD_DEFINED__
#define __Dictionary_FWD_DEFINED__
typedef interface Dictionary Dictionary;
#endif 	/* __Dictionary_FWD_DEFINED__ */


#ifndef __Selection_FWD_DEFINED__
#define __Selection_FWD_DEFINED__
typedef interface Selection Selection;
#endif 	/* __Selection_FWD_DEFINED__ */


#ifndef __Command_FWD_DEFINED__
#define __Command_FWD_DEFINED__
typedef interface Command Command;
#endif 	/* __Command_FWD_DEFINED__ */


#ifndef __Argument_FWD_DEFINED__
#define __Argument_FWD_DEFINED__
typedef interface Argument Argument;
#endif 	/* __Argument_FWD_DEFINED__ */


#ifndef __ArgumentHandler_FWD_DEFINED__
#define __ArgumentHandler_FWD_DEFINED__
typedef interface ArgumentHandler ArgumentHandler;
#endif 	/* __ArgumentHandler_FWD_DEFINED__ */


#ifndef __EventInfo_FWD_DEFINED__
#define __EventInfo_FWD_DEFINED__
typedef interface EventInfo EventInfo;
#endif 	/* __EventInfo_FWD_DEFINED__ */


#ifndef __TimerEvent_FWD_DEFINED__
#define __TimerEvent_FWD_DEFINED__
typedef interface TimerEvent TimerEvent;
#endif 	/* __TimerEvent_FWD_DEFINED__ */


#ifndef __CommandCollection_FWD_DEFINED__
#define __CommandCollection_FWD_DEFINED__
typedef interface CommandCollection CommandCollection;
#endif 	/* __CommandCollection_FWD_DEFINED__ */


#ifndef __ArgumentCollection_FWD_DEFINED__
#define __ArgumentCollection_FWD_DEFINED__
typedef interface ArgumentCollection ArgumentCollection;
#endif 	/* __ArgumentCollection_FWD_DEFINED__ */


#ifndef __EventInfoCollection_FWD_DEFINED__
#define __EventInfoCollection_FWD_DEFINED__
typedef interface EventInfoCollection EventInfoCollection;
#endif 	/* __EventInfoCollection_FWD_DEFINED__ */


#ifndef __PluginCollection_FWD_DEFINED__
#define __PluginCollection_FWD_DEFINED__
typedef interface PluginCollection PluginCollection;
#endif 	/* __PluginCollection_FWD_DEFINED__ */


#ifndef __PluginItemCollection_FWD_DEFINED__
#define __PluginItemCollection_FWD_DEFINED__
typedef interface PluginItemCollection PluginItemCollection;
#endif 	/* __PluginItemCollection_FWD_DEFINED__ */


#ifndef __XSICollection_FWD_DEFINED__
#define __XSICollection_FWD_DEFINED__
typedef interface XSICollection XSICollection;
#endif 	/* __XSICollection_FWD_DEFINED__ */


#ifndef __CollectionItem_FWD_DEFINED__
#define __CollectionItem_FWD_DEFINED__
typedef interface CollectionItem CollectionItem;
#endif 	/* __CollectionItem_FWD_DEFINED__ */


#ifndef __SubComponent_FWD_DEFINED__
#define __SubComponent_FWD_DEFINED__
typedef interface SubComponent SubComponent;
#endif 	/* __SubComponent_FWD_DEFINED__ */


#ifndef __Image_FWD_DEFINED__
#define __Image_FWD_DEFINED__
typedef interface Image Image;
#endif 	/* __Image_FWD_DEFINED__ */


#ifndef __XSIUIToolkit_FWD_DEFINED__
#define __XSIUIToolkit_FWD_DEFINED__
typedef interface XSIUIToolkit XSIUIToolkit;
#endif 	/* __XSIUIToolkit_FWD_DEFINED__ */


#ifndef __FileBrowser_FWD_DEFINED__
#define __FileBrowser_FWD_DEFINED__
typedef interface FileBrowser FileBrowser;
#endif 	/* __FileBrowser_FWD_DEFINED__ */


#ifndef __ProgressBar_FWD_DEFINED__
#define __ProgressBar_FWD_DEFINED__
typedef interface ProgressBar ProgressBar;
#endif 	/* __ProgressBar_FWD_DEFINED__ */


#ifndef __FCurveEditor_FWD_DEFINED__
#define __FCurveEditor_FWD_DEFINED__
typedef interface FCurveEditor FCurveEditor;
#endif 	/* __FCurveEditor_FWD_DEFINED__ */


#ifndef __PPGLayout_FWD_DEFINED__
#define __PPGLayout_FWD_DEFINED__
typedef interface PPGLayout PPGLayout;
#endif 	/* __PPGLayout_FWD_DEFINED__ */


#ifndef __PPGItem_FWD_DEFINED__
#define __PPGItem_FWD_DEFINED__
typedef interface PPGItem PPGItem;
#endif 	/* __PPGItem_FWD_DEFINED__ */


#ifndef __Context_FWD_DEFINED__
#define __Context_FWD_DEFINED__
typedef interface Context Context;
#endif 	/* __Context_FWD_DEFINED__ */


#ifndef __XSIFactory_FWD_DEFINED__
#define __XSIFactory_FWD_DEFINED__
typedef interface XSIFactory XSIFactory;
#endif 	/* __XSIFactory_FWD_DEFINED__ */


#ifndef __Device_FWD_DEFINED__
#define __Device_FWD_DEFINED__
typedef interface Device Device;
#endif 	/* __Device_FWD_DEFINED__ */


#ifndef __DeviceCollection_FWD_DEFINED__
#define __DeviceCollection_FWD_DEFINED__
typedef interface DeviceCollection DeviceCollection;
#endif 	/* __DeviceCollection_FWD_DEFINED__ */


#ifndef __Channel_FWD_DEFINED__
#define __Channel_FWD_DEFINED__
typedef interface Channel Channel;
#endif 	/* __Channel_FWD_DEFINED__ */


#ifndef __Addon_FWD_DEFINED__
#define __Addon_FWD_DEFINED__
typedef interface Addon Addon;
#endif 	/* __Addon_FWD_DEFINED__ */


#ifndef __Preferences_FWD_DEFINED__
#define __Preferences_FWD_DEFINED__
typedef interface Preferences Preferences;
#endif 	/* __Preferences_FWD_DEFINED__ */


#ifndef __Plugin_FWD_DEFINED__
#define __Plugin_FWD_DEFINED__
typedef interface Plugin Plugin;
#endif 	/* __Plugin_FWD_DEFINED__ */


#ifndef __PluginItem_FWD_DEFINED__
#define __PluginItem_FWD_DEFINED__
typedef interface PluginItem PluginItem;
#endif 	/* __PluginItem_FWD_DEFINED__ */


#ifndef __PluginRegistrar_FWD_DEFINED__
#define __PluginRegistrar_FWD_DEFINED__
typedef interface PluginRegistrar PluginRegistrar;
#endif 	/* __PluginRegistrar_FWD_DEFINED__ */


#ifndef __Desktop_FWD_DEFINED__
#define __Desktop_FWD_DEFINED__
typedef interface Desktop Desktop;
#endif 	/* __Desktop_FWD_DEFINED__ */


#ifndef __Layout_FWD_DEFINED__
#define __Layout_FWD_DEFINED__
typedef interface Layout Layout;
#endif 	/* __Layout_FWD_DEFINED__ */


#ifndef __View_FWD_DEFINED__
#define __View_FWD_DEFINED__
typedef interface View View;
#endif 	/* __View_FWD_DEFINED__ */


#ifndef __UIObject_FWD_DEFINED__
#define __UIObject_FWD_DEFINED__
typedef interface UIObject UIObject;
#endif 	/* __UIObject_FWD_DEFINED__ */


#ifndef __LayoutCollection_FWD_DEFINED__
#define __LayoutCollection_FWD_DEFINED__
typedef interface LayoutCollection LayoutCollection;
#endif 	/* __LayoutCollection_FWD_DEFINED__ */


#ifndef __ViewCollection_FWD_DEFINED__
#define __ViewCollection_FWD_DEFINED__
typedef interface ViewCollection ViewCollection;
#endif 	/* __ViewCollection_FWD_DEFINED__ */


#ifndef __Menu_FWD_DEFINED__
#define __Menu_FWD_DEFINED__
typedef interface Menu Menu;
#endif 	/* __Menu_FWD_DEFINED__ */


#ifndef __MenuItem_FWD_DEFINED__
#define __MenuItem_FWD_DEFINED__
typedef interface MenuItem MenuItem;
#endif 	/* __MenuItem_FWD_DEFINED__ */


#ifndef __CXSIApplication_FWD_DEFINED__
#define __CXSIApplication_FWD_DEFINED__

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

#endif 	/* __CXSIApplication_FWD_DEFINED__ */


#ifndef __CXSICollection_FWD_DEFINED__
#define __CXSICollection_FWD_DEFINED__

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

#endif 	/* __CXSICollection_FWD_DEFINED__ */


#ifndef __CXSICollectionItem_FWD_DEFINED__
#define __CXSICollectionItem_FWD_DEFINED__

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

#endif 	/* __CXSICollectionItem_FWD_DEFINED__ */


#ifndef __CXSIUIToolkit_FWD_DEFINED__
#define __CXSIUIToolkit_FWD_DEFINED__

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

#endif 	/* __CXSIUIToolkit_FWD_DEFINED__ */


#ifndef __CXSIFactory_FWD_DEFINED__
#define __CXSIFactory_FWD_DEFINED__

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

#endif 	/* __CXSIFactory_FWD_DEFINED__ */


#ifndef __ProjectItem_FWD_DEFINED__
#define __ProjectItem_FWD_DEFINED__
typedef interface ProjectItem ProjectItem;
#endif 	/* __ProjectItem_FWD_DEFINED__ */


#ifndef __SceneItem_FWD_DEFINED__
#define __SceneItem_FWD_DEFINED__
typedef interface SceneItem SceneItem;
#endif 	/* __SceneItem_FWD_DEFINED__ */


#ifndef __X3DObject_FWD_DEFINED__
#define __X3DObject_FWD_DEFINED__
typedef interface X3DObject X3DObject;
#endif 	/* __X3DObject_FWD_DEFINED__ */


#ifndef __CameraRig_FWD_DEFINED__
#define __CameraRig_FWD_DEFINED__
typedef interface CameraRig CameraRig;
#endif 	/* __CameraRig_FWD_DEFINED__ */


#ifndef __LightRig_FWD_DEFINED__
#define __LightRig_FWD_DEFINED__
typedef interface LightRig LightRig;
#endif 	/* __LightRig_FWD_DEFINED__ */


#ifndef __Model_FWD_DEFINED__
#define __Model_FWD_DEFINED__
typedef interface Model Model;
#endif 	/* __Model_FWD_DEFINED__ */


#ifndef __Null_FWD_DEFINED__
#define __Null_FWD_DEFINED__
typedef interface Null Null;
#endif 	/* __Null_FWD_DEFINED__ */


#ifndef __Camera_FWD_DEFINED__
#define __Camera_FWD_DEFINED__
typedef interface Camera Camera;
#endif 	/* __Camera_FWD_DEFINED__ */


#ifndef __Light_FWD_DEFINED__
#define __Light_FWD_DEFINED__
typedef interface Light Light;
#endif 	/* __Light_FWD_DEFINED__ */


#ifndef __OGLLight_FWD_DEFINED__
#define __OGLLight_FWD_DEFINED__
typedef interface OGLLight OGLLight;
#endif 	/* __OGLLight_FWD_DEFINED__ */


#ifndef __DirectedObject_FWD_DEFINED__
#define __DirectedObject_FWD_DEFINED__
typedef interface DirectedObject DirectedObject;
#endif 	/* __DirectedObject_FWD_DEFINED__ */


#ifndef __Scene_FWD_DEFINED__
#define __Scene_FWD_DEFINED__
typedef interface Scene Scene;
#endif 	/* __Scene_FWD_DEFINED__ */


#ifndef __Group_FWD_DEFINED__
#define __Group_FWD_DEFINED__
typedef interface Group Group;
#endif 	/* __Group_FWD_DEFINED__ */


#ifndef __UserGroup_FWD_DEFINED__
#define __UserGroup_FWD_DEFINED__
typedef interface UserGroup UserGroup;
#endif 	/* __UserGroup_FWD_DEFINED__ */


#ifndef __Layer_FWD_DEFINED__
#define __Layer_FWD_DEFINED__
typedef interface Layer Layer;
#endif 	/* __Layer_FWD_DEFINED__ */


#ifndef __Pass_FWD_DEFINED__
#define __Pass_FWD_DEFINED__
typedef interface Pass Pass;
#endif 	/* __Pass_FWD_DEFINED__ */


#ifndef __ChainElement_FWD_DEFINED__
#define __ChainElement_FWD_DEFINED__
typedef interface ChainElement ChainElement;
#endif 	/* __ChainElement_FWD_DEFINED__ */


#ifndef __ChainRoot_FWD_DEFINED__
#define __ChainRoot_FWD_DEFINED__
typedef interface ChainRoot ChainRoot;
#endif 	/* __ChainRoot_FWD_DEFINED__ */


#ifndef __ChainBone_FWD_DEFINED__
#define __ChainBone_FWD_DEFINED__
typedef interface ChainBone ChainBone;
#endif 	/* __ChainBone_FWD_DEFINED__ */


#ifndef __ChainEffector_FWD_DEFINED__
#define __ChainEffector_FWD_DEFINED__
typedef interface ChainEffector ChainEffector;
#endif 	/* __ChainEffector_FWD_DEFINED__ */


#ifndef __FxTree_FWD_DEFINED__
#define __FxTree_FWD_DEFINED__
typedef interface FxTree FxTree;
#endif 	/* __FxTree_FWD_DEFINED__ */


#ifndef __FxOperator_FWD_DEFINED__
#define __FxOperator_FWD_DEFINED__
typedef interface FxOperator FxOperator;
#endif 	/* __FxOperator_FWD_DEFINED__ */


#ifndef __Property_FWD_DEFINED__
#define __Property_FWD_DEFINED__
typedef interface Property Property;
#endif 	/* __Property_FWD_DEFINED__ */


#ifndef __Joint_FWD_DEFINED__
#define __Joint_FWD_DEFINED__
typedef interface Joint Joint;
#endif 	/* __Joint_FWD_DEFINED__ */


#ifndef __Material_FWD_DEFINED__
#define __Material_FWD_DEFINED__
typedef interface Material Material;
#endif 	/* __Material_FWD_DEFINED__ */


#ifndef __OGLMaterial_FWD_DEFINED__
#define __OGLMaterial_FWD_DEFINED__
typedef interface OGLMaterial OGLMaterial;
#endif 	/* __OGLMaterial_FWD_DEFINED__ */


#ifndef __OGLTexture_FWD_DEFINED__
#define __OGLTexture_FWD_DEFINED__
typedef interface OGLTexture OGLTexture;
#endif 	/* __OGLTexture_FWD_DEFINED__ */


#ifndef __Color_FWD_DEFINED__
#define __Color_FWD_DEFINED__
typedef interface Color Color;
#endif 	/* __Color_FWD_DEFINED__ */


#ifndef __SoftMaterial_FWD_DEFINED__
#define __SoftMaterial_FWD_DEFINED__
typedef interface SoftMaterial SoftMaterial;
#endif 	/* __SoftMaterial_FWD_DEFINED__ */


#ifndef __KinematicState_FWD_DEFINED__
#define __KinematicState_FWD_DEFINED__
typedef interface KinematicState KinematicState;
#endif 	/* __KinematicState_FWD_DEFINED__ */


#ifndef __StaticKinematicState_FWD_DEFINED__
#define __StaticKinematicState_FWD_DEFINED__
typedef interface StaticKinematicState StaticKinematicState;
#endif 	/* __StaticKinematicState_FWD_DEFINED__ */


#ifndef __Kinematics_FWD_DEFINED__
#define __Kinematics_FWD_DEFINED__
typedef interface Kinematics Kinematics;
#endif 	/* __Kinematics_FWD_DEFINED__ */


#ifndef __ClusterProperty_FWD_DEFINED__
#define __ClusterProperty_FWD_DEFINED__
typedef interface ClusterProperty ClusterProperty;
#endif 	/* __ClusterProperty_FWD_DEFINED__ */


#ifndef __ClusterPropertyCollection_FWD_DEFINED__
#define __ClusterPropertyCollection_FWD_DEFINED__
typedef interface ClusterPropertyCollection ClusterPropertyCollection;
#endif 	/* __ClusterPropertyCollection_FWD_DEFINED__ */


#ifndef __UserDataItem_FWD_DEFINED__
#define __UserDataItem_FWD_DEFINED__
typedef interface UserDataItem UserDataItem;
#endif 	/* __UserDataItem_FWD_DEFINED__ */


#ifndef __UserDataMap_FWD_DEFINED__
#define __UserDataMap_FWD_DEFINED__
typedef interface UserDataMap UserDataMap;
#endif 	/* __UserDataMap_FWD_DEFINED__ */


#ifndef __UserDataBlob_FWD_DEFINED__
#define __UserDataBlob_FWD_DEFINED__
typedef interface UserDataBlob UserDataBlob;
#endif 	/* __UserDataBlob_FWD_DEFINED__ */


#ifndef __MappedItem_FWD_DEFINED__
#define __MappedItem_FWD_DEFINED__
typedef interface MappedItem MappedItem;
#endif 	/* __MappedItem_FWD_DEFINED__ */


#ifndef __CustomProperty_FWD_DEFINED__
#define __CustomProperty_FWD_DEFINED__
typedef interface CustomProperty CustomProperty;
#endif 	/* __CustomProperty_FWD_DEFINED__ */


#ifndef __Parameter_FWD_DEFINED__
#define __Parameter_FWD_DEFINED__
typedef interface Parameter Parameter;
#endif 	/* __Parameter_FWD_DEFINED__ */


#ifndef __ParamDef_FWD_DEFINED__
#define __ParamDef_FWD_DEFINED__
typedef interface ParamDef ParamDef;
#endif 	/* __ParamDef_FWD_DEFINED__ */


#ifndef __ProxyParameter_FWD_DEFINED__
#define __ProxyParameter_FWD_DEFINED__
typedef interface ProxyParameter ProxyParameter;
#endif 	/* __ProxyParameter_FWD_DEFINED__ */


#ifndef __ArrayParameter_FWD_DEFINED__
#define __ArrayParameter_FWD_DEFINED__
typedef interface ArrayParameter ArrayParameter;
#endif 	/* __ArrayParameter_FWD_DEFINED__ */


#ifndef __EnvelopeWeight_FWD_DEFINED__
#define __EnvelopeWeight_FWD_DEFINED__
typedef interface EnvelopeWeight EnvelopeWeight;
#endif 	/* __EnvelopeWeight_FWD_DEFINED__ */


#ifndef __UpdateContext_FWD_DEFINED__
#define __UpdateContext_FWD_DEFINED__
typedef interface UpdateContext UpdateContext;
#endif 	/* __UpdateContext_FWD_DEFINED__ */


#ifndef __Operator_FWD_DEFINED__
#define __Operator_FWD_DEFINED__
typedef interface Operator Operator;
#endif 	/* __Operator_FWD_DEFINED__ */


#ifndef __Envelope_FWD_DEFINED__
#define __Envelope_FWD_DEFINED__
typedef interface Envelope Envelope;
#endif 	/* __Envelope_FWD_DEFINED__ */


#ifndef __Constraint_FWD_DEFINED__
#define __Constraint_FWD_DEFINED__
typedef interface Constraint Constraint;
#endif 	/* __Constraint_FWD_DEFINED__ */


#ifndef __Port_FWD_DEFINED__
#define __Port_FWD_DEFINED__
typedef interface Port Port;
#endif 	/* __Port_FWD_DEFINED__ */


#ifndef __PortGroup_FWD_DEFINED__
#define __PortGroup_FWD_DEFINED__
typedef interface PortGroup PortGroup;
#endif 	/* __PortGroup_FWD_DEFINED__ */


#ifndef __OutputPort_FWD_DEFINED__
#define __OutputPort_FWD_DEFINED__
typedef interface OutputPort OutputPort;
#endif 	/* __OutputPort_FWD_DEFINED__ */


#ifndef __InputPort_FWD_DEFINED__
#define __InputPort_FWD_DEFINED__
typedef interface InputPort InputPort;
#endif 	/* __InputPort_FWD_DEFINED__ */


#ifndef __ConstructionHistory_FWD_DEFINED__
#define __ConstructionHistory_FWD_DEFINED__
typedef interface ConstructionHistory ConstructionHistory;
#endif 	/* __ConstructionHistory_FWD_DEFINED__ */


#ifndef __CustomOperator_FWD_DEFINED__
#define __CustomOperator_FWD_DEFINED__
typedef interface CustomOperator CustomOperator;
#endif 	/* __CustomOperator_FWD_DEFINED__ */


#ifndef __SimulationEnvironment_FWD_DEFINED__
#define __SimulationEnvironment_FWD_DEFINED__
typedef interface SimulationEnvironment SimulationEnvironment;
#endif 	/* __SimulationEnvironment_FWD_DEFINED__ */


#ifndef __OperatorContext_FWD_DEFINED__
#define __OperatorContext_FWD_DEFINED__
typedef interface OperatorContext OperatorContext;
#endif 	/* __OperatorContext_FWD_DEFINED__ */


#ifndef __Point_FWD_DEFINED__
#define __Point_FWD_DEFINED__
typedef interface Point Point;
#endif 	/* __Point_FWD_DEFINED__ */


#ifndef __PointCollection_FWD_DEFINED__
#define __PointCollection_FWD_DEFINED__
typedef interface PointCollection PointCollection;
#endif 	/* __PointCollection_FWD_DEFINED__ */


#ifndef __Segment_FWD_DEFINED__
#define __Segment_FWD_DEFINED__
typedef interface Segment Segment;
#endif 	/* __Segment_FWD_DEFINED__ */


#ifndef __SegmentCollection_FWD_DEFINED__
#define __SegmentCollection_FWD_DEFINED__
typedef interface SegmentCollection SegmentCollection;
#endif 	/* __SegmentCollection_FWD_DEFINED__ */


#ifndef __Facet_FWD_DEFINED__
#define __Facet_FWD_DEFINED__
typedef interface Facet Facet;
#endif 	/* __Facet_FWD_DEFINED__ */


#ifndef __FacetCollection_FWD_DEFINED__
#define __FacetCollection_FWD_DEFINED__
typedef interface FacetCollection FacetCollection;
#endif 	/* __FacetCollection_FWD_DEFINED__ */


#ifndef __Cluster_FWD_DEFINED__
#define __Cluster_FWD_DEFINED__
typedef interface Cluster Cluster;
#endif 	/* __Cluster_FWD_DEFINED__ */


#ifndef __ClusterCollection_FWD_DEFINED__
#define __ClusterCollection_FWD_DEFINED__
typedef interface ClusterCollection ClusterCollection;
#endif 	/* __ClusterCollection_FWD_DEFINED__ */


#ifndef __ClusterElementCollection_FWD_DEFINED__
#define __ClusterElementCollection_FWD_DEFINED__
typedef interface ClusterElementCollection ClusterElementCollection;
#endif 	/* __ClusterElementCollection_FWD_DEFINED__ */


#ifndef __Geometry_FWD_DEFINED__
#define __Geometry_FWD_DEFINED__
typedef interface Geometry Geometry;
#endif 	/* __Geometry_FWD_DEFINED__ */


#ifndef __Sample_FWD_DEFINED__
#define __Sample_FWD_DEFINED__
typedef interface Sample Sample;
#endif 	/* __Sample_FWD_DEFINED__ */


#ifndef __SampleCollection_FWD_DEFINED__
#define __SampleCollection_FWD_DEFINED__
typedef interface SampleCollection SampleCollection;
#endif 	/* __SampleCollection_FWD_DEFINED__ */


#ifndef __NurbsSample_FWD_DEFINED__
#define __NurbsSample_FWD_DEFINED__
typedef interface NurbsSample NurbsSample;
#endif 	/* __NurbsSample_FWD_DEFINED__ */


#ifndef __NurbsSampleCollection_FWD_DEFINED__
#define __NurbsSampleCollection_FWD_DEFINED__
typedef interface NurbsSampleCollection NurbsSampleCollection;
#endif 	/* __NurbsSampleCollection_FWD_DEFINED__ */


#ifndef __Edge_FWD_DEFINED__
#define __Edge_FWD_DEFINED__
typedef interface Edge Edge;
#endif 	/* __Edge_FWD_DEFINED__ */


#ifndef __EdgeCollection_FWD_DEFINED__
#define __EdgeCollection_FWD_DEFINED__
typedef interface EdgeCollection EdgeCollection;
#endif 	/* __EdgeCollection_FWD_DEFINED__ */


#ifndef __Vertex_FWD_DEFINED__
#define __Vertex_FWD_DEFINED__
typedef interface Vertex Vertex;
#endif 	/* __Vertex_FWD_DEFINED__ */


#ifndef __VertexCollection_FWD_DEFINED__
#define __VertexCollection_FWD_DEFINED__
typedef interface VertexCollection VertexCollection;
#endif 	/* __VertexCollection_FWD_DEFINED__ */


#ifndef __Primitive_FWD_DEFINED__
#define __Primitive_FWD_DEFINED__
typedef interface Primitive Primitive;
#endif 	/* __Primitive_FWD_DEFINED__ */


#ifndef __Triangle_FWD_DEFINED__
#define __Triangle_FWD_DEFINED__
typedef interface Triangle Triangle;
#endif 	/* __Triangle_FWD_DEFINED__ */


#ifndef __TriangleCollection_FWD_DEFINED__
#define __TriangleCollection_FWD_DEFINED__
typedef interface TriangleCollection TriangleCollection;
#endif 	/* __TriangleCollection_FWD_DEFINED__ */


#ifndef __TrianglePoint_FWD_DEFINED__
#define __TrianglePoint_FWD_DEFINED__
typedef interface TrianglePoint TrianglePoint;
#endif 	/* __TrianglePoint_FWD_DEFINED__ */


#ifndef __UV_FWD_DEFINED__
#define __UV_FWD_DEFINED__
typedef interface UV UV;
#endif 	/* __UV_FWD_DEFINED__ */


#ifndef __TrianglePointCollection_FWD_DEFINED__
#define __TrianglePointCollection_FWD_DEFINED__
typedef interface TrianglePointCollection TrianglePointCollection;
#endif 	/* __TrianglePointCollection_FWD_DEFINED__ */


#ifndef __NurbsSurfaceMesh_FWD_DEFINED__
#define __NurbsSurfaceMesh_FWD_DEFINED__
typedef interface NurbsSurfaceMesh NurbsSurfaceMesh;
#endif 	/* __NurbsSurfaceMesh_FWD_DEFINED__ */


#ifndef __NurbsSurface_FWD_DEFINED__
#define __NurbsSurface_FWD_DEFINED__
typedef interface NurbsSurface NurbsSurface;
#endif 	/* __NurbsSurface_FWD_DEFINED__ */


#ifndef __NurbsSurfaceCollection_FWD_DEFINED__
#define __NurbsSurfaceCollection_FWD_DEFINED__
typedef interface NurbsSurfaceCollection NurbsSurfaceCollection;
#endif 	/* __NurbsSurfaceCollection_FWD_DEFINED__ */


#ifndef __ControlPoint_FWD_DEFINED__
#define __ControlPoint_FWD_DEFINED__
typedef interface ControlPoint ControlPoint;
#endif 	/* __ControlPoint_FWD_DEFINED__ */


#ifndef __ControlPointCollection_FWD_DEFINED__
#define __ControlPointCollection_FWD_DEFINED__
typedef interface ControlPointCollection ControlPointCollection;
#endif 	/* __ControlPointCollection_FWD_DEFINED__ */


#ifndef __KnotCollection_FWD_DEFINED__
#define __KnotCollection_FWD_DEFINED__
typedef interface KnotCollection KnotCollection;
#endif 	/* __KnotCollection_FWD_DEFINED__ */


#ifndef __PolygonNode_FWD_DEFINED__
#define __PolygonNode_FWD_DEFINED__
typedef interface PolygonNode PolygonNode;
#endif 	/* __PolygonNode_FWD_DEFINED__ */


#ifndef __PolygonNodeCollection_FWD_DEFINED__
#define __PolygonNodeCollection_FWD_DEFINED__
typedef interface PolygonNodeCollection PolygonNodeCollection;
#endif 	/* __PolygonNodeCollection_FWD_DEFINED__ */


#ifndef __PolygonMesh_FWD_DEFINED__
#define __PolygonMesh_FWD_DEFINED__
typedef interface PolygonMesh PolygonMesh;
#endif 	/* __PolygonMesh_FWD_DEFINED__ */


#ifndef __PolygonFace_FWD_DEFINED__
#define __PolygonFace_FWD_DEFINED__
typedef interface PolygonFace PolygonFace;
#endif 	/* __PolygonFace_FWD_DEFINED__ */


#ifndef __PolygonFaceCollection_FWD_DEFINED__
#define __PolygonFaceCollection_FWD_DEFINED__
typedef interface PolygonFaceCollection PolygonFaceCollection;
#endif 	/* __PolygonFaceCollection_FWD_DEFINED__ */


#ifndef __NurbsCurveList_FWD_DEFINED__
#define __NurbsCurveList_FWD_DEFINED__
typedef interface NurbsCurveList NurbsCurveList;
#endif 	/* __NurbsCurveList_FWD_DEFINED__ */


#ifndef __NurbsCurve_FWD_DEFINED__
#define __NurbsCurve_FWD_DEFINED__
typedef interface NurbsCurve NurbsCurve;
#endif 	/* __NurbsCurve_FWD_DEFINED__ */


#ifndef __NurbsCurveCollection_FWD_DEFINED__
#define __NurbsCurveCollection_FWD_DEFINED__
typedef interface NurbsCurveCollection NurbsCurveCollection;
#endif 	/* __NurbsCurveCollection_FWD_DEFINED__ */


#ifndef __PointLocatorData_FWD_DEFINED__
#define __PointLocatorData_FWD_DEFINED__
typedef interface PointLocatorData PointLocatorData;
#endif 	/* __PointLocatorData_FWD_DEFINED__ */


#ifndef __Command_FWD_DEFINED__
#define __Command_FWD_DEFINED__
typedef interface Command Command;
#endif 	/* __Command_FWD_DEFINED__ */


#ifndef __Argument_FWD_DEFINED__
#define __Argument_FWD_DEFINED__
typedef interface Argument Argument;
#endif 	/* __Argument_FWD_DEFINED__ */


#ifndef __ArgumentCollection_FWD_DEFINED__
#define __ArgumentCollection_FWD_DEFINED__
typedef interface ArgumentCollection ArgumentCollection;
#endif 	/* __ArgumentCollection_FWD_DEFINED__ */


#ifndef __ArgumentHandler_FWD_DEFINED__
#define __ArgumentHandler_FWD_DEFINED__
typedef interface ArgumentHandler ArgumentHandler;
#endif 	/* __ArgumentHandler_FWD_DEFINED__ */


#ifndef __EventInfo_FWD_DEFINED__
#define __EventInfo_FWD_DEFINED__
typedef interface EventInfo EventInfo;
#endif 	/* __EventInfo_FWD_DEFINED__ */


#ifndef __EventInfoCollection_FWD_DEFINED__
#define __EventInfoCollection_FWD_DEFINED__
typedef interface EventInfoCollection EventInfoCollection;
#endif 	/* __EventInfoCollection_FWD_DEFINED__ */


#ifndef __TimerEvent_FWD_DEFINED__
#define __TimerEvent_FWD_DEFINED__
typedef interface TimerEvent TimerEvent;
#endif 	/* __TimerEvent_FWD_DEFINED__ */


#ifndef __Dictionary_FWD_DEFINED__
#define __Dictionary_FWD_DEFINED__
typedef interface Dictionary Dictionary;
#endif 	/* __Dictionary_FWD_DEFINED__ */


#ifndef __XSIApplication_FWD_DEFINED__
#define __XSIApplication_FWD_DEFINED__
typedef interface XSIApplication XSIApplication;
#endif 	/* __XSIApplication_FWD_DEFINED__ */


#ifndef __XSIApplicationEvents_FWD_DEFINED__
#define __XSIApplicationEvents_FWD_DEFINED__
typedef interface XSIApplicationEvents XSIApplicationEvents;
#endif 	/* __XSIApplicationEvents_FWD_DEFINED__ */


#ifndef __DXSIApplicationEvents_FWD_DEFINED__
#define __DXSIApplicationEvents_FWD_DEFINED__
typedef interface DXSIApplicationEvents DXSIApplicationEvents;
#endif 	/* __DXSIApplicationEvents_FWD_DEFINED__ */


#ifndef __Selection_FWD_DEFINED__
#define __Selection_FWD_DEFINED__
typedef interface Selection Selection;
#endif 	/* __Selection_FWD_DEFINED__ */


#ifndef __XSIProject_FWD_DEFINED__
#define __XSIProject_FWD_DEFINED__
typedef interface XSIProject XSIProject;
#endif 	/* __XSIProject_FWD_DEFINED__ */


#ifndef __GridData_FWD_DEFINED__
#define __GridData_FWD_DEFINED__
typedef interface GridData GridData;
#endif 	/* __GridData_FWD_DEFINED__ */


#ifndef __GridWidget_FWD_DEFINED__
#define __GridWidget_FWD_DEFINED__
typedef interface GridWidget GridWidget;
#endif 	/* __GridWidget_FWD_DEFINED__ */


#ifndef __Shader_FWD_DEFINED__
#define __Shader_FWD_DEFINED__
typedef interface Shader Shader;
#endif 	/* __Shader_FWD_DEFINED__ */


#ifndef __ConnectionPoint_FWD_DEFINED__
#define __ConnectionPoint_FWD_DEFINED__
typedef interface ConnectionPoint ConnectionPoint;
#endif 	/* __ConnectionPoint_FWD_DEFINED__ */


#ifndef __Texture_FWD_DEFINED__
#define __Texture_FWD_DEFINED__
typedef interface Texture Texture;
#endif 	/* __Texture_FWD_DEFINED__ */


#ifndef __TextureLayer_FWD_DEFINED__
#define __TextureLayer_FWD_DEFINED__
typedef interface TextureLayer TextureLayer;
#endif 	/* __TextureLayer_FWD_DEFINED__ */


#ifndef __TextureLayerPort_FWD_DEFINED__
#define __TextureLayerPort_FWD_DEFINED__
typedef interface TextureLayerPort TextureLayerPort;
#endif 	/* __TextureLayerPort_FWD_DEFINED__ */


#ifndef __Particle_FWD_DEFINED__
#define __Particle_FWD_DEFINED__
typedef interface Particle Particle;
#endif 	/* __Particle_FWD_DEFINED__ */


#ifndef __ParticleCollection_FWD_DEFINED__
#define __ParticleCollection_FWD_DEFINED__
typedef interface ParticleCollection ParticleCollection;
#endif 	/* __ParticleCollection_FWD_DEFINED__ */


#ifndef __ParticleCloud_FWD_DEFINED__
#define __ParticleCloud_FWD_DEFINED__
typedef interface ParticleCloud ParticleCloud;
#endif 	/* __ParticleCloud_FWD_DEFINED__ */


#ifndef __ParticleCloudPrimitive_FWD_DEFINED__
#define __ParticleCloudPrimitive_FWD_DEFINED__
typedef interface ParticleCloudPrimitive ParticleCloudPrimitive;
#endif 	/* __ParticleCloudPrimitive_FWD_DEFINED__ */


#ifndef __ParticleType_FWD_DEFINED__
#define __ParticleType_FWD_DEFINED__
typedef interface ParticleType ParticleType;
#endif 	/* __ParticleType_FWD_DEFINED__ */


#ifndef __ParticleAttribute_FWD_DEFINED__
#define __ParticleAttribute_FWD_DEFINED__
typedef interface ParticleAttribute ParticleAttribute;
#endif 	/* __ParticleAttribute_FWD_DEFINED__ */


#ifndef __FileReference_FWD_DEFINED__
#define __FileReference_FWD_DEFINED__
typedef interface FileReference FileReference;
#endif 	/* __FileReference_FWD_DEFINED__ */


#ifndef __HairPrimitive_FWD_DEFINED__
#define __HairPrimitive_FWD_DEFINED__
typedef interface HairPrimitive HairPrimitive;
#endif 	/* __HairPrimitive_FWD_DEFINED__ */


#ifndef __Track_FWD_DEFINED__
#define __Track_FWD_DEFINED__
typedef interface Track Track;
#endif 	/* __Track_FWD_DEFINED__ */


#ifndef __Clip_FWD_DEFINED__
#define __Clip_FWD_DEFINED__
typedef interface Clip Clip;
#endif 	/* __Clip_FWD_DEFINED__ */


#ifndef __ShapeClip_FWD_DEFINED__
#define __ShapeClip_FWD_DEFINED__
typedef interface ShapeClip ShapeClip;
#endif 	/* __ShapeClip_FWD_DEFINED__ */


#ifndef __ClipContainer_FWD_DEFINED__
#define __ClipContainer_FWD_DEFINED__
typedef interface ClipContainer ClipContainer;
#endif 	/* __ClipContainer_FWD_DEFINED__ */


#ifndef __Transition_FWD_DEFINED__
#define __Transition_FWD_DEFINED__
typedef interface Transition Transition;
#endif 	/* __Transition_FWD_DEFINED__ */


#ifndef __TimeControl_FWD_DEFINED__
#define __TimeControl_FWD_DEFINED__
typedef interface TimeControl TimeControl;
#endif 	/* __TimeControl_FWD_DEFINED__ */


#ifndef __ActionSource_FWD_DEFINED__
#define __ActionSource_FWD_DEFINED__
typedef interface ActionSource ActionSource;
#endif 	/* __ActionSource_FWD_DEFINED__ */


#ifndef __AnimationSourceItem_FWD_DEFINED__
#define __AnimationSourceItem_FWD_DEFINED__
typedef interface AnimationSourceItem AnimationSourceItem;
#endif 	/* __AnimationSourceItem_FWD_DEFINED__ */


#ifndef __StaticSource_FWD_DEFINED__
#define __StaticSource_FWD_DEFINED__
typedef interface StaticSource StaticSource;
#endif 	/* __StaticSource_FWD_DEFINED__ */


#ifndef __DataSource_FWD_DEFINED__
#define __DataSource_FWD_DEFINED__
typedef interface DataSource DataSource;
#endif 	/* __DataSource_FWD_DEFINED__ */


#ifndef __AnimationSource_FWD_DEFINED__
#define __AnimationSource_FWD_DEFINED__
typedef interface AnimationSource AnimationSource;
#endif 	/* __AnimationSource_FWD_DEFINED__ */


#ifndef __FCurveKey_FWD_DEFINED__
#define __FCurveKey_FWD_DEFINED__
typedef interface FCurveKey FCurveKey;
#endif 	/* __FCurveKey_FWD_DEFINED__ */


#ifndef __FCurve_FWD_DEFINED__
#define __FCurve_FWD_DEFINED__
typedef interface FCurve FCurve;
#endif 	/* __FCurve_FWD_DEFINED__ */


#ifndef __ImageClip_FWD_DEFINED__
#define __ImageClip_FWD_DEFINED__
typedef interface ImageClip ImageClip;
#endif 	/* __ImageClip_FWD_DEFINED__ */


#ifndef __Expression_FWD_DEFINED__
#define __Expression_FWD_DEFINED__
typedef interface Expression Expression;
#endif 	/* __Expression_FWD_DEFINED__ */


#ifndef __Source_FWD_DEFINED__
#define __Source_FWD_DEFINED__
typedef interface Source Source;
#endif 	/* __Source_FWD_DEFINED__ */


#ifndef __ShapeKey_FWD_DEFINED__
#define __ShapeKey_FWD_DEFINED__
typedef interface ShapeKey ShapeKey;
#endif 	/* __ShapeKey_FWD_DEFINED__ */


#ifndef __ClipEffect_FWD_DEFINED__
#define __ClipEffect_FWD_DEFINED__
typedef interface ClipEffect ClipEffect;
#endif 	/* __ClipEffect_FWD_DEFINED__ */


#ifndef __ClipEffectItem_FWD_DEFINED__
#define __ClipEffectItem_FWD_DEFINED__
typedef interface ClipEffectItem ClipEffectItem;
#endif 	/* __ClipEffectItem_FWD_DEFINED__ */


#ifndef __ClipRelation_FWD_DEFINED__
#define __ClipRelation_FWD_DEFINED__
typedef interface ClipRelation ClipRelation;
#endif 	/* __ClipRelation_FWD_DEFINED__ */


#ifndef __Mixer_FWD_DEFINED__
#define __Mixer_FWD_DEFINED__
typedef interface Mixer Mixer;
#endif 	/* __Mixer_FWD_DEFINED__ */


#ifndef __Library_FWD_DEFINED__
#define __Library_FWD_DEFINED__
typedef interface Library Library;
#endif 	/* __Library_FWD_DEFINED__ */


#ifndef __MaterialLibrary_FWD_DEFINED__
#define __MaterialLibrary_FWD_DEFINED__
typedef interface MaterialLibrary MaterialLibrary;
#endif 	/* __MaterialLibrary_FWD_DEFINED__ */


#ifndef __X3DObjectCollection_FWD_DEFINED__
#define __X3DObjectCollection_FWD_DEFINED__
typedef interface X3DObjectCollection X3DObjectCollection;
#endif 	/* __X3DObjectCollection_FWD_DEFINED__ */


#ifndef __ProjectItemCollection_FWD_DEFINED__
#define __ProjectItemCollection_FWD_DEFINED__
typedef interface ProjectItemCollection ProjectItemCollection;
#endif 	/* __ProjectItemCollection_FWD_DEFINED__ */


#ifndef __SceneItemCollection_FWD_DEFINED__
#define __SceneItemCollection_FWD_DEFINED__
typedef interface SceneItemCollection SceneItemCollection;
#endif 	/* __SceneItemCollection_FWD_DEFINED__ */


#ifndef __PrimitiveCollection_FWD_DEFINED__
#define __PrimitiveCollection_FWD_DEFINED__
typedef interface PrimitiveCollection PrimitiveCollection;
#endif 	/* __PrimitiveCollection_FWD_DEFINED__ */


#ifndef __ModelCollection_FWD_DEFINED__
#define __ModelCollection_FWD_DEFINED__
typedef interface ModelCollection ModelCollection;
#endif 	/* __ModelCollection_FWD_DEFINED__ */


#ifndef __SceneCollection_FWD_DEFINED__
#define __SceneCollection_FWD_DEFINED__
typedef interface SceneCollection SceneCollection;
#endif 	/* __SceneCollection_FWD_DEFINED__ */


#ifndef __PortGroupCollection_FWD_DEFINED__
#define __PortGroupCollection_FWD_DEFINED__
typedef interface PortGroupCollection PortGroupCollection;
#endif 	/* __PortGroupCollection_FWD_DEFINED__ */


#ifndef __PortCollection_FWD_DEFINED__
#define __PortCollection_FWD_DEFINED__
typedef interface PortCollection PortCollection;
#endif 	/* __PortCollection_FWD_DEFINED__ */


#ifndef __InputPortCollection_FWD_DEFINED__
#define __InputPortCollection_FWD_DEFINED__
typedef interface InputPortCollection InputPortCollection;
#endif 	/* __InputPortCollection_FWD_DEFINED__ */


#ifndef __OutputPortCollection_FWD_DEFINED__
#define __OutputPortCollection_FWD_DEFINED__
typedef interface OutputPortCollection OutputPortCollection;
#endif 	/* __OutputPortCollection_FWD_DEFINED__ */


#ifndef __GroupCollection_FWD_DEFINED__
#define __GroupCollection_FWD_DEFINED__
typedef interface GroupCollection GroupCollection;
#endif 	/* __GroupCollection_FWD_DEFINED__ */


#ifndef __LayerCollection_FWD_DEFINED__
#define __LayerCollection_FWD_DEFINED__
typedef interface LayerCollection LayerCollection;
#endif 	/* __LayerCollection_FWD_DEFINED__ */


#ifndef __PassCollection_FWD_DEFINED__
#define __PassCollection_FWD_DEFINED__
typedef interface PassCollection PassCollection;
#endif 	/* __PassCollection_FWD_DEFINED__ */


#ifndef __MaterialCollection_FWD_DEFINED__
#define __MaterialCollection_FWD_DEFINED__
typedef interface MaterialCollection MaterialCollection;
#endif 	/* __MaterialCollection_FWD_DEFINED__ */


#ifndef __PropertyCollection_FWD_DEFINED__
#define __PropertyCollection_FWD_DEFINED__
typedef interface PropertyCollection PropertyCollection;
#endif 	/* __PropertyCollection_FWD_DEFINED__ */


#ifndef __StaticKinematicStateCollection_FWD_DEFINED__
#define __StaticKinematicStateCollection_FWD_DEFINED__
typedef interface StaticKinematicStateCollection StaticKinematicStateCollection;
#endif 	/* __StaticKinematicStateCollection_FWD_DEFINED__ */


#ifndef __OperatorCollection_FWD_DEFINED__
#define __OperatorCollection_FWD_DEFINED__
typedef interface OperatorCollection OperatorCollection;
#endif 	/* __OperatorCollection_FWD_DEFINED__ */


#ifndef __EnvelopeCollection_FWD_DEFINED__
#define __EnvelopeCollection_FWD_DEFINED__
typedef interface EnvelopeCollection EnvelopeCollection;
#endif 	/* __EnvelopeCollection_FWD_DEFINED__ */


#ifndef __ConstraintCollection_FWD_DEFINED__
#define __ConstraintCollection_FWD_DEFINED__
typedef interface ConstraintCollection ConstraintCollection;
#endif 	/* __ConstraintCollection_FWD_DEFINED__ */


#ifndef __ShaderCollection_FWD_DEFINED__
#define __ShaderCollection_FWD_DEFINED__
typedef interface ShaderCollection ShaderCollection;
#endif 	/* __ShaderCollection_FWD_DEFINED__ */


#ifndef __ImageClipCollection_FWD_DEFINED__
#define __ImageClipCollection_FWD_DEFINED__
typedef interface ImageClipCollection ImageClipCollection;
#endif 	/* __ImageClipCollection_FWD_DEFINED__ */


#ifndef __ConnectionPointCollection_FWD_DEFINED__
#define __ConnectionPointCollection_FWD_DEFINED__
typedef interface ConnectionPointCollection ConnectionPointCollection;
#endif 	/* __ConnectionPointCollection_FWD_DEFINED__ */


#ifndef __FxOperatorCollection_FWD_DEFINED__
#define __FxOperatorCollection_FWD_DEFINED__
typedef interface FxOperatorCollection FxOperatorCollection;
#endif 	/* __FxOperatorCollection_FWD_DEFINED__ */


#ifndef __ChainBoneCollection_FWD_DEFINED__
#define __ChainBoneCollection_FWD_DEFINED__
typedef interface ChainBoneCollection ChainBoneCollection;
#endif 	/* __ChainBoneCollection_FWD_DEFINED__ */


#ifndef __MappedItemCollection_FWD_DEFINED__
#define __MappedItemCollection_FWD_DEFINED__
typedef interface MappedItemCollection MappedItemCollection;
#endif 	/* __MappedItemCollection_FWD_DEFINED__ */


#ifndef __AnimationSourceItemCollection_FWD_DEFINED__
#define __AnimationSourceItemCollection_FWD_DEFINED__
typedef interface AnimationSourceItemCollection AnimationSourceItemCollection;
#endif 	/* __AnimationSourceItemCollection_FWD_DEFINED__ */


#ifndef __ParameterCollection_FWD_DEFINED__
#define __ParameterCollection_FWD_DEFINED__
typedef interface ParameterCollection ParameterCollection;
#endif 	/* __ParameterCollection_FWD_DEFINED__ */


#ifndef __FCurveKeyCollection_FWD_DEFINED__
#define __FCurveKeyCollection_FWD_DEFINED__
typedef interface FCurveKeyCollection FCurveKeyCollection;
#endif 	/* __FCurveKeyCollection_FWD_DEFINED__ */


#ifndef __DataSourceCollection_FWD_DEFINED__
#define __DataSourceCollection_FWD_DEFINED__
typedef interface DataSourceCollection DataSourceCollection;
#endif 	/* __DataSourceCollection_FWD_DEFINED__ */


#ifndef __IDispatchCollection_FWD_DEFINED__
#define __IDispatchCollection_FWD_DEFINED__
typedef interface IDispatchCollection IDispatchCollection;
#endif 	/* __IDispatchCollection_FWD_DEFINED__ */


#ifndef __CommandCollection_FWD_DEFINED__
#define __CommandCollection_FWD_DEFINED__
typedef interface CommandCollection CommandCollection;
#endif 	/* __CommandCollection_FWD_DEFINED__ */


#ifndef __FCurveCollection_FWD_DEFINED__
#define __FCurveCollection_FWD_DEFINED__
typedef interface FCurveCollection FCurveCollection;
#endif 	/* __FCurveCollection_FWD_DEFINED__ */


#ifndef __ChannelCollection_FWD_DEFINED__
#define __ChannelCollection_FWD_DEFINED__
typedef interface ChannelCollection ChannelCollection;
#endif 	/* __ChannelCollection_FWD_DEFINED__ */


#ifndef __ParticleTypeCollection_FWD_DEFINED__
#define __ParticleTypeCollection_FWD_DEFINED__
typedef interface ParticleTypeCollection ParticleTypeCollection;
#endif 	/* __ParticleTypeCollection_FWD_DEFINED__ */


#ifndef __ParticleAttributeCollection_FWD_DEFINED__
#define __ParticleAttributeCollection_FWD_DEFINED__
typedef interface ParticleAttributeCollection ParticleAttributeCollection;
#endif 	/* __ParticleAttributeCollection_FWD_DEFINED__ */


#ifndef __TextureLayerCollection_FWD_DEFINED__
#define __TextureLayerCollection_FWD_DEFINED__
typedef interface TextureLayerCollection TextureLayerCollection;
#endif 	/* __TextureLayerCollection_FWD_DEFINED__ */


#ifndef __TextureLayerPortCollection_FWD_DEFINED__
#define __TextureLayerPortCollection_FWD_DEFINED__
typedef interface TextureLayerPortCollection TextureLayerPortCollection;
#endif 	/* __TextureLayerPortCollection_FWD_DEFINED__ */


#ifndef __LayoutCollection_FWD_DEFINED__
#define __LayoutCollection_FWD_DEFINED__
typedef interface LayoutCollection LayoutCollection;
#endif 	/* __LayoutCollection_FWD_DEFINED__ */


#ifndef __ViewCollection_FWD_DEFINED__
#define __ViewCollection_FWD_DEFINED__
typedef interface ViewCollection ViewCollection;
#endif 	/* __ViewCollection_FWD_DEFINED__ */


#ifndef __ClipCollection_FWD_DEFINED__
#define __ClipCollection_FWD_DEFINED__
typedef interface ClipCollection ClipCollection;
#endif 	/* __ClipCollection_FWD_DEFINED__ */


#ifndef __TrackCollection_FWD_DEFINED__
#define __TrackCollection_FWD_DEFINED__
typedef interface TrackCollection TrackCollection;
#endif 	/* __TrackCollection_FWD_DEFINED__ */


#ifndef __TransitionCollection_FWD_DEFINED__
#define __TransitionCollection_FWD_DEFINED__
typedef interface TransitionCollection TransitionCollection;
#endif 	/* __TransitionCollection_FWD_DEFINED__ */


#ifndef __SourceCollection_FWD_DEFINED__
#define __SourceCollection_FWD_DEFINED__
typedef interface SourceCollection SourceCollection;
#endif 	/* __SourceCollection_FWD_DEFINED__ */


#ifndef __ClipEffectItemCollection_FWD_DEFINED__
#define __ClipEffectItemCollection_FWD_DEFINED__
typedef interface ClipEffectItemCollection ClipEffectItemCollection;
#endif 	/* __ClipEffectItemCollection_FWD_DEFINED__ */


#ifndef __ClipRelationCollection_FWD_DEFINED__
#define __ClipRelationCollection_FWD_DEFINED__
typedef interface ClipRelationCollection ClipRelationCollection;
#endif 	/* __ClipRelationCollection_FWD_DEFINED__ */


#ifndef __LibraryCollection_FWD_DEFINED__
#define __LibraryCollection_FWD_DEFINED__
typedef interface LibraryCollection LibraryCollection;
#endif 	/* __LibraryCollection_FWD_DEFINED__ */


#ifndef __ActionSourceCollection_FWD_DEFINED__
#define __ActionSourceCollection_FWD_DEFINED__
typedef interface ActionSourceCollection ActionSourceCollection;
#endif 	/* __ActionSourceCollection_FWD_DEFINED__ */


#ifndef __SimulationEnvironmentCollection_FWD_DEFINED__
#define __SimulationEnvironmentCollection_FWD_DEFINED__
typedef interface SimulationEnvironmentCollection SimulationEnvironmentCollection;
#endif 	/* __SimulationEnvironmentCollection_FWD_DEFINED__ */


#ifndef __FileReferenceCollection_FWD_DEFINED__
#define __FileReferenceCollection_FWD_DEFINED__
typedef interface FileReferenceCollection FileReferenceCollection;
#endif 	/* __FileReferenceCollection_FWD_DEFINED__ */


#ifndef __SIObjectCollection_FWD_DEFINED__
#define __SIObjectCollection_FWD_DEFINED__
typedef interface SIObjectCollection SIObjectCollection;
#endif 	/* __SIObjectCollection_FWD_DEFINED__ */


#ifndef __XSICollection_FWD_DEFINED__
#define __XSICollection_FWD_DEFINED__
typedef interface XSICollection XSICollection;
#endif 	/* __XSICollection_FWD_DEFINED__ */


#ifndef __CollectionItem_FWD_DEFINED__
#define __CollectionItem_FWD_DEFINED__
typedef interface CollectionItem CollectionItem;
#endif 	/* __CollectionItem_FWD_DEFINED__ */


#ifndef __CollectionItem2_FWD_DEFINED__
#define __CollectionItem2_FWD_DEFINED__
typedef interface CollectionItem2 CollectionItem2;
#endif 	/* __CollectionItem2_FWD_DEFINED__ */


#ifndef __SubComponent_FWD_DEFINED__
#define __SubComponent_FWD_DEFINED__
typedef interface SubComponent SubComponent;
#endif 	/* __SubComponent_FWD_DEFINED__ */


#ifndef __Image_FWD_DEFINED__
#define __Image_FWD_DEFINED__
typedef interface Image Image;
#endif 	/* __Image_FWD_DEFINED__ */


#ifndef __FileBrowser_FWD_DEFINED__
#define __FileBrowser_FWD_DEFINED__
typedef interface FileBrowser FileBrowser;
#endif 	/* __FileBrowser_FWD_DEFINED__ */


#ifndef __ProgressBar_FWD_DEFINED__
#define __ProgressBar_FWD_DEFINED__
typedef interface ProgressBar ProgressBar;
#endif 	/* __ProgressBar_FWD_DEFINED__ */


#ifndef __XSIUIToolkit_FWD_DEFINED__
#define __XSIUIToolkit_FWD_DEFINED__
typedef interface XSIUIToolkit XSIUIToolkit;
#endif 	/* __XSIUIToolkit_FWD_DEFINED__ */


#ifndef __FCurveEditor_FWD_DEFINED__
#define __FCurveEditor_FWD_DEFINED__
typedef interface FCurveEditor FCurveEditor;
#endif 	/* __FCurveEditor_FWD_DEFINED__ */


#ifndef __PPGLayout_FWD_DEFINED__
#define __PPGLayout_FWD_DEFINED__
typedef interface PPGLayout PPGLayout;
#endif 	/* __PPGLayout_FWD_DEFINED__ */


#ifndef __PPGItem_FWD_DEFINED__
#define __PPGItem_FWD_DEFINED__
typedef interface PPGItem PPGItem;
#endif 	/* __PPGItem_FWD_DEFINED__ */


#ifndef __Context_FWD_DEFINED__
#define __Context_FWD_DEFINED__
typedef interface Context Context;
#endif 	/* __Context_FWD_DEFINED__ */


#ifndef __XSIFactory_FWD_DEFINED__
#define __XSIFactory_FWD_DEFINED__
typedef interface XSIFactory XSIFactory;
#endif 	/* __XSIFactory_FWD_DEFINED__ */


#ifndef __DeviceCollection_FWD_DEFINED__
#define __DeviceCollection_FWD_DEFINED__
typedef interface DeviceCollection DeviceCollection;
#endif 	/* __DeviceCollection_FWD_DEFINED__ */


#ifndef __Device_FWD_DEFINED__
#define __Device_FWD_DEFINED__
typedef interface Device Device;
#endif 	/* __Device_FWD_DEFINED__ */


#ifndef __Channel_FWD_DEFINED__
#define __Channel_FWD_DEFINED__
typedef interface Channel Channel;
#endif 	/* __Channel_FWD_DEFINED__ */


#ifndef __Addon_FWD_DEFINED__
#define __Addon_FWD_DEFINED__
typedef interface Addon Addon;
#endif 	/* __Addon_FWD_DEFINED__ */


#ifndef __Preferences_FWD_DEFINED__
#define __Preferences_FWD_DEFINED__
typedef interface Preferences Preferences;
#endif 	/* __Preferences_FWD_DEFINED__ */


#ifndef __Plugin_FWD_DEFINED__
#define __Plugin_FWD_DEFINED__
typedef interface Plugin Plugin;
#endif 	/* __Plugin_FWD_DEFINED__ */


#ifndef __PluginCollection_FWD_DEFINED__
#define __PluginCollection_FWD_DEFINED__
typedef interface PluginCollection PluginCollection;
#endif 	/* __PluginCollection_FWD_DEFINED__ */


#ifndef __PluginItem_FWD_DEFINED__
#define __PluginItem_FWD_DEFINED__
typedef interface PluginItem PluginItem;
#endif 	/* __PluginItem_FWD_DEFINED__ */


#ifndef __PluginItemCollection_FWD_DEFINED__
#define __PluginItemCollection_FWD_DEFINED__
typedef interface PluginItemCollection PluginItemCollection;
#endif 	/* __PluginItemCollection_FWD_DEFINED__ */


#ifndef __PluginRegistrar_FWD_DEFINED__
#define __PluginRegistrar_FWD_DEFINED__
typedef interface PluginRegistrar PluginRegistrar;
#endif 	/* __PluginRegistrar_FWD_DEFINED__ */


#ifndef __Filter_FWD_DEFINED__
#define __Filter_FWD_DEFINED__
typedef interface Filter Filter;
#endif 	/* __Filter_FWD_DEFINED__ */


#ifndef __FilterCollection_FWD_DEFINED__
#define __FilterCollection_FWD_DEFINED__
typedef interface FilterCollection FilterCollection;
#endif 	/* __FilterCollection_FWD_DEFINED__ */


#ifndef __Desktop_FWD_DEFINED__
#define __Desktop_FWD_DEFINED__
typedef interface Desktop Desktop;
#endif 	/* __Desktop_FWD_DEFINED__ */


#ifndef __View_FWD_DEFINED__
#define __View_FWD_DEFINED__
typedef interface View View;
#endif 	/* __View_FWD_DEFINED__ */


#ifndef __Layout_FWD_DEFINED__
#define __Layout_FWD_DEFINED__
typedef interface Layout Layout;
#endif 	/* __Layout_FWD_DEFINED__ */


#ifndef __UIPersistable_FWD_DEFINED__
#define __UIPersistable_FWD_DEFINED__
typedef interface UIPersistable UIPersistable;
#endif 	/* __UIPersistable_FWD_DEFINED__ */


#ifndef __UIObject_FWD_DEFINED__
#define __UIObject_FWD_DEFINED__
typedef interface UIObject UIObject;
#endif 	/* __UIObject_FWD_DEFINED__ */


#ifndef __Menu_FWD_DEFINED__
#define __Menu_FWD_DEFINED__
typedef interface Menu Menu;
#endif 	/* __Menu_FWD_DEFINED__ */


#ifndef __MenuItem_FWD_DEFINED__
#define __MenuItem_FWD_DEFINED__
typedef interface MenuItem MenuItem;
#endif 	/* __MenuItem_FWD_DEFINED__ */


#ifndef __SIObject_FWD_DEFINED__
#define __SIObject_FWD_DEFINED__
typedef interface SIObject SIObject;
#endif 	/* __SIObject_FWD_DEFINED__ */


#ifndef __CollectionItemLegacy_FWD_DEFINED__
#define __CollectionItemLegacy_FWD_DEFINED__
typedef interface CollectionItemLegacy CollectionItemLegacy;
#endif 	/* __CollectionItemLegacy_FWD_DEFINED__ */


#ifndef __Project_FWD_DEFINED__
#define __Project_FWD_DEFINED__
typedef interface Project Project;
#endif 	/* __Project_FWD_DEFINED__ */


#ifndef __Application_FWD_DEFINED__
#define __Application_FWD_DEFINED__
typedef interface Application Application;
#endif 	/* __Application_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
#include "siobjectmodel.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf_si3dobjectmodel_0000 */
/* [local] */ 

#pragma once
#pragma once
#pragma once


extern RPC_IF_HANDLE __MIDL_itf_si3dobjectmodel_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_si3dobjectmodel_0000_v0_0_s_ifspec;


#ifndef __SI3DOBJECTMODELLIB_LIBRARY_DEFINED__
#define __SI3DOBJECTMODELLIB_LIBRARY_DEFINED__

/* library SI3DOBJECTMODELLIB */
/* [helpstring][version][uuid] */ 

//XSIEnumStart
typedef /* [helpstring] */ 
enum siErrorValueEnum
    {	siErrCancelled	= 0x4c7L
    } 	siErrorValueEnum;

typedef /* [helpstring] */ 
enum siDefaultTimeFormat
    {	siDefaultFILM24	= 7,
	siDefaultPAL25	= 8,
	siDefaultNTSC30	= 10,
	siDefaultUserTimeFormat	= 11,
	siDefault30	= 19
    } 	siDefaultTimeFormat;

typedef /* [helpstring] */ 
enum siDisplayTimeFormat
    {	siDisplayMilliSeconds	= 2,
	siDisplayFILM24	= 7,
	siDisplayPAL25	= 8,
	siDisplayNTSCDF	= 9,
	siDisplayNTSC30	= 10,
	siDisplaySampleRate	= 12
    } 	siDisplayTimeFormat;

typedef /* [helpstring] */ 
enum siFilterMode
    {	siQuickSearch	= 0,
	siSearchFamilies	= 1,
	siSearchObjects	= 2,
	siFullSearch	= 3
    } 	siFilterMode;

typedef /* [helpstring] */ 
enum siDeltaMode
    {	siAbsolute	= 0,
	siRelative	= 1
    } 	siDeltaMode;

typedef /* [helpstring] */ 
enum siTextureEffectsComputation
    {	siTextureComputeTransformation	= 1,
	siTextureComputeCropping	= 2,
	siTextureComputeUVRemap	= 4,
	siTextureComputeFlip	= 8,
	siTextureComputeRepeats	= 16,
	siTextureComputeAlternate	= 32,
	siTextureComputeWrapping	= 64
    } 	siTextureEffectsComputation;

typedef /* [helpstring] */ 
enum siRefMode
    {	siGlobal	= 1,
	siLocal	= 2,
	siObjCtr	= 3,
	siView	= 4,
	siParent	= 6,
	siPlane	= 7,
	siPivot	= 8,
	siAdd	= 70,
	siGlobalCOG	= 17,
	siLocalCOG	= 18,
	siObjectCOG	= 19,
	siViewCOG	= 20,
	siParentCOG	= 22,
	siPlaneCOG	= 23,
	siPivotCOG	= 24,
	siAddCOG	= 86,
	siGlobalSym	= 2049,
	siLocalSym	= 2050,
	siObjectSym	= 2051,
	siViewSym	= 2052,
	siParentSym	= 2054,
	siPlaneSym	= 2055,
	siPivotSym	= 2056,
	siAddSym	= 2118,
	siGlobalSymCOG	= 2065,
	siLocalSymCOG	= 2066,
	siObjectSymCOG	= 2067,
	siViewSymCOG	= 2068,
	siParentSymCOG	= 2070,
	siPlaneSymCOG	= 2071,
	siPivotSymCOG	= 2072,
	siAddSymCOG	= 2134
    } 	siRefMode;

typedef /* [helpstring] */ 
enum siCenterMode
    {	siObj	= 0,
	siCtr	= 1
    } 	siCenterMode;

typedef /* [helpstring] */ 
enum siAxesFilter
    {	siX	= 1,
	siY	= 2,
	siXY	= 3,
	siZ	= 4,
	siXZ	= 5,
	siYZ	= 6,
	siXYZ	= 7
    } 	siAxesFilter;

typedef /* [helpstring] */ 
enum siUVWAxesFilter
    {	siU	= 1,
	siV	= 2,
	siUV	= 3,
	siW	= 4,
	siUW	= 5,
	siVW	= 6,
	siUVW	= 7
    } 	siUVWAxesFilter;

typedef /* [helpstring] */ 
enum siTransformFilter
    {	siScl	= 1,
	siRot	= 2,
	siTrn	= 4,
	siSR	= 8,
	siST	= 16,
	siRT	= 32,
	siSRT	= 64
    } 	siTransformFilter;

typedef /* [helpstring] */ 
enum siParameterFilter
    {	siNoParam	= 0,
	siMarkedParam	= 1,
	siAnimatedParam	= 3,
	siSelectedParam	= 4,
	siScalingParam	= 5,
	siRotationParam	= 6,
	siTranslationParam	= 7,
	siTransformParam	= 8,
	siAllParam	= 128
    } 	siParameterFilter;

typedef /* [helpstring] */ 
enum siPSetRelationship
    {	siContainedPSet	= 1,
	siSharedPSet	= 2,
	siLocalPSet	= 4,
	siObjectPSet	= 8,
	siPortPSet	= 16,
	siParameterPSet	= 32
    } 	siPSetRelationship;

typedef /* [helpstring] */ 
enum siPropagationType
    {	siDefaultPropagation	= 0,
	siBranchPropagation	= 1,
	siNodePropagation	= 2
    } 	siPropagationType;

typedef /* [helpstring] */ 
enum siDupHierarchy
    {	siNodeDuplicate	= 0,
	siBranchDuplicate	= 1,
	siDefaultDuplicate	= 3
    } 	siDupHierarchy;

typedef /* [helpstring] */ 
enum siDupHistory
    {	siCurrentHistory	= 0,
	siOriginalHistory	= 1,
	siDuplicateHistory	= 2,
	siSharedHistory	= 3
    } 	siDupHistory;

typedef /* [helpstring] */ 
enum siDupParent
    {	siNoParent	= 0,
	siSharedParent	= 1,
	siNewNullParent	= 2
    } 	siDupParent;

typedef /* [helpstring] */ 
enum siDupGroup
    {	siNoGrouping	= 0,
	siShareGrouping	= 1
    } 	siDupGroup;

typedef /* [helpstring] */ 
enum siDupProperty
    {	siDuplicateProperties	= 0,
	siSharedProperties	= 1,
	siNoProperties	= 2
    } 	siDupProperty;

typedef /* [helpstring] */ 
enum siDupAnimation
    {	siDuplicateAnimation	= 0,
	siNoAnimation	= 1,
	siDupAnimationCopySource	= 2
    } 	siDupAnimation;

typedef /* [helpstring] */ 
enum siDupConstraint
    {	siDuplicateConstraints	= 0,
	siShareConstraints	= 1,
	siNoConstraints	= 2
    } 	siDupConstraint;

typedef /* [helpstring] */ 
enum siDupTextureSupport
    {	siDuplicateSelectedTextureSupports	= 0,
	siDuplicateTextureSupports	= 1,
	siShareTextureSupports	= 2,
	siFreezeAllProjections	= 3
    } 	siDupTextureSupport;

typedef /* [helpstring] */ 
enum siDupSelection
    {	siSetSelection	= 0,
	siNoSelection	= 1,
	siAddToSelection	= 2
    } 	siDupSelection;

typedef /* [helpstring] */ 
enum siDupTransform
    {	siGlobalXForm	= 0,
	siApplyRepeatXForm	= 1
    } 	siDupTransform;

typedef /* [helpstring] */ 
enum siKeyboardState
    {	siShiftMask	= 1,
	siCtrlMask	= 2,
	siAltMask	= 4
    } 	siKeyboardState;

typedef /* [helpstring] */ 
enum siInspectMode
    {	siRecycle	= 1,
	siFollow	= 2,
	siLock	= 3,
	siModal	= 4,
	siLockAndForceNew	= 5
    } 	siInspectMode;

typedef /* [helpstring] */ 
enum siInspectBrowseMode
    {	siNext	= 1,
	siPrevious	= 2,
	siLast	= 3,
	siFirst	= 4
    } 	siInspectBrowseMode;

typedef /* [helpstring] */ 
enum siSourceType
    {	siFCurveSource	= 1,
	siExpressionSource	= 2,
	siAnySource	= 4,
	siMixerSource	= 8,
	siConstraintSource	= 16,
	siScriptedOperatorSource	= 32,
	siShapeAnimationSource	= 64
    } 	siSourceType;

typedef /* [helpstring] */ 
enum siBranchFlag
    {	siNode	= 0,
	siBranch	= 1,
	siUnspecified	= 3
    } 	siBranchFlag;

typedef /* [helpstring] */ 
enum siOperationMode
    {	siPersistentOperation	= 0,
	siImmediateOperation	= 1
    } 	siOperationMode;

typedef /* [helpstring] */ 
enum siGeneratorInputsDisposalMode
    {	siKeepGenOpInputs	= 0,
	siHideGenOpInputs	= 1,
	siDeleteGenOpInputs	= 2
    } 	siGeneratorInputsDisposalMode;

typedef /* [helpstring] */ 
enum siComponentVisibilityMode
    {	siIgnoreComponentVisibility	= 0,
	siCheckComponentVisibility	= 1
    } 	siComponentVisibilityMode;

typedef /* [helpstring] */ 
enum siActionWhenLocalMaterialsOverlap
    {	siPromptUser	= 0,
	siRemoveFromSelectedClusters	= 1,
	siRemoveFromExistingClusters	= 2,
	siLetLocalMaterialsOverlap	= 3,
	siJustReturnExistingClusters	= 4
    } 	siActionWhenLocalMaterialsOverlap;

typedef /* [helpstring] */ 
enum siSplitPolygonType
    {	siByTheVertices	= 0,
	siByTheEdgesMidPoints	= 1,
	siCross	= 2,
	siDiamond	= 3
    } 	siSplitPolygonType;

typedef /* [helpstring] */ 
enum siSelectionUpdate
    {	siLeaveSelection	= 0,
	siCleanSelection	= 1,
	siUpdateSelection	= 2
    } 	siSelectionUpdate;

typedef /* [helpstring] */ 
enum siTxtCreationType
    {	siTxtPlanarXY	= 0,
	siTxtPlanarXZ	= 1,
	siTxtPlanarYZ	= 2,
	siTxtCylindrical	= 3,
	siTxtSpherical	= 4,
	siTxtSpatial	= 5,
	siTxtCamera	= 6,
	siTxtUV	= 7,
	siTxtLollipop	= 8,
	siTxtPureImplicit	= 9,
	siTxtCubic	= 10,
	siTxtUniqueUV	= 11
    } 	siTxtCreationType;

typedef /* [helpstring] */ 
enum siTxtDefaultCreationType
    {	siTxtDefaultPlanarXY	= 0,
	siTxtDefaultPlanarXZ	= 1,
	siTxtDefaultPlanarYZ	= 2,
	siTxtDefaultCylindrical	= 3,
	siTxtDefaultSpherical	= 4,
	siTxtDefaultSpatial	= 5,
	siTxtDefaultCubic	= 6,
	siTxtDefaultLollipop	= 8
    } 	siTxtDefaultCreationType;

typedef /* [helpstring] */ 
enum siTxtProjType
    {	siProjPlanar	= 0,
	siProjCylindrical	= 1,
	siProjSpherical	= 2,
	siProjLollipop	= 3,
	siProjSpatial	= 4,
	siProjCubic	= 5
    } 	siTxtProjType;

typedef /* [helpstring] */ 
enum siTxtProjPlane
    {	siPlaneXY	= 0,
	siPlaneXZ	= 1,
	siPlaneYZ	= 2
    } 	siTxtProjPlane;

typedef /* [helpstring] */ 
enum siTxtProjFitMethod
    {	siRelDefault	= 0,
	siRelBestFit	= 1,
	siRelObject	= 2,
	siRelWorld	= 3,
	siRelObjectPosObject	= 4,
	siRelWorldPosObject	= 5
    } 	siTxtProjFitMethod;

typedef /* [helpstring] */ 
enum siChangeUVInputActions
    {	siChangeUVInputActionSwim	= 0,
	siChangeUVInputActionStick	= 1,
	siChangeUVInputActionReproject	= 2
    } 	siChangeUVInputActions;

typedef /* [helpstring] */ 
enum siAlignModes
    {	siAlignGMIN	= 0,
	siAlignGMIDDLE	= 1,
	siAlignGMAX	= 2,
	siAlignFMIN	= 3,
	siAlignFMIDDLE	= 4,
	siAlignFMAX	= 5
    } 	siAlignModes;

typedef /* [helpstring] */ 
enum siWeightPresets
    {	siWeightEaseIn	= 1,
	siWeightEaseOut	= 2,
	siWeightLinearEaseIn	= 3,
	siWeightLinearEaseOut	= 4,
	siWeightExponentialIn	= 5,
	siWeightExponentialOut	= 6,
	siWeightGaussian	= 7,
	siWeightGaussianReverse	= 8,
	siWeightSquare	= 9,
	siWeightSquareReverse	= 10,
	siWeightOscillate	= 11,
	siWeightConstant	= 12,
	siWeightFlipX	= 13,
	siWeightFlipY	= 14
    } 	siWeightPresets;

typedef /* [helpstring] */ 
enum siCutClipOptions
    {	siCut	= 1,
	siTrimBefore	= 2,
	siTrimAfter	= 3
    } 	siCutClipOptions;

typedef /* [helpstring] */ 
enum siEditClipOptions
    {	siClipNudge	= 1,
	siClipSlip	= 2,
	siClipTrim	= 3,
	siClipScale	= 4,
	siClipStartAt	= 5,
	siClipEndAt	= 6,
	siClipScaleTo	= 7
    } 	siEditClipOptions;

typedef /* [helpstring] */ 
enum siPresetLocation
    {	siDefaultLocation	= 0,
	siFactory	= 1,
	siUser	= 2,
	siWorkgroup	= 3,
	siProject	= 4
    } 	siPresetLocation;

typedef /* [helpstring] */ 
enum siVariantType
    {	siEmpty	= 0,
	siInt2	= 2,
	siInt4	= 3,
	siFloat	= 4,
	siDouble	= 5,
	siString	= 8,
	siDispatch	= 9,
	siBool	= 11,
	siUnknown	= 13,
	siByte	= 16,
	siUByte	= 17,
	siUInt2	= 18,
	siUInt4	= 19,
	siInt	= 22,
	siUInt	= 23,
	siWStr	= 31
    } 	siVariantType;

typedef /* [helpstring] */ 
enum siParamClassification
    {	siClassifVisualization	= 1,
	siClassifPositioning	= 2,
	siClassifAppearance	= 4,
	siClassifMetaData	= 8,
	siClassifModel	= 16,
	siClassifTopo	= 16481,
	siClassifGeometry	= 16449,
	siClassifUnknown	= 32768
    } 	siParamClassification;

typedef /* [helpstring] */ 
enum siMaterialPorts
    {	siMaterialPortSurface	= 1,
	siMaterialPortVolume	= 2,
	siMaterialPortEnvironment	= 3,
	siMaterialPortContour	= 4,
	siMaterialPortDisplacement	= 5,
	siMaterialPortShadow	= 6,
	siMaterialPortPhoton	= 7,
	siMaterialPortPhotonVol	= 8,
	siMaterialPortBumpMap	= 9
    } 	siMaterialPorts;

typedef /* [helpstring] */ 
enum siShadingModel
    {	siUndefinedShadingModel	= -1,
	siShadingModelConstant	= 0,
	siShadingModelLambert	= 1,
	siShadingModelBlinn	= 2,
	siShadingModelPhong	= 3,
	siShadingModelShadow	= 4,
	siShadingModelColorVertex	= 5
    } 	siShadingModel;

typedef /* [helpstring] */ 
enum siShaderOutputType
    {	siUnknownOutputType	= 0,
	siBooleanOutputType	= 1,
	siIntegerOutputType	= 2,
	siScalarOutputType	= 3,
	siColorOutputType	= 4,
	siVectorOutputType	= 5,
	siTextureSpaceOutputType	= 6,
	siTextureOutputType	= 7,
	siStringOutputType	= 8,
	siFilenameOutputType	= 9,
	siLensOutputType	= 10,
	siLightOutputType	= 11,
	siMaterialOutputType	= 12,
	siModelOutputType	= 13,
	siLightmapOutputType	= 20
    } 	siShaderOutputType;

typedef /* [helpstring] */ 
enum siShaderParameterType
    {	siUnknownParameterType	= 0,
	siBooleanParameterType	= 1,
	siColorParameterType	= 4,
	siDataParameterType	= 14,
	siIntegerParameterType	= 2,
	siLensParameterType	= 10,
	siLightParameterType	= 11,
	siMaterialParameterType	= 12,
	siMatrixParameterType	= 15,
	siModelParameterType	= 13,
	siRealTimeParameterType	= 16,
	siReferenceParameterType	= 17,
	siScalarParameterType	= 3,
	siShaderReferenceParameterType	= 18,
	siStringParameterType	= 8,
	siStructParameterType	= 19,
	siTextureParameterType	= 7,
	siTextureSpaceParameterType	= 6,
	siVectorParameterType	= 5,
	siLightmapParameterType	= 20
    } 	siShaderParameterType;

typedef /* [helpstring] */ 
enum siLightType
    {	siLightPoint	= 0,
	siLightInfinite	= 1,
	siLightSpot	= 2,
	siLightSun	= 3,
	siUndefinedLightType	= 4
    } 	siLightType;

typedef /* [helpstring] */ 
enum siCnxGroupType
    {	siCreatedObjects	= 1
    } 	siCnxGroupType;

typedef /* [helpstring] */ 
enum siCnxSetType
    {	siGroupLevel	= 0,
	siPortLevel	= 1
    } 	siCnxSetType;

typedef /* [helpstring] */ 
enum siPartitionType
    {	siObjectPartition	= 1,
	siLightPartition	= 2
    } 	siPartitionType;

typedef /* [helpstring] */ 
enum siLockLevel
    {	siLockLevelNone	= 0,
	siLockLevelConstruction	= 1,
	siLockLevelAnimation	= 2,
	siLockLevelManipulation	= 4,
	siLockLevelNavigation	= 8,
	siLockLevelAll	= 0xffff
    } 	siLockLevel;

typedef /* [helpstring] */ 
enum siLockType
    {	siLockTypeNone	= 0,
	siLockTypeSystem	= 1,
	siLockTypeUser	= 2,
	siLockTypeRefModel	= 3,
	siLockTypeOverride	= 4,
	siLockTypeAll	= 0xffff
    } 	siLockType;

typedef /* [helpstring] */ 
enum siTags
    {	siTagNone	= 0,
	siTag1	= 1,
	siTag2	= 2,
	siTag3	= 4,
	siTag4	= 8,
	siTag5	= 16,
	siTag6	= 32,
	siTag7	= 64,
	siTag8	= 128,
	siTag9	= 256,
	siTag10	= 512,
	siTagAll	= 0xffff
    } 	siTags;

typedef /* [helpstring] */ 
enum siGeometryType
    {	siNurbsSurfaceMesh	= 0,
	siNurbsCurveList	= 1,
	siPolygonMesh	= 2
    } 	siGeometryType;

typedef /* [helpstring] */ 
enum siBoundingVolume
    {	siBoundingBox	= 0
    } 	siBoundingVolume;

typedef /* [helpstring] */ 
enum siPortType
    {	siPortInput	= 0,
	siPortOutput	= 1
    } 	siPortType;

typedef /* [helpstring] */ 
enum siModificationType
    {	siModificationTypeNone	= 0,
	siModificationTypeStaticPosition	= 1,
	siModificationTypeFCurves	= 2,
	siModificationTypeExpression	= 4,
	siModificationTypeConstraints	= 8,
	siModificationTypeAddProp	= 16,
	siModificationTypeAnimMixer	= 32,
	siModificationTypeOtherConnections	= 64,
	siModificationTypeAll	= 65535
    } 	siModificationType;

typedef /* [helpstring] */ 
enum siModificationMixerType
    {	siModificationMixerNone	= 0,
	siModificationMixerAnimation	= 1,
	siModificationMixerShape	= 2,
	siModificationMixerAudio	= 4,
	siModificationMixerTypeAll	= 65535
    } 	siModificationMixerType;

typedef /* [helpstring] */ 
enum siModelResolution
    {	siModelResolutionOffLoaded	= 0,
	siModelResolutionLowRes	= 1,
	siModelResolutionMediumRes	= 2,
	siModelResolutionHighRes	= 3
    } 	siModelResolution;

typedef /* [helpstring] */ 
enum siSequenceType
    {	siMarkedParams	= 1,
	siAnimParams	= 2,
	siAllAnimParams	= 3
    } 	siSequenceType;

typedef /* [helpstring] */ 
enum siSequenceMode
    {	siFCurves	= 1,
	siFCurvesAnimationSources	= 2,
	siFCurvesClips	= 3,
	siAnimationSources	= 4,
	siClips	= 5
    } 	siSequenceMode;

typedef /* [helpstring] */ 
enum siEffectInputType
    {	siSelectedParams	= 1,
	siAllParamsInClip	= 2,
	siPoseOffsetClip	= 3
    } 	siEffectInputType;

typedef /* [helpstring] */ 
enum siNeighborType
    {	siAdjacent	= 1,
	siGrow	= 2,
	siNextCompo	= 3,
	siPrevCompo	= 4,
	siFirstCompo	= 5,
	siLastCompo	= 6
    } 	siNeighborType;

typedef /* [helpstring] */ 
enum siNavigDirection
    {	siNavigUp	= 0,
	siNavigDown	= 1,
	siNavigLeft	= 2,
	siNavigRight	= 3,
	siNavigFirst	= 4,
	siNavigLast	= 5
    } 	siNavigDirection;

typedef /* [helpstring] */ 
enum siNavigationDirection
    {	siParentNode	= 1,
	siChildNode	= 2,
	siNextNode	= 3,
	siPreviousNode	= 4,
	siFirstNode	= 5,
	siLastNode	= 6
    } 	siNavigationDirection;

typedef /* [helpstring] */ 
enum siNavigationFilter
    {	siNavigationFilterScene	= 1,
	siNavigationFilter3DObject	= 2,
	siNavigationFilterOperator	= 3,
	siNavigationFilterPrimitive	= 4,
	siNavigationFilterProperty	= 5,
	siNavigationFilterCluster	= 6,
	siNavigationFilterObjectSubElems	= 7,
	siNavigationFilterGroup	= 8,
	siNavigationFilterGenericComObject	= 9,
	siNavigationFilterAll	= 10,
	siNavigationFilterSame	= 11
    } 	siNavigationFilter;

typedef /* [helpstring] */ 
enum siNavigationSubFilter
    {	siNavigationSubFilterAll	= 0,
	siNavigationSubFilterSame	= 1
    } 	siNavigationSubFilter;

typedef /* [helpstring] */ 
enum siViewType
    {	siNoView	= 0,
	siViewUser	= 1,
	siViewTop	= 2,
	siViewLeft	= 3,
	siViewRight	= 4
    } 	siViewType;

typedef /* [helpstring] */ 
enum si2DChainAlignType
    {	si2DChainTop	= 0,
	si2DChainFront	= 1,
	si2DChainRight	= 2,
	si2DChainNormalRadian	= 3,
	si2DChainNormalDegree	= 4
    } 	si2DChainAlignType;

typedef /* [helpstring] */ 
enum siChainBoneType
    {	siChainBoneUndefined	= 0,
	siChainBonePin	= 1,
	siChainBoneBallJoint	= 2
    } 	siChainBoneType;

typedef /* [helpstring] */ 
enum siConnectionType
    {	siReadConnection	= 1,
	siWriteConnection	= 2,
	siReadWriteConnection	= 3
    } 	siConnectionType;

typedef /* [helpstring] */ 
enum siAxisType
    {	siXAxis	= 1,
	siYAxis	= 2,
	siZAxis	= 3
    } 	siAxisType;

typedef /* [helpstring] */ 
enum siKnotParameterization
    {	siUniformParameterization	= 0,
	siNonUniformParameterization	= 1,
	siChordLengthParameterization	= 2,
	siCentripetalParameterization	= 3
    } 	siKnotParameterization;

typedef /* [helpstring] */ 
enum siMappingRuleType
    {	siConnectionMappingRule	= 0,
	siValueMappingRule	= 1
    } 	siMappingRuleType;

typedef /* [helpstring] */ 
enum siNurbsDirection
    {	siUDirection	= 0,
	siVDirection	= 1
    } 	siNurbsDirection;

typedef /* [helpstring] */ 
enum siNurbsFormat
    {	siSINurbs	= 0,
	siIGESNurbs	= 1
    } 	siNurbsFormat;

typedef /* [helpstring] */ 
enum siInstallationPath
    {	siProjectPath	= 0,
	siUserPath	= 1,
	siWorkgroupPath	= 2,
	siFactoryPath	= 3,
	siAddonPath	= 4,
	siUserAddonPath	= 5,
	siWorkgroupAddonPath	= 6,
	siUnknownPath	= 7,
	siCustomPath	= 8
    } 	siInstallationPath;

typedef /* [helpstring] */ 
enum siShapeInstanceMode
    {	siShapeInstanceOnlyMode	= 0,
	siShapeMixedWeightMode	= 1,
	siShapeTransitionMode	= 2,
	siShapeTransitionCardinalMode	= 3,
	siShapeBlendedWeightMode	= 4
    } 	siShapeInstanceMode;

typedef /* [helpstring] */ 
enum siShapeReferenceMode
    {	siShapeLocalReferenceMode	= 0,
	siShapeObjectReferenceMode	= 1,
	siShapeAbsoluteReferenceMode	= 2
    } 	siShapeReferenceMode;

typedef /* [helpstring] */ 
enum siShapeContent
    {	siShapeContentUseConstructionMode	= 0,
	siShapeContentPrimaryShape	= 1,
	siShapeContentSecondaryShape	= 2,
	siShapeContentAllDeforms	= 3
    } 	siShapeContent;

typedef /* [helpstring] */ 
enum siConstructionMode
    {	siConstructionModeModeling	= 0,
	siConstructionModePrimaryShape	= 1,
	siConstructionModeAnimation	= 2,
	siConstructionModeSecondaryShape	= 3,
	siConstructionModeDefault	= 4
    } 	siConstructionMode;

typedef /* [helpstring] */ 
enum siResolutionPlane
    {	siDefaultResolutionPlane	= 0,
	siPreferredAxisPlane	= 1,
	siUpVectorPlane	= 2
    } 	siResolutionPlane;

typedef /* [helpstring] */ 
enum siTextureProjectionType
    {	siTexturePlanarXY	= 0,
	siTexturePlanarXZ	= 1,
	siTexturePlanarYZ	= 2,
	siTextureCylindrical	= 3,
	siTextureSpherical	= 4,
	siTextureSpatial	= 5,
	siTextureCamera	= 6,
	siTextureUV	= 7,
	siTextureLollipop	= 8,
	siTexturePureImplicit	= 9
    } 	siTextureProjectionType;

typedef /* [helpstring] */ 
enum siUVTextureType
    {	siUVTexturePlanarXY	= 0,
	siUVTexturePlanarXZ	= 1,
	siUVTexturePlanarYZ	= 2,
	siUVTextureCylindrical	= 3,
	siUVTextureSpherical	= 4,
	siUVTextureSpatial	= 5,
	siUVTextureLollipop	= 6
    } 	siUVTextureType;

typedef /* [helpstring] */ 
enum siCapabilities
    {	siAnimatable	= 1,
	siReadOnly	= 2,
	siPersistable	= 4,
	siNotInspectable	= 8,
	siSilent	= 16,
	siNotPresetPersistable	= 128,
	siTexturable	= 256,
	siKeyable	= 2048,
	siNonKeyableVisible	= 4096
    } 	siCapabilities;

typedef /* [helpstring] */ 
enum siFCurveType
    {	siUnknownFCurve	= 0,
	siDefaultFCurve	= 0,
	siBooleanFCurve	= 10,
	siIntegerFCurve	= 15,
	siStandardFCurve	= 20,
	siRawDataFCurve	= 30
    } 	siFCurveType;

typedef /* [helpstring] */ 
enum siFCurveExtrapolation
    {	siConstantExtrapolation	= 1,
	siLinearExtrapolation	= 2,
	siPeriodicExtrapolation	= 3,
	siPeriodicRelativeExtrapolation	= 4
    } 	siFCurveExtrapolation;

typedef /* [helpstring] */ 
enum siFCurveKeyConstraint
    {	siParameterConstraint	= 1,
	siLeftRightValuesConstraint	= 2,
	siG1ContinuousConstraint	= 4,
	siLeftRightTangentDirectionConstraint	= 8,
	siLeftRightTangentLengthConstraint	= 16,
	siLockConstraint	= 32,
	siHorizontalTangentConstraint	= 64,
	siExtremumHorizontalTangentConstraint	= 128,
	siAdjustedTangentConstraint	= 256,
	siZeroLengthTangentConstraint	= 512,
	siSameLengthTangentConstraint	= 1024
    } 	siFCurveKeyConstraint;

typedef /* [helpstring] */ siFCurveKeyConstraint siFCurveKeyFlags;

typedef /* [helpstring] */ 
enum siFCurveKeyInterpolation
    {	siDefaultKeyInterpolation	= 0,
	siConstantKeyInterpolation	= 1,
	siLinearKeyInterpolation	= 2,
	siCubicKeyInterpolation	= 3
    } 	siFCurveKeyInterpolation;

typedef /* [helpstring] */ 
enum siFCurveInterpolation
    {	siDefaultInterpolation	= 0,
	siConstantInterpolation	= 1,
	siLinearInterpolation	= 2,
	siCubicInterpolation	= 3
    } 	siFCurveInterpolation;

typedef /* [helpstring] */ 
enum siFCurveSmoothFilterType
    {	siFCurveAverageFilterType	= 1,
	siFCurveGaussianFilterType	= 2
    } 	siFCurveSmoothFilterType;

#define	siPI	( 3.14159 )

typedef /* [helpstring] */ 
enum siUpdateContextState
    {	siUpdateContextNormalEval	= 0,
	siUpdateContextRenderEval	= 1
    } 	siUpdateContextState;

typedef /* [helpstring] */ 
enum siArgumentFlags
    {	siArgumentInput	= 2,
	siArgumentOutput	= 4,
	siArgumentInputOutput	= 6
    } 	siArgumentFlags;

typedef /* [helpstring] */ 
enum siCommandCategory
    {	siImportCategory	= 0,
	siExportCategory	= 1,
	siSettingsCategory	= 2,
	siHelpCategory	= 3,
	siNoCategory	= 4,
	siFCurveCategory	= 5
    } 	siCommandCategory;

typedef /* [helpstring] */ 
enum siImportShareOptions
    {	siImportShareOptionsNone	= 0,
	siImportShareOptionsImageClips	= 1,
	siImportShareOptionsMaterials	= 2,
	siImportShareOptionsLayers	= 4,
	siImportShareOptionsPartitions	= 8,
	siImportShareOptionsAll	= 0xffff
    } 	siImportShareOptions;

typedef /* [helpstring] */ 
enum siEventID
    {	siOnBeginNewScene	= 542179328,
	siOnEndNewScene	= 542179329,
	siOnBeginSceneOpen	= 542179330,
	siOnEndSceneOpen	= 542179331,
	siOnBeginSceneSave	= 542179332,
	siOnEndSceneSave	= 542179333,
	siOnBeginSceneSaveAs	= 542179334,
	siOnEndSceneSaveAs	= 542179335,
	siOnTerminate	= 542179336,
	siOnSelectionChange	= 542179337,
	siOnBeginFrame	= 542179338,
	siOnEndFrame	= 542179339,
	siOnBeginSequence	= 542179340,
	siOnEndSequence	= 542179341,
	siOnKeyUp	= 542179342,
	siOnKeyDown	= 542179343,
	siOnValueChange	= 542179344,
	siOnTimeChange	= 542179345,
	siOnWindowEvent	= 542179346,
	siOnBeginFileExport	= 542179347,
	siOnEndFileExport	= 542179348,
	siOnBeginFileImport	= 542179349,
	siOnEndFileImport	= 542179350,
	siOnStartup	= 542179351,
	siOnSourcePathChange	= 542179352,
	siOnObjectAdded	= 542179353,
	siOnObjectRemoved	= 542179354,
	siOnTimer	= 542179355,
	siOnBeginSceneSave2	= 542179356,
	siOnEndSceneSave2	= 542179357,
	siOnCloseScene	= 542179358,
	siOnActivate	= 542179359,
	siOnMaximize	= 542179360,
	siOnMinimize	= 542179361,
	siOnChangeProject	= 542179362
    } 	siEventID;

typedef /* [helpstring] */ 
enum siSelectionChangeType
    {	siAddedToSelection	= 0,
	siRemovedFromSelection	= 1
    } 	siSelectionChangeType;

typedef /* [helpstring] */ 
enum siRenderFieldType
    {	siRenderFieldNone	= 0,
	siRenderFieldOdd	= 1,
	siRenderFieldEven	= 2
    } 	siRenderFieldType;

typedef /* [helpstring] */ 
enum siRenderingType
    {	siRenderSequence	= 0,
	siRenderFramePreview	= 1,
	siRenderEchoToMi	= 2
    } 	siRenderType;

typedef /* [helpstring] */ 
enum siSubdivisionRuleType
    {	siCatmullClark	= 0,
	siXSIDooSabin	= 2,
	siLinearSubdivision	= 3
    } 	siSubdivisionRuleType;

typedef /* [helpstring] */ 
enum siNavigateComponentType
    {	siNextComponent	= 0,
	siPreviousComponent	= 1,
	siFirstComponent	= 2,
	siLastComponent	= 3
    } 	siNavigateComponentType;

typedef /* [helpstring] */ 
enum siParticleShapeType
    {	siNoneType	= 0,
	siStepType	= 1,
	siSineType	= 2,
	siStarType	= 3,
	siBeamType	= 4,
	siSymmetryPatternType	= 5,
	siNoiseType	= 6,
	siTurbulenceType	= 7,
	siFractalType	= 8
    } 	siParticleShapeType;

typedef /* [helpstring] */ 
enum siParticleRenderType
    {	siBillboardType	= 0,
	siSphereType	= 1,
	siBlobType	= 2
    } 	siParticleRenderType;

typedef /* [helpstring] */ 
enum siParticleBillboardShapeType
    {	siSquareType	= 0,
	siRectangularType	= 1,
	siCircularType	= 2
    } 	siParticleBillboardShapeType;

typedef /* [helpstring] */ 
enum siParticleBillboardTextureProjectionType
    {	siPlanarProjection	= 0,
	siParticleLocalSpace	= 1,
	siCloudLocalSpace	= 2,
	siWorldSpace	= 3
    } 	siParticleBillboardTextureProjectionType;

typedef /* [helpstring] */ 
enum siParticleBillboardSurfaceNormalType
    {	siBillboardSurfaceNormal	= 0,
	siSphericalSurfaceNormal	= 1
    } 	siParticleBillboardSurfaceNormalType;

typedef /* [helpstring] */ 
enum siParticleBillboardFaceDirectionsType
    {	siCamera	= 0,
	siIncomingRay	= 1,
	siCameraAndLights	= 2,
	siUseRotation	= 3
    } 	siParticleBillboardFaceDirectionsType;

typedef /* [helpstring] */ 
enum siParticleShapeFalloffType
    {	siNone	= 0,
	siLinear	= 1,
	siSquare	= 2,
	siSmooth	= 3,
	siCubic	= 4,
	siGaussian	= 5
    } 	siParticleShapeFalloffType;

typedef /* [helpstring] */ 
enum siParticleEmissionGenerationType
    {	siPoint	= 0,
	siLine	= 1,
	siSurface	= 2,
	siVolume	= 3,
	siFluid	= 4
    } 	siParticleEmissionGenerationType;

typedef /* [helpstring] */ 
enum siParticleEmissionDirectionType
    {	siEmissionDirectionNormal	= 0,
	siEmissionDirectionLocal	= 1,
	siEmissionDirectionGlobal	= 2
    } 	siParticleEmissionDirectionType;

typedef /* [helpstring] */ 
enum siSimulationParameterDistributionType
    {	siDistributionUniform	= 0,
	siDistributionGaussian	= 1
    } 	siSimulationParameterDistributionType;

typedef /* [helpstring] */ 
enum siSimulationParameterAnimationControlType
    {	siParamControlBirth	= 0,
	siParamControlAge	= 1,
	siParamControlAbsolute	= 2,
	siParamControlAgePercentage	= 3
    } 	siSimulationParameterAnimationControlType;

typedef /* [helpstring] */ 
enum siParticleSpriteSequenceControlType
    {	siSpriteControlSpriteControlBirth	= 0,
	siSpriteControlAge	= 1,
	siSpriteControlAbsolute	= 2,
	siSpriteControlAgePercentage	= 3,
	siSpriteControlRandom	= 4,
	siSpriteControlJitter	= 5,
	siSpriteControlRenderTime	= 6
    } 	siParticleSpriteSequenceControlType;

typedef /* [helpstring] */ 
enum siParticleEventTriggerType
    {	siAgePercentage	= 0,
	siAge	= 1,
	siEveryNParticles	= 2,
	siEveryNFrames	= 3,
	siXPosition	= 4,
	siYPosition	= 5,
	siZPosition	= 6,
	siXSpeed	= 7,
	siYSpeed	= 8,
	siZSpeed	= 9,
	siSpeed	= 10,
	siCollision	= 11
    } 	siParticleEventTriggerType;

typedef /* [helpstring] */ 
enum siParticleEventActionType
    {	siEmit	= 0,
	siDisappear	= 1,
	siEmitAndDisappear	= 2,
	siBounce	= 3,
	siBounceAndEmit	= 4,
	siStick	= 5,
	siScript	= 6
    } 	siParticleEventActionType;

typedef /* [helpstring] */ 
enum siObstacleType
    {	siObstacleBoundingPlane	= 0,
	siObstacleBoundingBox	= 1,
	siObstacleBoundingSphere	= 2,
	siObstacleActualShape	= 3
    } 	siObstacleType;

typedef /* [helpstring] */ 
enum siParticleSimulationMode
    {	siLiveMode	= 0,
	siStandardNoCachingMode	= 1,
	siStandardCachingMode	= 2
    } 	siParticleSimulationMode;

typedef /* [helpstring] */ 
enum siFCurveEditorAttribute
    {	siRegionStartFrame	= 0,
	siRegionEndFrame	= 1,
	siRegionMin	= 2,
	siRegionMax	= 3
    } 	siFCurveEditorAttribute;

typedef /* [helpstring] */ 
enum siSeverityType
    {	siFatalMsg	= 1,
	siErrorMsg	= 2,
	siWarningMsg	= 4,
	siInfoMsg	= 8,
	siVerboseMsg	= 16,
	siCommentMsg	= 32
    } 	siSeverityType;

typedef /* [helpstring] */ 
enum siCustomCompiledOpFlags
    {	siDLLLoadingUnloading	= 1
    } 	siCustomCompiledOpFlags;

typedef /* [helpstring] */ 
enum siChannelAction
    {	siChannelActionNone	= 0,
	siChannelActionDrive	= 1,
	siChannelActionCommand	= 2,
	siChannelActionSpecial	= 3
    } 	siChannelAction;

typedef /* [helpstring] */ 
enum siSelectMode
    {	siSelectDefault	= 0,
	siSelectNode	= 1,
	siSelectBranch	= 2,
	siSelectTree	= 3,
	siSelectModel	= 4
    } 	siSelectMode;

typedef /* [helpstring] */ 
enum siTransientExplorerFilter
    {	siSEFilterAllNodes	= 0,
	siSEFilterAllNodesNoParams	= 1,
	siSEFilterGeometryOperators	= 2,
	siSEFilterObjectsOnly	= 3,
	siSEFilterAllProperties	= 4,
	siSEFilterPropertiesAndPrimitives	= 5,
	siSEFilterMaterialsAndShaders	= 6,
	siSEFilterModelsOnly	= 7,
	siSEFilterGroupsOnly	= 8,
	siSEFilterImageClips	= 9
    } 	siTransientExplorerFilter;

typedef /* [helpstring] */ 
enum siClassID
    {	siActionSourceID	= 48,
	siAddonID	= 119,
	siAnimationSourceID	= 105,
	siAnimationSourceItemID	= 146,
	siApplicationID	= 5,
	siArgumentCollectionID	= 160,
	siArgumentHandlerID	= 148,
	siArgumentID	= 6,
	siArrayParameterID	= 135,
	siCameraID	= 80,
	siCameraRigID	= 84,
	siChainBoneID	= 77,
	siChainEffectorID	= 78,
	siChainElementID	= 75,
	siChainRootID	= 76,
	siChannelID	= 110,
	siClipContainerID	= 147,
	siClipEffectID	= 140,
	siClipEffectItemID	= 141,
	siClipID	= 8,
	siClipRelationID	= 162,
	siClusterID	= 67,
	siClusterPropertyID	= 58,
	siClusterPropertyBuilderID	= 172,
	siCollectionItemID	= 177,
	siCommandCollectionID	= 159,
	siCommandID	= 7,
	siCompoundParameterID	= 45,
	siConnectionPointID	= 27,
	siConstraintID	= 59,
	siConstraintWithUpVectorID	= 60,
	siConstructionHistoryID	= 28,
	siContextID	= 138,
	siControlPointCollectionID	= 112,
	siControlPointID	= 14,
	siCustomOperatorID	= 128,
	siCustomPropertyID	= 61,
	siDataSourceID	= 104,
	siDesktopID	= 130,
	siDeviceCollectionID	= 108,
	siDeviceID	= 109,
	siDictionaryID	= 29,
	siDirectedID	= 79,
	siEdgeCollectionID	= 101,
	siEdgeID	= 100,
	siEnvelopeID	= 54,
	siEnvelopeWeightID	= 168,
	siEventInfoID	= 30,
	siExpressionID	= 49,
	siFacetCollectionID	= 97,
	siFacetID	= 11,
	siFactoryID	= 158,
	siFCurveID	= 31,
	siFCurveKeyID	= 33,
	siFileBrowserID	= 34,
	siFileReferenceID	= 171,
	siFilterID	= 154,
	siFxOperatorID	= 90,
	siFxTreeID	= 89,
	siGeometryID	= 22,
	siGraphicSequencerContextID	= 161,
	siGridDataID	= 125,
	siGridWidgetID	= 166,
	siGroupID	= 68,
	siHairPrimitiveID	= 174,
	siImageClipID	= 50,
	siImageID	= 35,
	siInputPortID	= 38,
	siJointID	= 62,
	siKinematicsID	= 63,
	siKinematicStateID	= 86,
	siKnotCollectionID	= 111,
	siLayerID	= 69,
	siLayoutID	= 131,
	siLibraryID	= 164,
	siLightID	= 81,
	siLightRigID	= 85,
	siMappedItemID	= 36,
	siMaterialID	= 64,
	siMaterialLibraryID	= 173,
	siMenuID	= 149,
	siMenuItemID	= 150,
	siMeshBuilderID	= 169,
	siMixerID	= 163,
	siModelID	= 74,
	siNestedFCurveID	= 32,
	siNullID	= 82,
	siNurbsCurveCollectionID	= 113,
	siNurbsCurveControlPointID	= 15,
	siNurbsCurveID	= 18,
	siNurbsCurveListControlPointID	= 16,
	siNurbsCurveListID	= 24,
	siNurbsSampleCollectionID	= 115,
	siNurbsSampleID	= 20,
	siNurbsSurfaceCollectionID	= 114,
	siNurbsSurfaceControlPointID	= 17,
	siNurbsSurfaceID	= 12,
	siNurbsSurfaceMeshID	= 23,
	siObjectID	= 0,
	siOGLLightID	= 4,
	siOGLMaterialID	= 2,
	siOGLTextureID	= 3,
	siOperatorID	= 53,
	siOperatorContextID	= 178,
	siOutputPortID	= 106,
	siParamDefID	= 157,
	siParameterID	= 44,
	siParticleAttributeID	= 124,
	siParticleCloudID	= 73,
	siParticleCloudPrimitiveID	= 56,
	siParticleID	= 118,
	siParticleTypeID	= 123,
	siPassID	= 70,
	siPluginID	= 151,
	siPluginItemID	= 152,
	siPluginRegistrarID	= 153,
	siPointCollectionID	= 95,
	siPointID	= 13,
	siPointLocatorDataID	= 176,
	siPolygonFaceCollectionID	= 103,
	siPolygonFaceID	= 102,
	siPolygonMeshID	= 25,
	siPolygonNodeCollectionID	= 94,
	siPolygonNodeID	= 21,
	siPortGroupID	= 129,
	siPortID	= 37,
	siPPGEventContextID	= 139,
	siPPGItemID	= 121,
	siPPGLayoutID	= 120,
	siPreferencesID	= 122,
	siPrimitiveID	= 55,
	siProgressBarID	= 156,
	siProjectID	= 46,
	siProjectItemID	= 47,
	siPropertyID	= 57,
	siProxyParameterID	= 107,
	siRenderHairAccessorID	= 175,
	siRigID	= 83,
	siSampleCollectionID	= 93,
	siSampleID	= 19,
	siSceneID	= 51,
	siSceneItemID	= 66,
	siSegmentCollectionID	= 170,
	siSegmentID	= 26,
	siSelectionID	= 39,
	siShaderID	= 52,
	siShapeClipID	= 9,
	siShapeKeyID	= 142,
	siSimulationEnvironmentID	= 165,
	siSIObjectID	= 1,
	siSourceID	= 143,
	siStaticKinematicStateID	= 65,
	siStaticSourceID	= 40,
	siSubComponentID	= 10,
	siGeometryAccessorID	= 167,
	siTextureID	= 116,
	siTextureLayerID	= 126,
	siTextureLayerPortID	= 127,
	siTimeControlID	= 144,
	siTimerEventID	= 179,
	siTrackID	= 87,
	siTransitionID	= 145,
	siTriangleCollectionID	= 91,
	siTriangleID	= 41,
	siTriangleVertexCollectionID	= 92,
	siTriangleVertexID	= 42,
	siUIObjectID	= 132,
	siUIPersistableID	= 133,
	siUIToolkitID	= 155,
	siUnknownClassID	= 0,
	siUpdateContextID	= 43,
	siUserDataBlobID	= 117,
	siUserDataMapID	= 88,
	siUserGroupID	= 71,
	siVertexCollectionID	= 99,
	siVertexID	= 98,
	siViewContextID	= 137,
	siViewID	= 134,
	siX3DObjectID	= 72
    } 	siClassID;

typedef /* [helpstring] */ 
enum siBlendInPresetModes
    {	siBlendInPreset	= 0,
	siReplaceAndBlendInPreset	= 1,
	siReplaceNoBlend	= 2
    } 	siBlendInPresetModes;

typedef /* [helpstring] */ 
enum siBlendInTextureLayersModes
    {	siBlendInTextureLayers	= 0,
	siReplaceAndBlendInTextureLayers	= 1,
	siReplaceAndNoBlendInTextureLayers	= 2
    } 	siBlendInTextureLayersModes;

typedef /* [helpstring] */ 
enum siShaderCnxPointType
    {	siShaderCnxPointNone	= 0,
	siShaderCnxPointBasePorts	= 1,
	siShaderCnxPointTextureLayerPorts	= 2,
	siShaderCnxPointAll	= 65535
    } 	siShaderCnxPointType;

typedef /* [helpstring] */ 
enum siAddonItemType
    {	siLayoutAddonItemType	= 1,
	siToolbarAddonItemType	= 2,
	siKeyMapAddonItemType	= 3,
	siScriptCmdAddonItemType	= 4,
	siPresetAddonItemType	= 5,
	siSpdlAddonItemType	= 6,
	siLibraryAddonItemType	= 7,
	siOtherAddonItemType	= 8,
	siEventAddonItemType	= 9,
	siDeviceAddonItemType	= 10,
	siShelfAddonItemType	= 11,
	siPluginAddonItemType	= 12,
	siHelpAddonItemType	= 13,
	siViewAddonItemType	= 14
    } 	siAddonItemType;

typedef 
enum siGridWidgetColumnType
    {	siColumnStandard	= 0,
	siColumnBool	= 1,
	siColumnCombo	= 2
    } 	siGridWidgetColumnType;

typedef 
enum siGridSelectionMode
    {	siSelectionCell	= 0,
	siSelectionHeader	= 1,
	siSelectionNone	= 2
    } 	siGridSelectionMode;

typedef /* [helpstring] */ 
enum siTxtContourStretchingMethod
    {	siContourStretchingWalkingOnMesh	= 0,
	siContourStretchingSpatialDistance	= 1,
	siContourStretchingReqularQuads	= 2,
	siContourStretchingProjectionOnSurface	= 3
    } 	siTxtContourStretchingMethod;

typedef /* [helpstring] */ 
enum siExplorerScope
    {	siExplorerScopeDefault	= 0,
	siExplorerScopeProject	= 1,
	siExplorerScopePreferences	= 2,
	siExplorerScopeScene	= 3,
	siExplorerScopeLayers	= 4,
	siExplorerScopePasses	= 5,
	siExplorerScopeEnvironments	= 6,
	siExplorerScopeParTypes	= 7,
	siExplorerScopeSelection	= 8,
	siExplorerScopeCustom	= 9,
	siExplorerScopeCurrentLayer	= 10,
	siExplorerScopeCurrentPass	= 11,
	siExplorerScopeCurrentEnvironment	= 12,
	siExplorerScopeCurrentParType	= 13,
	siExplorerScopeSourcesClips	= 14,
	siExplorerScopeSourcesClipsAnimation	= 15,
	siExplorerScopeSourcesClipsAudio	= 16,
	siExplorerScopeSourcesClipsImages	= 17,
	siExplorerScopeSourcesClipsMaterials	= 18,
	siExplorerScopeSourcesClipsModels	= 19,
	siExplorerScopeCommands	= 20
    } 	siExplorerScope;

typedef /* [helpstring] */ 
enum siTimeState
    {	siTimeStateNull	= 0,
	siTimeStateStop	= 0x1,
	siTimeStatePreStop	= 0x2,
	siTimeStatePlay	= 0x4,
	siTimeStatePrePlay	= 0x8,
	siTimeStateRecord	= 0x10,
	siTimeStatePreRecord	= 0x20,
	siTimeStateFast	= 0x40,
	siTimeStatePreFast	= 0x80,
	siTimeStatePreRoll	= 0x100,
	siTimeStateStep	= 0x200,
	siTimeStatePostStep	= 0x400,
	siTimeStatePause	= 0x800,
	siTimeStatePrePause	= 0x1000,
	siTimeStateSeek	= 0x2000,
	siTimeNotifyTime	= 0x4000,
	siTimeNotifyScrub	= 0x10000,
	siTimeNotifySeek	= 0x20000,
	siTimeNotifyPortChange	= 0x40000,
	siTimeNotifyFrameDrop	= 0x80000
    } 	siTimeState;

typedef /* [helpstring] */ 
enum siDisplayCallback
    {	siUndefined	= 0,
	siPreBeginFrame	= 1,
	siBeginFrame	= 2,
	siPostBeginFrame	= 3,
	siPrePass	= 4,
	siPass	= 5,
	siPostPass	= 6,
	siPreEndFrame	= 7,
	siEndFrame	= 8,
	siPostEndFrame	= 9,
	siRenderFrame	= 10
    } 	siDisplayCallback;

typedef 
enum siXGSContextFlag
    {	siXGSContextNormal	= 1 << 1,
	siXGSContextCapture	= 1 << 2,
	siXGSContextHWRender	= 1 << 3
    } 	siXGSContextFlag;

typedef /* [helpstring] */ 
enum siXGSClassType
    {	siXGSPluginManager	= 0
    } 	siXGSClassType;

typedef /* [helpstring] */ 
enum siXGSFlag
    {	siInactive	= 0,
	siActive	= 1
    } 	siXGSFlag;

typedef /* [helpstring] */ 
enum siXGSPassFlag
    {	siInsertBefore	= 0,
	siInsertAfter	= 1,
	siInsertBeforeAll	= 2,
	siInsertAfterAll	= 3
    } 	siXGSPassFlag;

typedef /* [helpstring] */ 
enum siXGSStateType
    {	siXGSUnknown	= 0,
	siXGSInteger	= 1,
	siXGSFloat	= 2,
	siXGSHandle	= 3,
	siXGSVector4	= 4,
	siXGSMatrix4	= 5
    } 	siXGSStateType;

typedef 
enum siXGSRenderFlag
    {	siRenderDefault	= 1 << 1,
	siRenderUnsorted	= 1 << 2,
	siRenderSorted	= 1 << 3,
	siRenderSortedNear	= 1 << 4,
	siRenderSortedCenter	= 1 << 5,
	siRenderSortedFar	= 1 << 6,
	siRenderSortFront	= 1 << 7,
	siRenderSelected	= 1 << 8,
	siTexEnvReplace	= 1 << 9,
	siRenderNoRTSOverride	= 1 << 10
    } 	siXGSRenderFlag;

typedef /* [helpstring] */ 
enum siViewMode
    {	siAll	= 0,
	siBoundingBoxMode	= 12,
	siWireframe	= 13,
	siDepthCue	= 14,
	siHiddenLineRemoval	= 15,
	siConstant	= 16,
	siShaded	= 17,
	siTextured	= 18,
	siTexturedDecal	= 19,
	siCustom	= 20,
	siRealtimePortMaterial	= 21
    } 	siViewMode;

typedef /* [helpstring] */ 
enum siParticleAttributeType
    {	siPAVector4	= 0,
	siPAVector3	= 1,
	siPAFloat	= 2,
	siPAInt	= 3,
	siPAULong	= 4,
	siPAUShort	= 5,
	siPABool	= 6,
	siPAUndefined	= 7
    } 	siParticleAttributeType;

typedef /* [helpstring] */ 
enum siSourceStorageType
    {	siSourceStorageTypeInternal	= 0,
	siSourceStorageTypeExternalDotXSIBin	= 1,
	siSourceStorageTypeExternalDotXSIText	= 2,
	siSourceStorageTypeExternalBin	= 3
    } 	siSourceStorageType;

typedef /* [helpstring] */ 
enum siActionStatus
    {	siActionStatusOffloaded	= 0,
	siActionStatusPartiallyLoaded	= 1,
	siActionStatusLoaded	= 2
    } 	siActionStatus;

typedef /* [helpstring] */ 
enum siFilterType
    {	siFilterUndefined	= 0,
	siFilterObject	= 1,
	siFilter3DObject	= 2,
	siFilterProperty	= 3,
	siFilterSubComponentEdge	= 4,
	siFilterSubComponentPoint	= 5,
	siFilterSubComponentPolygon	= 6,
	siFilterSubComponentKnot	= 7
    } 	siFilterType;

typedef /* [helpstring] */ 
enum siCommandCapabilities
    {	siSupportsKeyAssignment	= 8,
	siCannotBeUsedInBatch	= 256,
	siNoLogging	= 8388608,
	siAllowNotifications	= 1073741824
    } 	siCommandCapabilities;

typedef /* [helpstring] */ 
enum siSeverity
    {	siFatal	= 1,
	siError	= 2,
	siWarning	= 4,
	siInfo	= 8,
	siVerbose	= 16,
	siComment	= 32
    } 	siSeverity;

typedef /* [helpstring] */ 
enum siMsgBoxFlags
    {	siMsgOkOnly	= 0,
	siMsgOkCancel	= 1,
	siMsgAbortRetryIgnore	= 2,
	siMsgYesNoCancel	= 3,
	siMsgYesNo	= 4,
	siMsgRetryCancel	= 5,
	siMsgCritical	= 16,
	siMsgQuestion	= 32,
	siMsgExclamation	= 48,
	siMsgInformation	= 64,
	siMsgDefaultButton1	= 0,
	siMsgDefaultButton2	= 256,
	siMsgDefaultButton3	= 512
    } 	siMsgBoxFlags;

typedef /* [helpstring] */ 
enum siMsgButtonPressed
    {	siMsgOk	= 1,
	siMsgCancel	= 2,
	siMsgAbort	= 3,
	siMsgRetry	= 4,
	siMsgIgnore	= 5,
	siMsgYes	= 6,
	siMsgNo	= 7
    } 	siMsgButtonPressed;

typedef /* [helpstring] */ 
enum siViewState
    {	siNormal	= 0,
	siClosed	= 1,
	siMinimized	= 2
    } 	siViewState;

typedef /* [helpstring] */ 
enum siToolbarControl
    {	siTBCtrlBlankSeparator	= 0,
	siTBCtrlGroupHeader	= 1,
	siTBCtrlLineBreak	= 2,
	siTBCtrlMenu	= 3,
	siTBCtrlPreset	= 4,
	siTBCtrlLineSeparator	= 5
    } 	siToolbarControl;

typedef /* [helpstring] */ 
enum siTimeReferenceType
    {	siOriginalClip	= 0,
	siExtrapolatedClip	= 1
    } 	siTimeReferenceType;

typedef /* [helpstring] */ 
enum siImageRatio
    {	siImageRatio1x1	= 0,
	siImageRatio2x1	= 1,
	siImageRatio4x1	= 2,
	siImageRatio8x1	= 3,
	siImageRatio16x1	= 4,
	siImageRatioThumbnail	= 5
    } 	siImageRatio;

typedef /* [helpstring] */ 
enum siTimeControlExtrapolationType
    {	siTimeControlExtrapolationNone	= 0,
	siTimeControlExtrapolationHold	= 1,
	siTimeControlExtrapolationCycle	= 2,
	siTimeControlExtrapolationBounce	= 3
    } 	siTimeControlExtrapolationType;

typedef /* [helpstring] */ 
enum siMenuItemStyle
    {	siMenuItemUndefined	= 0,
	siMenuItem	= siMenuItemUndefined + 1,
	siMenuItemSubmenu	= siMenuItem + 1,
	siMenuItemSeparator	= siMenuItemSubmenu + 1
    } 	siMenuItemStyle;

typedef /* [helpstring] */ 
enum siMenuAnchorPoints
    {	siMenuUndefinedID	= 0,
	siMenuTbGetPrimitiveCurveID	= 1,
	siMenuTbGetPrimitivePolygonMeshBasicID	= siMenuTbGetPrimitiveCurveID + 1,
	siMenuTbGetPrimitivePolygonMeshHedronID	= siMenuTbGetPrimitivePolygonMeshBasicID + 1,
	siMenuTbGetPrimitivePolygonMeshID	= siMenuTbGetPrimitivePolygonMeshHedronID + 1,
	siMenuTbGetPrimitiveSurfaceID	= siMenuTbGetPrimitivePolygonMeshID + 1,
	siMenuTbGetPrimitiveImplicitCurveID	= siMenuTbGetPrimitiveSurfaceID + 1,
	siMenuTbGetPrimitiveImplicitID	= siMenuTbGetPrimitiveImplicitCurveID + 1,
	siMenuTbGetPrimitiveControlObjectID	= siMenuTbGetPrimitiveImplicitID + 1,
	siMenuTbGetPrimitiveModelID	= siMenuTbGetPrimitiveControlObjectID + 1,
	siMenuTbGetPrimitiveID	= siMenuTbGetPrimitiveModelID + 1,
	siMenuTbGetCameraID	= siMenuTbGetPrimitiveID + 1,
	siMenuTbGetLightID	= siMenuTbGetCameraID + 1,
	siMenuTbGetMaterialID	= siMenuTbGetLightID + 1,
	siMenuTbGetMaterialBasicID	= siMenuTbGetMaterialID + 1,
	siMenuTbGetMaterialSimpleID	= siMenuTbGetMaterialBasicID + 1,
	siMenuTbGetMaterialRealTimeID	= siMenuTbGetMaterialSimpleID + 1,
	siMenuTbGetPropertyID	= siMenuTbGetMaterialRealTimeID + 1,
	siMenuTbGetPropertyTextureProjectionID	= siMenuTbGetPropertyID + 1,
	siMenuTbGetPropertyTextureMapID	= siMenuTbGetPropertyTextureProjectionID + 1,
	siMenuTbGetPropertyTextureID	= siMenuTbGetPropertyTextureMapID + 1,
	siMenuTbGetPropertyUserDataMapID	= siMenuTbGetPropertyTextureID + 1,
	siMenuTbGetPropertyMapPaintID	= siMenuTbGetPropertyUserDataMapID + 1,
	siMenuTbGetPropertyPSetID	= siMenuTbGetPropertyMapPaintID + 1,
	siMenuTbDeformSpatialID	= siMenuTbGetPropertyPSetID + 1,
	siMenuTbDeformID	= siMenuTbDeformSpatialID + 1,
	siMenuTbCreateSkeletonID	= siMenuTbDeformID + 1,
	siMenuTbCreateSkeletonDrawID	= siMenuTbCreateSkeletonID + 1,
	siMenuTbCreateSkeletonInspectID	= siMenuTbCreateSkeletonDrawID + 1,
	siMenuTbModelCreateCurveID	= 100,
	siMenuTbModelCreateSurfaceMeshID	= siMenuTbModelCreateCurveID + 1,
	siMenuTbModelCreatePolygonMeshID	= siMenuTbModelCreateSurfaceMeshID + 1,
	siMenuTbModelCreateModelID	= siMenuTbModelCreatePolygonMeshID + 1,
	siMenuTbModelCreateTextID	= siMenuTbModelCreateModelID + 1,
	siMenuTbModelModifyComponentID	= siMenuTbModelCreateTextID + 1,
	siMenuTbModelModifyCurveID	= siMenuTbModelModifyComponentID + 1,
	siMenuTbModelModifySurfaceMeshID	= siMenuTbModelModifyCurveID + 1,
	siMenuTbModelModifyPolygonMeshID	= siMenuTbModelModifySurfaceMeshID + 1,
	siMenuTbModelModifyModelID	= siMenuTbModelModifyPolygonMeshID + 1,
	siMenuTbAnimateCreateParameterID	= 200,
	siMenuTbAnimateCreateParameterCustomPSetID	= siMenuTbAnimateCreateParameterID + 1,
	siMenuTbAnimateCreateParameterCustomParamID	= siMenuTbAnimateCreateParameterCustomPSetID + 1,
	siMenuTbAnimateCreateParameterExpressionID	= siMenuTbAnimateCreateParameterCustomParamID + 1,
	siMenuTbAnimateCreateParameterProxyID	= siMenuTbAnimateCreateParameterExpressionID + 1,
	siMenuTbAnimateCreateCurveID	= siMenuTbAnimateCreateParameterProxyID + 1,
	siMenuTbAnimateCreatePathID	= siMenuTbAnimateCreateCurveID + 1,
	siMenuTbAnimateCreateCharacterID	= siMenuTbAnimateCreatePathID + 1,
	siMenuTbAnimateDeformShapeID	= siMenuTbAnimateCreateCharacterID + 1,
	siMenuTbAnimateDeformShapeKeyID	= siMenuTbAnimateDeformShapeID + 1,
	siMenuTbAnimateDeformEnvelopeID	= siMenuTbAnimateDeformShapeKeyID + 1,
	siMenuTbAnimateActionsStoreID	= siMenuTbAnimateDeformEnvelopeID + 1,
	siMenuTbAnimateActionsApplyID	= siMenuTbAnimateActionsStoreID + 1,
	siMenuTbAnimateActionsTemplatesID	= siMenuTbAnimateActionsApplyID + 1,
	siMenuTbAnimateToolsPlotID	= siMenuTbAnimateActionsTemplatesID + 1,
	siMenuTbAnimateToolsDevicesID	= siMenuTbAnimateToolsPlotID + 1,
	siMenuTbAnimateToolsImportID	= siMenuTbAnimateToolsDevicesID + 1,
	siMenuTbAnimateToolsExportID	= siMenuTbAnimateToolsImportID + 1,
	siMenuTbRenderRegionID	= 300,
	siMenuTbRenderPreviewID	= siMenuTbRenderRegionID + 1,
	siMenuTbRenderRenderID	= siMenuTbRenderPreviewID + 1,
	siMenuTbRenderExportMIID	= siMenuTbRenderRenderID + 1,
	siMenuTbRenderPassEditID	= siMenuTbRenderExportMIID + 1,
	siMenuTbRenderPassEditNewPassID	= siMenuTbRenderPassEditID + 1,
	siMenuTbRenderPassPartitionID	= siMenuTbRenderPassEditNewPassID + 1,
	siMenuTbGetForceID	= 400,
	siMenuTbCreateParticlesID	= siMenuTbGetForceID + 1,
	siMenuTbCreateParticlesFluidID	= siMenuTbCreateParticlesID + 1,
	siMenuTbCreateParticlesExplosionID	= siMenuTbCreateParticlesFluidID + 1,
	siMenuTbCreateParticlesNewPTypeID	= siMenuTbCreateParticlesExplosionID + 1,
	siMenuTbCreateRigidBodyID	= siMenuTbCreateParticlesNewPTypeID + 1,
	siMenuTbCreateRigidBodyConstraintID	= siMenuTbCreateRigidBodyID + 1,
	siMenuTbCreateClothID	= siMenuTbCreateRigidBodyConstraintID + 1,
	siMenuTbModifyParticlesID	= siMenuTbCreateClothID + 1,
	siMenuTbModifyRigidBodyID	= siMenuTbModifyParticlesID + 1,
	siMenuTbModifyEnvironmentID	= siMenuTbModifyRigidBodyID + 1,
	siMenuMainFileSceneID	= 1000,
	siMenuMainFileProjectID	= siMenuMainFileSceneID + 1,
	siMenuMainFileExportID	= siMenuMainFileProjectID + 1,
	siMenuMainFileImportID	= siMenuMainFileExportID + 1,
	siMenuMainWindowID	= siMenuMainFileImportID + 1,
	siMenuMainHelpID	= siMenuMainWindowID + 1,
	siMenuMainApplicationID	= siMenuMainHelpID + 1,
	siMenuMainApplicationPropertySetsID	= siMenuMainApplicationID + 1,
	siMenuMainApplicationLayoutsID	= siMenuMainApplicationPropertySetsID + 1,
	siMenuMainApplicationViewsID	= siMenuMainApplicationLayoutsID + 1,
	siMenuMainApplicationToolbarsID	= siMenuMainApplicationViewsID + 1,
	siMenuMainApplicationCommandsID	= siMenuMainApplicationToolbarsID + 1,
	siMenuMainApplicationKeyMappingsID	= siMenuMainApplicationCommandsID + 1,
	siMenuMainApplicationPreferencesID	= siMenuMainApplicationKeyMappingsID + 1,
	siMenuMainTopLevelID	= siMenuMainApplicationPreferencesID + 1,
	siMenuMCPSelectTopID	= 2000,
	siMenuMCPSelectBottomID	= siMenuMCPSelectTopID + 1,
	siMenuMCPSelectExploreBtnID	= siMenuMCPSelectBottomID + 1,
	siMenuMCPSelectSelBtnContextID	= siMenuMCPSelectExploreBtnID + 1,
	siMenuMCPTransformTopID	= siMenuMCPSelectSelBtnContextID + 1,
	siMenuMCPTransformBottomID	= siMenuMCPTransformTopID + 1,
	siMenuMCPSnapID	= siMenuMCPTransformBottomID + 1,
	siMenuMCPConstrainID	= siMenuMCPSnapID + 1,
	siMenuMCPEditID	= siMenuMCPConstrainID + 1,
	siMenuMCPAnimationID	= siMenuMCPEditID + 1,
	siMenuMCPPlaybackID	= siMenuMCPAnimationID + 1,
	siMenuVMViewTypeID	= 3000,
	siMenuVMCameraID	= siMenuVMViewTypeID + 1,
	siMenuVMVisibilityID	= siMenuVMCameraID + 1,
	siMenuVMDisplayID	= siMenuVMVisibilityID + 1,
	siMenu3DViewClusterContextID	= 3100,
	siMenu3DViewComponentContextID	= siMenu3DViewClusterContextID + 1,
	siMenu3DViewComponentEditContextID	= siMenu3DViewComponentContextID + 1,
	siMenu3DViewGeneralContextID	= siMenu3DViewComponentEditContextID + 1,
	siMenu3DViewObjectContextID	= siMenu3DViewGeneralContextID + 1,
	siMenu3DViewObjectEditContextID	= siMenu3DViewObjectContextID + 1,
	siMenu3DViewObjectGroupContextID	= siMenu3DViewObjectEditContextID + 1,
	siMenu3DViewObjectMeshContextID	= siMenu3DViewObjectGroupContextID + 1,
	siMenu3DViewObjectSelectContextID	= siMenu3DViewObjectMeshContextID + 1,
	siMenuSEGeneralContextID	= 3200,
	siMenuSELayersContextID	= siMenuSEGeneralContextID + 1,
	siMenuSEPassesContextID	= siMenuSELayersContextID + 1,
	siMenuSEPartitionsContextID	= siMenuSEPassesContextID + 1,
	siMenuSEObjectContextID	= siMenuSEPartitionsContextID + 1,
	siMenuSEGroupContextID	= siMenuSEObjectContextID + 1,
	siMenuSEAnimContextID	= siMenuSEGroupContextID + 1,
	siMenuSEClusterContextID	= siMenuSEAnimContextID + 1,
	siMenuSEOperatorContextID	= siMenuSEClusterContextID + 1,
	siMenuSEConstraintContextID	= siMenuSEOperatorContextID + 1,
	siMenuSEPreferenceContextID	= siMenuSEConstraintContextID + 1,
	siMenuPluginMgrPluginFileID	= 3300,
	siMenuPluginMgrTreeFileID	= siMenuPluginMgrPluginFileID + 1,
	siMenuPluginMgrContextPluginID	= siMenuPluginMgrTreeFileID + 1,
	siMenuPluginMgrContextPluginLocationID	= siMenuPluginMgrContextPluginID + 1,
	siMenuPluginMgrContextUserRootID	= siMenuPluginMgrContextPluginLocationID + 1,
	siMenuPluginMgrContextFactoryRootID	= siMenuPluginMgrContextUserRootID + 1,
	siMenuPluginMgrContextWorkgroupRootID	= siMenuPluginMgrContextFactoryRootID + 1,
	siMenuPluginMgrContextAddonID	= siMenuPluginMgrContextWorkgroupRootID + 1,
	siMenuPluginMgrContextCustomLocationID	= siMenuPluginMgrContextAddonID + 1,
	siMenuPluginMgrSPDLFileID	= siMenuPluginMgrContextCustomLocationID + 1,
	siMenuPluginMgrContextSPDLID	= siMenuPluginMgrSPDLFileID + 1,
	siMenuPluginMgrContextSPDLLocationID	= siMenuPluginMgrContextSPDLID + 1,
	siMenuPluginMgrContextPluginItemID	= siMenuPluginMgrContextSPDLLocationID + 1,
	siMenuPluginMgrContextViewLocationID	= siMenuPluginMgrContextPluginItemID + 1,
	siMenuPluginMgrContextViewID	= siMenuPluginMgrContextViewLocationID + 1,
	siMenuPluginMgrContextToolbarLocationID	= siMenuPluginMgrContextViewID + 1,
	siMenuPluginMgrContextToolbarID	= siMenuPluginMgrContextToolbarLocationID + 1,
	siMenuWorkgroupMgrFileID	= 3350,
	siMenuWorkgroupMgrContextID	= siMenuWorkgroupMgrFileID + 1,
	siMenuScriptEditContextID	= 3400,
	siMenuScriptHistoryContextID	= 3401,
	siMenuPropertyPageContextID	= 3600,
	siMenuShapeManagerEditID	= 3700,
	siMenuShapeManagerCreateContextSingleSelectionID	= siMenuShapeManagerEditID + 1,
	siMenuShapeManagerCreateContextMultiSelectionID	= siMenuShapeManagerCreateContextSingleSelectionID + 1,
	siMenuShapeManagerAnimateContextSingleSelectionID	= siMenuShapeManagerCreateContextMultiSelectionID + 1,
	siMenuShapeManagerAnimateContextMultiSelectionID	= siMenuShapeManagerAnimateContextSingleSelectionID + 1,
	siMenuShapeManagerAnimateID	= siMenuShapeManagerAnimateContextMultiSelectionID + 1
    } 	siMenuAnchorPoints;

typedef /* [helpstring] */ 
enum siPortFlags
    {	siDefaultPort	= 0,
	siOptionalInputPort	= 16,
	siCreatedOutputPort	= 256,
	siBranchGroupPort	= 1024
    } 	siPortFlags;

typedef /* [helpstring] */ 
enum siCustomDisplayFlags
    {	siSupportCommandMap	= 1 << 1,
	siWindowNotifications	= 1 << 2
    } 	siCustomDisplayFlags;

typedef /* [helpstring] */ 
enum siWindowChangeState
    {	siWindowSize	= 1,
	siWindowPaint	= 2,
	siWindowSetFocus	= 3,
	siWindowLostFocus	= 4
    } 	siWindowChangeState;

typedef /* [helpstring] */ 
enum siFileType
    {	siFileTypeDefault	= 0,
	siFileTypeScene	= 1,
	siFileTypeModel	= 2,
	siFileTypeImage	= 3,
	siFileTypeAudio	= 4,
	siFileTypeSI3D	= 5,
	siFileTypeScript	= 6,
	siFileTypeFcurve	= 7,
	siFileTypeExpression	= 8,
	siFileTypeRenderPicture	= 9,
	siFileTypeAction	= 10,
	siFileTypeShader	= 11,
	siFileTypeBackup	= 12,
	siFileTypeMI	= 13,
	siFileTypeIgnore	= 14,
	siFileTypeSimulation	= 15,
	siFileTypeReferencedModel	= 16,
	siFileTypeQuery	= 17,
	siFileTypeSynoptic	= 18,
	siFileTypeDotXSI	= 19,
	siFileTypeRenderMap	= 20,
	siFileTypeAddon	= 21,
	siFileTypeMatLib	= 22,
	siFileTypeThumbnail	= 23,
	siFileTypeMixer	= 24,
	siFileTypeIges	= 25,
	siFileTypeLast	= 26
    } 	siFileType;

typedef /* [helpstring] */ 
enum siClusterType
    {	siClusterVertexType	= 0,
	siClusterNodeType	= 1,
	siClusterEdgeType	= 2,
	siClusterPolygonType	= 3
    } 	siClusterType;

typedef /* [helpstring] */ 
enum siClusterPropertyType
    {	siClusterPropertyEnvelopeWeightType	= 0,
	siClusterPropertyShapeKeyType	= 1,
	siClusterPropertyWeightMapType	= 2,
	siClusterPropertyUVType	= 3,
	siClusterPropertyVertexColorType	= 4,
	siClusterPropertyUserNormalType	= 5
    } 	siClusterPropertyType;

typedef /* [helpstring] */ 
enum siCurveIsopointManipMode
    {	siCurveIsopointPositionManipMode	= 0,
	siCurveIsopointPositionAndTangentsManipMode	= 1,
	siCurveIsopointFwdTangentManipMode	= 2,
	siCurveIsopointBwdTangentManipMode	= 3,
	siCurveIsopointFwdThenBwdTangentManipMode	= 4,
	siCurveIsopointBwdThenFwdTangentManipMode	= 5,
	siCurveIsopointCVManipMode	= 6
    } 	siCurveIsopointManipMode;

typedef /* [helpstring] */ 
enum siCurveKnotTangentAlignment
    {	siCurveKnotAlignFwdTangentWithBwd	= 0,
	siCurveKnotAlignBwdTangentWithFwd	= 1,
	siCurveKnotAlignFwdAndBwdTangentsTogether	= 2,
	siCurveKnotLinearizeNextSegment	= 3,
	siCurveKnotLinearizePrevSegment	= 4,
	siCurveKnotLinearizeBothSegments	= 5,
	siCurveKnotLinearizeInterSegments	= 6,
	siCurveKnotMakeCorner	= 7
    } 	siCurveKnotTangentAlignment;

typedef /* [helpstring] */ 
enum siRBDEngine
    {	siPhysXEngine	= 0,
	siOpenDynamicsEngine	= 1
    } 	siRBDEngine;

typedef /* [helpstring] */ 
enum siKeyableAttributeType
    {	siKeyableAttributeClear	= 0,
	siKeyableAttributeKeyable	= 1,
	siKeyableAttributeNonKeyableVisible	= 2
    } 	siKeyableAttributeType;

typedef /* [helpstring] */ 
enum siClosestLocationMethod
    {	siClosestVertexOrKnot	= 0,
	siClosestSurface	= 1,
	siClosestSmoothedSurface	= 2
    } 	siClosestLocationMethod;

typedef /* [helpstring] */ 
enum siNormalComputationMethod
    {	siInterpolatedVertexGeometricNormals	= 0,
	siInterpolatedVertexAngleBasedGeometricNormals	= 1,
	siInterpolatedShadingNormals	= 2,
	siInterpolatedAngleBasedNodeShadingNormals	= 3
    } 	siNormalComputationMethod;

typedef /* [helpstring] */ 
enum siImageChannelType
    {	siImageRGBAChannelType	= 0,
	siImageRGBChannelType	= 1,
	siImageAlphaChannelType	= 2,
	siImageIntensityChannelType	= 3,
	siImageRGBEChannelType	= 4,
	siImageDepthChannelType	= 5,
	siImageNormalChannelType	= 6,
	siImageMotionChannelType	= 7,
	siImageTagChannelType	= 8
    } 	siImageChannelType;

typedef /* [helpstring] */ 
enum siImageChannelFilter
    {	siImageRGBAChannelFilter	= 1,
	siImageRGBChannelFilter	= 2,
	siImageColorChannelFilter	= 3,
	siImageAlphaChannelFilter	= 4,
	siImageIntensityChannelFilter	= 8,
	siImageRGBEChannelFilter	= 16,
	siImageDepthChannelFilter	= 32,
	siImageNormalChannelFilter	= 64,
	siImageMotionChannelFilter	= 128,
	siImageTagChannelFilter	= 256,
	siImageChannelFilterAll	= 511
    } 	siImageChannelFilter;

typedef /* [helpstring] */ 
enum siImageBitDepth
    {	siImageBitDepthInteger8	= 3,
	siImageBitDepthInteger16	= 4,
	siImageBitDepthInteger32	= 5,
	siImageBitDepthFloat16	= 20,
	siImageBitDepthFloat32	= 21
    } 	siImageBitDepth;

typedef /* [helpstring] */ 
enum siVolumeCenterMethod
    {	siVolumeCenterMethodCOG	= 0,
	siVolumeCenterMethodBBoxCenter	= 1,
	siVolumeCenterMethodObjectCenter	= 2
    } 	siVolumeCenterMethod;

typedef /* [helpstring] */ 
enum siBoundingCapsuleMethod
    {	siBoundingCapsuleMethodXAxis	= 0,
	siBoundingCapsuleMethodYAxis	= 1,
	siBoundingCapsuleMethodZAxis	= 2,
	siBoundingCapsuleMethodBestAxis	= 3
    } 	siBoundingCapsuleMethod;

typedef /* [helpstring] */ 
enum siSourcePathType
    {	siSourcePathImageSource	= 0,
	siSourcePathWritableImageSource	= 1,
	siSourcePathModelSource	= 3
    } 	siSourcePathType;

//XSIEnumEnd














































































































































































































































#pragma once
#define SIOM_FACILITY (FACILITY_DISPATCH|FACILITY_WINDOWS)
#define SIOM_MAKE_HRESULT(s,c) MAKE_HRESULT((s),SIOM_FACILITY,(c))
#define SIOM_MAKE_S_HRESULT(c) SIOM_MAKE_HRESULT(SEVERITY_SUCCESS,(c))
#define SIOM_MAKE_E_HRESULT(c) SIOM_MAKE_HRESULT(SEVERITY_ERROR,(c))
#define SIOM_E_NOT_FOUND SIOM_MAKE_E_HRESULT(ERROR_NOT_FOUND)
#define SIOM_S_CANCEL SIOM_MAKE_S_HRESULT(ERROR_CANCELLED)
#define SIOM_E_SCRIPT_SYNTAX_ERROR SIOM_MAKE_E_HRESULT(666)

EXTERN_C const IID LIBID_SI3DOBJECTMODELLIB;


#ifndef __StringModule_MODULE_DEFINED__
#define __StringModule_MODULE_DEFINED__


/* module StringModule */
/* [dllname] */ 

/* [helpstring] */ const LPWSTR siBoundaryFilter	=	L"boundary";

/* [helpstring] */ const LPWSTR siCameraFilter	=	L"camera";

/* [helpstring] */ const LPWSTR siChainElementFilter	=	L"chainelement";

/* [helpstring] */ const LPWSTR siClusterFilter	=	L"cluster";

/* [helpstring] */ const LPWSTR siConstraintFilter	=	L"constraint";

/* [helpstring] */ const LPWSTR siControlFilter	=	L"controlobject";

/* [helpstring] */ const LPWSTR siCurveFilter	=	L"curve";

/* [helpstring] */ const LPWSTR siEdgeFilter	=	L"edge";

/* [helpstring] */ const LPWSTR siEffectorFilter	=	L"effector";

/* [helpstring] */ const LPWSTR siGenericObjectFilter	=	L"object";

/* [helpstring] */ const LPWSTR siGeometryFilter	=	L"geometry";

/* [helpstring] */ const LPWSTR siGroupFilter	=	L"group";

/* [helpstring] */ const LPWSTR siImplicitFilter	=	L"implicit";

/* [helpstring] */ const LPWSTR siIsopointFilter	=	L"isopoint";

/* [helpstring] */ const LPWSTR siKnotFilter	=	L"knot";

/* [helpstring] */ const LPWSTR siLatticeFilter	=	L"lattice";

/* [helpstring] */ const LPWSTR siLayerFilter	=	L"layer";

/* [helpstring] */ const LPWSTR siLightFilter	=	L"light";

/* [helpstring] */ const LPWSTR siLightPartitionFilter	=	L"lightpartition";

/* [helpstring] */ const LPWSTR siModelFilter	=	L"model";

/* [helpstring] */ const LPWSTR siNullFilter	=	L"null";

/* [helpstring] */ const LPWSTR siObjectFilter	=	L"sceneobject";

/* [helpstring] */ const LPWSTR siObjectPartitionFilter	=	L"objectpartition";

/* [helpstring] */ const LPWSTR siOperatorFilter	=	L"operator";

/* [helpstring] */ const LPWSTR siPointFilter	=	L"point";

/* [helpstring] */ const LPWSTR siPolygonFilter	=	L"polygon";

/* [helpstring] */ const LPWSTR siPolyMeshFilter	=	L"polygonmesh";

/* [helpstring] */ const LPWSTR siPrimitiveFilter	=	L"primitive";

/* [helpstring] */ const LPWSTR siPropertyFilter	=	L"property";

/* [helpstring] */ const LPWSTR siSceneFilter	=	L"scene";

/* [helpstring] */ const LPWSTR siShaderFilter	=	L"shader";

/* [helpstring] */ const LPWSTR siSkeletonJointFilter	=	L"joint";

/* [helpstring] */ const LPWSTR siSubComponentFilter	=	L"subcomponent";

/* [helpstring] */ const LPWSTR siSubSurfaceFilter	=	L"SubSurface";

/* [helpstring] */ const LPWSTR siSurfaceCurveFilter	=	L"SurfaceCurve";

/* [helpstring] */ const LPWSTR siSurfaceMeshFilter	=	L"surfacemesh";

/* [helpstring] */ const LPWSTR siTextureControlFilter	=	L"texturecontrol";

/* [helpstring] */ const LPWSTR siTrimCurveFilter	=	L"trimcurve";

/* [helpstring] */ const LPWSTR siUIsolineFilter	=	L"uisoline";

/* [helpstring] */ const LPWSTR siVIsolineFilter	=	L"visoline";

/* [helpstring] */ const LPWSTR siUKnotCurveFilter	=	L"uknotcurve";

/* [helpstring] */ const LPWSTR siVKnotCurveFilter	=	L"vknotcurve";

/* [helpstring] */ const LPWSTR siWaveFilter	=	L"wave";

/* [helpstring] */ const LPWSTR siConditionalObjectFilter	=	L"object_only_if_current_is_subcomponent_one";

/* [helpstring] */ const LPWSTR siAutoInspect	=	L"AutoInspectEnabled";

/* [helpstring] */ const LPWSTR siCompensationFlag	=	L"SI3D_CONSTRAINT_COMPENSATION_MODE";

/* [helpstring] */ const LPWSTR siCustomCommandLibCache	=	L"CustomCommandLibCache";

/* [helpstring] */ const LPWSTR siCustomOperatorLibCache	=	L"CustomOperatorLibCache";

/* [helpstring] */ const LPWSTR siEventLibCache	=	L"EventLibCache";

/* [helpstring] */ const LPWSTR siRTShaderLibCache	=	L"RealTimeShaderLibCache";

/* [helpstring] */ const LPWSTR siMenuLibCache	=	L"MenuLibCache";

/* [helpstring] */ const LPWSTR siFilterLibCache	=	L"FilterLibCache";

/* [helpstring] */ const LPWSTR siPropertyLibCache	=	L"PropertyLibCache";

/* [helpstring] */ const LPWSTR siDisplayCallbackLibCache	=	L"DisplayCallbackLibCache";

/* [helpstring] */ const LPWSTR siDisplayPassLibCache	=	L"DisplayPassLibCache";

/* [helpstring] */ const LPWSTR siDisplayLibCache	=	L"DisplayLibCache";

/* [helpstring] */ const LPWSTR siScrCommandLogEnabled	=	L"SCR_CMDLOG_ENABLED";

/* [helpstring] */ const LPWSTR siScrCommandLogFileName	=	L"SCR_CMDLOG_FILENAME";

/* [helpstring] */ const LPWSTR siScrCommandLogMaxSize	=	L"SCR_CMDLOG_MAXSIZE";

/* [helpstring] */ const LPWSTR siScrCommandLogToFile	=	L"SCR_CMDLOG_TOFILE";

/* [helpstring] */ const LPWSTR siScrCommandLogUnlimitedSize	=	L"SCR_CMDLOG_UNLIMITEDSIZE";

/* [helpstring] */ const LPWSTR siScrLanguage	=	L"ScriptLanguage";

/* [helpstring] */ const LPWSTR siScrMessageLogEnabled	=	L"SCR_MSGLOG_ENABLED";

/* [helpstring] */ const LPWSTR siScrRealTimeMessagingEnabled	=	L"SCR_RTMSG_ENABLED";

/* [helpstring] */ const LPWSTR siTimeDisplayFormatDisplayAsFrames	=	L"SI3D_TIMEDISPLAYFORMAT_DISPLAYASFRAMES";

/* [helpstring] */ const LPWSTR siTimeDisplayFormatDisplayUserFormat	=	L"SI3D_TIMEDISPLAYFORMAT_DISPLAYUSERFORMAT";

/* [helpstring] */ const LPWSTR siTimeDisplayFormatUserFormat	=	L"SI3D_TIMEDISPLAYFORMAT_USERFORMAT";

/* [helpstring] */ const LPWSTR siTimeFormatDefaultFrameFormat	=	L"SI3D_TIMEFORMAT_DEFAULTFRAMEFORMAT";

/* [helpstring] */ const LPWSTR siTimeFormatDefaultFrameRate	=	L"SI3D_TIMEFORMAT_DEFAULTFRAMERATE";

/* [helpstring] */ const LPWSTR siTransformAxisMode	=	L"3D_TRANSFO_EDITED_AXIS_CHANGED";

/* [helpstring] */ const LPWSTR siTransformRefMode	=	L"3D_TRANSFO_REFERENTIAL_CHANGED";

/* [helpstring] */ const LPWSTR siUILayoutDefault	=	L"UI_LAYOUT_DEFAULT";

/* [helpstring] */ const LPWSTR siCurrentKeyword	=	L"<current>";

/* [helpstring] */ const LPWSTR siAnimationKeyword	=	L"Animation";

/* [helpstring] */ const LPWSTR siClusterKeyword	=	L"Cluster";

/* [helpstring] */ const LPWSTR siConstraintKeyword	=	L"Constraint";

/* [helpstring] */ const LPWSTR siControlObjectKeyword	=	L"ControlObject";

/* [helpstring] */ const LPWSTR siConverterKeyword	=	L"Converter";

/* [helpstring] */ const LPWSTR siCurveKeyword	=	L"Curve";

/* [helpstring] */ const LPWSTR siCustomPSetKeyword	=	L"CustomPSet";

/* [helpstring] */ const LPWSTR siDeformKeyword	=	L"Deform";

/* [helpstring] */ const LPWSTR siDynamicsKeyword	=	L"Dynamics";

/* [helpstring] */ const LPWSTR siExpressionsKeyword	=	L"expressions";

/* [helpstring] */ const LPWSTR siGeneralKeyword	=	L"General";

/* [helpstring] */ const LPWSTR siGeneratorKeyword	=	L"Generator";

/* [helpstring] */ const LPWSTR siGeometryKeyword	=	L"Geometry";

/* [helpstring] */ const LPWSTR siHairKeyword	=	L"Hair";

/* [helpstring] */ const LPWSTR siIKKeyword	=	L"IK";

/* [helpstring] */ const LPWSTR siKinematicsKeyword	=	L"Kinematics";

/* [helpstring] */ const LPWSTR siMeshKeyword	=	L"Mesh";

/* [helpstring] */ const LPWSTR siMixerKeyword	=	L"Mixer";

/* [helpstring] */ const LPWSTR siModelingKeyword	=	L"Modeling";

/* [helpstring] */ const LPWSTR siOperatorsKeyword	=	L"Operators";

/* [helpstring] */ const LPWSTR siParticleKeyword	=	L"Particle";

/* [helpstring] */ const LPWSTR siPrimitiveKeyword	=	L"Primitive";

/* [helpstring] */ const LPWSTR siProjectionKeyword	=	L"Projection";

/* [helpstring] */ const LPWSTR siRenderingKeyword	=	L"Rendering";

/* [helpstring] */ const LPWSTR siSimulationKeyword	=	L"Simulation";

/* [helpstring] */ const LPWSTR siSurfaceKeyword	=	L"Surface";

/* [helpstring] */ const LPWSTR siTopologyKeyword	=	L"Topology";

/* [helpstring] */ const LPWSTR siTopologyEditorKeyword	=	L"Topology_Editor";

/* [helpstring] */ const LPWSTR siViewingKeyword	=	L"Viewing";

/* [helpstring] */ const LPWSTR siBoundaryCluster	=	L"bndry";

/* [helpstring] */ const LPWSTR siEdgeCluster	=	L"edge";

/* [helpstring] */ const LPWSTR siFaceCluster	=	L"face";

/* [helpstring] */ const LPWSTR siIsoLineUCluster	=	L"isolineu";

/* [helpstring] */ const LPWSTR siIsoLineVCluster	=	L"isolinev";

/* [helpstring] */ const LPWSTR siIsoPointCluster	=	L"isopnt";

/* [helpstring] */ const LPWSTR siKnotCluster	=	L"knot";

/* [helpstring] */ const LPWSTR siKnotCurveUCluster	=	L"knotcrvu";

/* [helpstring] */ const LPWSTR siKnotCurveVCluster	=	L"knotcrvv";

/* [helpstring] */ const LPWSTR siPolygonCluster	=	L"poly";

/* [helpstring] */ const LPWSTR siPolygonNodeCluster	=	L"polyn";

/* [helpstring] */ const LPWSTR siSampledPointCluster	=	L"sample";

/* [helpstring] */ const LPWSTR siSubCurveCluster	=	L"subcrv";

/* [helpstring] */ const LPWSTR siSubSurfaceCluster	=	L"subsrf";

/* [helpstring] */ const LPWSTR siSurfaceCurveCluster	=	L"srfcrv";

/* [helpstring] */ const LPWSTR siTrimCurveCluster	=	L"trimcrv";

/* [helpstring] */ const LPWSTR siVertexCluster	=	L"pnt";

/* [helpstring] */ const LPWSTR si0DComponentFamily	=	L"0DComponent";

/* [helpstring] */ const LPWSTR si1DComponentFamily	=	L"1DComponent";

/* [helpstring] */ const LPWSTR si2DComponentFamily	=	L"2DComponent";

/* [helpstring] */ const LPWSTR si3DObjectFamily	=	L"3D Objects";

/* [helpstring] */ const LPWSTR siAssignmentOperatorFamily	=	L"AssignmentOperators";

/* [helpstring] */ const LPWSTR siCameraFamily	=	L"Camera";

/* [helpstring] */ const LPWSTR siChainElementFamily	=	L"Chain Elements";

/* [helpstring] */ const LPWSTR siClusterableComponentFamily	=	L"Clusterable Components";

/* [helpstring] */ const LPWSTR siClusterFamily	=	L"Clusters";

/* [helpstring] */ const LPWSTR siConstraintFamily	=	L"Constraints";

/* [helpstring] */ const LPWSTR siContourContrastShaderFamily	=	L"Contour Contrast Shaders";

/* [helpstring] */ const LPWSTR siContourShaderFamily	=	L"Contour Shaders";

/* [helpstring] */ const LPWSTR siContourStoreShaderFamily	=	L"Contour Store Shaders";

/* [helpstring] */ const LPWSTR siControlObjectFamily	=	L"Control Objects";

/* [helpstring] */ const LPWSTR siControlObjectNurbsTextureFamily	=	L"Control Objects Nurbs Texture";

/* [helpstring] */ const LPWSTR siControlObjectTextureFamily	=	L"Control Objects Texture";

/* [helpstring] */ const LPWSTR siControlObjectTextureProjectionFamily	=	L"Control Objects Texture Projection";

/* [helpstring] */ const LPWSTR siConverterOperatorFamily	=	L"Converters";

/* [helpstring] */ const LPWSTR siCurveFamily	=	L"Curves";

/* [helpstring] */ const LPWSTR siDeformOperatorFamily	=	L"DeformOperators";

/* [helpstring] */ const LPWSTR siDisplacementShaderFamily	=	L"Displacement Shaders";

/* [helpstring] */ const LPWSTR siEnvironmentShaderFamily	=	L"Environment Shaders";

/* [helpstring] */ const LPWSTR siFxOperatorFamily	=	L"FxOperator";

/* [helpstring] */ const LPWSTR siGeneratorOperatorFamily	=	L"GeneratorOperators";

/* [helpstring] */ const LPWSTR siGeometryFamily	=	L"Geometries";

/* [helpstring] */ const LPWSTR siGeometryShaderFamily	=	L"Geometry Shaders";

/* [helpstring] */ const LPWSTR siGroupFamily	=	L"Groups";

/* [helpstring] */ const LPWSTR siImageOperatorFamily	=	L"Image Operators";

/* [helpstring] */ const LPWSTR siImplicitGeometryFamily	=	L"Geometry";

/* [helpstring] */ const LPWSTR siKineInfoFamily	=	L"KineInfo";

/* [helpstring] */ const LPWSTR siLatticeFamily	=	L"Lattices";

/* [helpstring] */ const LPWSTR siLensShaderFamily	=	L"Lens Shaders";

/* [helpstring] */ const LPWSTR siLightPhotonShaderFamily	=	L"Light Photon Shaders";

/* [helpstring] */ const LPWSTR siLightPrimitiveFamily	=	L"Lights";

/* [helpstring] */ const LPWSTR siLightShaderFamily	=	L"Light Shaders";

/* [helpstring] */ const LPWSTR siMaterialFamily	=	L"Material";

/* [helpstring] */ const LPWSTR siMaterialShaderFamily	=	L"Material Shaders";

/* [helpstring] */ const LPWSTR siMeshFamily	=	L"Mesh Geometries";

/* [helpstring] */ const LPWSTR siNullPrimitiveFamily	=	L"Nulls";

/* [helpstring] */ const LPWSTR siNurbsCurveListFamily	=	L"Nurbs CurveList Geometries";

/* [helpstring] */ const LPWSTR siNurbsSurfaceMeshFamily	=	L"Nurbs Surface Mesh Geometries";

/* [helpstring] */ const LPWSTR siOperatorFamily	=	L"Operators";

/* [helpstring] */ const LPWSTR siOutputShaderFamily	=	L"Output Shaders";

/* [helpstring] */ const LPWSTR siParticleControlObjectFamily	=	L"Particle Control Object";

/* [helpstring] */ const LPWSTR siParticleFamily	=	L"Particle";

/* [helpstring] */ const LPWSTR siPassFamily	=	L"Pass";

/* [helpstring] */ const LPWSTR siPatchNetworkFamily	=	L"Patch Networks";

/* [helpstring] */ const LPWSTR siPhotonShaderFamily	=	L"Photon Shaders";

/* [helpstring] */ const LPWSTR siPlanarObjectFamily	=	L"Planar Objects";

/* [helpstring] */ const LPWSTR siPropertyFamily	=	L"Properties";

/* [helpstring] */ const LPWSTR siRealTimeShaderFamily	=	L"RealTime Shaders";

/* [helpstring] */ const LPWSTR siShaderFamily	=	L"Shaders";

/* [helpstring] */ const LPWSTR siShadowShaderFamily	=	L"Shadow Shaders";

/* [helpstring] */ const LPWSTR siSubComponentFamily	=	L"SubComponents";

/* [helpstring] */ const LPWSTR siSurfaceCurveFamily	=	L"Surface Curves";

/* [helpstring] */ const LPWSTR siSurfaceFamily	=	L"Surfaces";

/* [helpstring] */ const LPWSTR siTextureShaderFamily	=	L"Texture Shaders";

/* [helpstring] */ const LPWSTR siTopologyOperatorFamily	=	L"TopologyOperators";

/* [helpstring] */ const LPWSTR siVirtualComponentFamily	=	L"Virtual Components";

/* [helpstring] */ const LPWSTR siVirtualCurveFamily	=	L"Virtual Curves";

/* [helpstring] */ const LPWSTR siVolumeShaderFamily	=	L"Volume Shaders";

/* [helpstring] */ const LPWSTR siBirailOpType	=	L"birail";

/* [helpstring] */ const LPWSTR siBendOpType	=	L"bendop";

/* [helpstring] */ const LPWSTR siFoldOpType	=	L"foldop";

/* [helpstring] */ const LPWSTR siBirail2GenOpType	=	L"Birail2Generators";

/* [helpstring] */ const LPWSTR siGroupType	=	L"#Group";

/* [helpstring] */ const LPWSTR siPolyMeshType	=	L"polymsh";

/* [helpstring] */ const LPWSTR si2PntCnsType	=	L"2ptscns";

/* [helpstring] */ const LPWSTR si3DObjectType	=	L"#3dobject";

/* [helpstring] */ const LPWSTR si3PntCnsType	=	L"3ptscns";

/* [helpstring] */ const LPWSTR siActionClipType	=	L"actionclip";

/* [helpstring] */ const LPWSTR siActionType	=	L"Action";

/* [helpstring] */ const LPWSTR siAddEdgeOpType	=	L"addedgeop";

/* [helpstring] */ const LPWSTR siAddMeshPntOpType	=	L"addmeshpointsop";

/* [helpstring] */ const LPWSTR siAddNurbsCrvPntOpType	=	L"addnurbscrvpointsop";

/* [helpstring] */ const LPWSTR siAddNurbsSrfPntOpType	=	L"addnurbssrfpointsop";

/* [helpstring] */ const LPWSTR siAddPntMiddleCrvType	=	L"addpt_middlecrv";

/* [helpstring] */ const LPWSTR siAddPntMiddleSrfOpType	=	L"addpt_middlesrf";

/* [helpstring] */ const LPWSTR siAmbientLightingType	=	L"AmbientLighting";

/* [helpstring] */ const LPWSTR siArcPrimType	=	L"arc";

/* [helpstring] */ const LPWSTR siAttractorCtrlType	=	L"attractor";

/* [helpstring] */ const LPWSTR siAutoCageAssignOpType	=	L"autocageassign";

/* [helpstring] */ const LPWSTR siAutoEnvAssignOpType	=	L"autoenvassign";

/* [helpstring] */ const LPWSTR siBallJointCnsType	=	L"BallJointCns";

/* [helpstring] */ const LPWSTR siBasePathCnsType	=	L"basepathcns";

/* [helpstring] */ const LPWSTR siBevelOpType	=	L"bevelop";

/* [helpstring] */ const LPWSTR siBlasterOpType	=	L"blasterop";

/* [helpstring] */ const LPWSTR siBlendCrvOpType	=	L"blendcrv";

/* [helpstring] */ const LPWSTR siBlendSrfOpType	=	L"blendsrf";

/* [helpstring] */ const LPWSTR siBooleanGenOpType	=	L"booleangen";

/* [helpstring] */ const LPWSTR siBooleanSrfTopoOpType	=	L"booleansrftopoop";

/* [helpstring] */ const LPWSTR siBPlaneCnsType	=	L"bplanecns";

/* [helpstring] */ const LPWSTR siBridgeOpType	=	L"bridgeop";

/* [helpstring] */ const LPWSTR siBrushPropertiesType	=	L"BrushProperties";

/* [helpstring] */ const LPWSTR siBulgeOpType	=	L"bulgeop";

/* [helpstring] */ const LPWSTR siBVolCnsType	=	L"bvolcns";

/* [helpstring] */ const LPWSTR siCageDeformOpType	=	L"cagedeformop";

/* [helpstring] */ const LPWSTR siCamDispType	=	L"camdisp";

/* [helpstring] */ const LPWSTR siCameraLensFlareType	=	L"CameraLensFlare";

/* [helpstring] */ const LPWSTR siCameraPrimType	=	L"camera";

/* [helpstring] */ const LPWSTR siCameraRootPrimType	=	L"CameraRoot";

/* [helpstring] */ const LPWSTR siCameraTxtOpType	=	L"CameraTxt";

/* [helpstring] */ const LPWSTR siCamVisType	=	L"camvis";

/* [helpstring] */ const LPWSTR siCapOpType	=	L"capop";

/* [helpstring] */ const LPWSTR siCenterOpType	=	L"center";

/* [helpstring] */ const LPWSTR siChainBonePrimType	=	L"bone";

/* [helpstring] */ const LPWSTR siChainEffPrimType	=	L"eff";

/* [helpstring] */ const LPWSTR siChainRootPrimType	=	L"root";

/* [helpstring] */ const LPWSTR siCirclePrimType	=	L"circle";

/* [helpstring] */ const LPWSTR siCleanCrvOpType	=	L"cleancrv";

/* [helpstring] */ const LPWSTR siCleanSrfOpType	=	L"cleansrf";

/* [helpstring] */ const LPWSTR siClothOpType	=	L"ClothOp";

/* [helpstring] */ const LPWSTR siClothPropType	=	L"ClothProp";

/* [helpstring] */ const LPWSTR siCloudPrimType	=	L"cloud";

/* [helpstring] */ const LPWSTR siClsColorType	=	L"clscolor";

/* [helpstring] */ const LPWSTR siClsCtrOpType	=	L"clsctr";

/* [helpstring] */ const LPWSTR siClsKeyType	=	L"clskey";

/* [helpstring] */ const LPWSTR siClsKeyWgtMapOpType	=	L"ClusterKeyWeightMap";

/* [helpstring] */ const LPWSTR siClsPoseType	=	L"clspose";

/* [helpstring] */ const LPWSTR siClsShapeCombinerOpType	=	L"clustershapecombiner";

/* [helpstring] */ const LPWSTR siClsUVSpaceTxtType	=	L"uvspace";

/* [helpstring] */ const LPWSTR siCoBBoxSclOpType	=	L"CoBBoxSclOp";

/* [helpstring] */ const LPWSTR siCollapseOpType	=	L"collapseop";

/* [helpstring] */ const LPWSTR siConePrimType	=	L"cone";

/* [helpstring] */ const LPWSTR siCoPoseFCrvOpType	=	L"CoPoseFcurveOp";

/* [helpstring] */ const LPWSTR siCopyOpType	=	L"copyop";

/* [helpstring] */ const LPWSTR siCopyShapeOpType	=	L"copyshape";

/* [helpstring] */ const LPWSTR siCopyUVWOpType	=	L"Copyuvw";

/* [helpstring] */ const LPWSTR siCreatePolyOpType	=	L"createpolygonop";

/* [helpstring] */ const LPWSTR siCrvCreationOpType	=	L"CurveCreationOp";

/* [helpstring] */ const LPWSTR siCrvCtrlOpType	=	L"CrvControlOp";

/* [helpstring] */ const LPWSTR siCrvCutOpType	=	L"CrvCutOp";

/* [helpstring] */ const LPWSTR siCrvDeformOpType	=	L"crvdeform";

/* [helpstring] */ const LPWSTR siCrvListAggregatePrimType	=	L"crvlistaggregate";

/* [helpstring] */ const LPWSTR siCrvListPrimType	=	L"crvlist";

/* [helpstring] */ const LPWSTR siCrvListToMeshOpType	=	L"CurveListToMesh";

/* [helpstring] */ const LPWSTR siCrvNetOpType	=	L"curvenet";

/* [helpstring] */ const LPWSTR siCrvOpenCloseOpType	=	L"crvopenclose";

/* [helpstring] */ const LPWSTR siCrvReparamOpType	=	L"crvreparam";

/* [helpstring] */ const LPWSTR siCrvShiftOpType	=	L"crvshift";

/* [helpstring] */ const LPWSTR siCubePrimType	=	L"cube";

/* [helpstring] */ const LPWSTR siCustomParamSet	=	L"customparamset";

/* [helpstring] */ const LPWSTR siCycleUVWType	=	L"Cycleuvw";

/* [helpstring] */ const LPWSTR siCylinderPrimType	=	L"cylinder";

/* [helpstring] */ const LPWSTR siDeformBySpineOp2Type	=	L"deformbyspineop2";

/* [helpstring] */ const LPWSTR siDeformBySpineOpType	=	L"deformbyspineop";

/* [helpstring] */ const LPWSTR siDeformOpType	=	L"deformop";

/* [helpstring] */ const LPWSTR siDeleteCompOpType	=	L"deletecompop";

/* [helpstring] */ const LPWSTR siDelPntCrvOpType	=	L"delpt_crv";

/* [helpstring] */ const LPWSTR siDGlowType	=	L"dglow";

/* [helpstring] */ const LPWSTR siDirCnsType	=	L"dircns";

/* [helpstring] */ const LPWSTR siDiscPrimType	=	L"disc";

/* [helpstring] */ const LPWSTR siDisplayType	=	L"display";

/* [helpstring] */ const LPWSTR siDissolveCompOpType	=	L"dissolvecompop";

/* [helpstring] */ const LPWSTR siDistanceOpType	=	L"DistanceOp";

/* [helpstring] */ const LPWSTR siDistCnsType	=	L"distcns";

/* [helpstring] */ const LPWSTR siDodecahedronPrimType	=	L"dodecahedron";

/* [helpstring] */ const LPWSTR siDragCtrlPrimType	=	L"drag";

/* [helpstring] */ const LPWSTR siEddyCtrlPrimType	=	L"eddy";

/* [helpstring] */ const LPWSTR siEditPolyOpType	=	L"editpolygonop";

/* [helpstring] */ const LPWSTR siEmissionPropType	=	L"EmissionProp";

/* [helpstring] */ const LPWSTR siEnvelopOpType	=	L"envelopop";

/* [helpstring] */ const LPWSTR siEnvSelClsOpType	=	L"EnvSelClsOp";

/* [helpstring] */ const LPWSTR siEnvWgtType	=	L"envweights";

/* [helpstring] */ const LPWSTR siExplosionOpType	=	L"ExplosionOp";

/* [helpstring] */ const LPWSTR siExtendCrv2PntOpType	=	L"extendcrv2pt";

/* [helpstring] */ const LPWSTR siExtendToCrvOpType	=	L"extendtocrv";

/* [helpstring] */ const LPWSTR siExtractCrvOpType	=	L"extractcrv";

/* [helpstring] */ const LPWSTR siExtractCrvSegOpType	=	L"extractcrvseg";

/* [helpstring] */ const LPWSTR siExtractPolyOpType	=	L"extractpolygons";

/* [helpstring] */ const LPWSTR siExtractSubCrvOpType	=	L"extractsubcrv";

/* [helpstring] */ const LPWSTR siExtrude2ProfsOpType	=	L"extrude2profs";

/* [helpstring] */ const LPWSTR siExtrudeCompAxisOpType	=	L"extrudecompaxisop";

/* [helpstring] */ const LPWSTR siExtrudeComponentOpType	=	L"extrudecomponentop";

/* [helpstring] */ const LPWSTR siExtrusionOpType	=	L"extrusion";

/* [helpstring] */ const LPWSTR siFanType	=	L"fan";

/* [helpstring] */ const LPWSTR siFilletCrvOpType	=	L"filletcrv";

/* [helpstring] */ const LPWSTR siFilletSrfOpType	=	L"Fillet Surfaces";

/* [helpstring] */ const LPWSTR siFillHoleOpType	=	L"fillHoleOp";

/* [helpstring] */ const LPWSTR siFilterEdgeOpType	=	L"filteredgeop";

/* [helpstring] */ const LPWSTR siFilterPolyOpType	=	L"filterpolygonop";

/* [helpstring] */ const LPWSTR siFitCrvOpType	=	L"fitcrv";

/* [helpstring] */ const LPWSTR siFitSrfOpType	=	L"fitsrf";

/* [helpstring] */ const LPWSTR siFlipUVWOpType	=	L"Flipuvw";

/* [helpstring] */ const LPWSTR siFluidOpType	=	L"FluidOp";

/* [helpstring] */ const LPWSTR siFourSidedOpType	=	L"foursided";

/* [helpstring] */ const LPWSTR siFurOpType	=	L"furop";

/* [helpstring] */ const LPWSTR siFurPrimType	=	L"fur";

/* [helpstring] */ const LPWSTR siFurPropType	=	L"furProp";

/* [helpstring] */ const LPWSTR siFurSimOpType	=	L"furSimop";

/* [helpstring] */ const LPWSTR siGeneratorOpType	=	L"generatorop";

/* [helpstring] */ const LPWSTR siGeomApproxType	=	L"geomapprox";

/* [helpstring] */ const LPWSTR siGeoShaderPrimType	=	L"GeoShader";

/* [helpstring] */ const LPWSTR siGeoTxtOpType	=	L"GeoTxtOp";

/* [helpstring] */ const LPWSTR siGlobalType	=	L"global";

/* [helpstring] */ const LPWSTR siGravityCtrlType	=	L"gravity";

/* [helpstring] */ const LPWSTR siGridPrimType	=	L"grid";

/* [helpstring] */ const LPWSTR siGroup	=	L"#Group";

/* [helpstring] */ const LPWSTR siHealOpType	=	L"heal";

/* [helpstring] */ const LPWSTR siHealUVWOpType	=	L"healuvw";

/* [helpstring] */ const LPWSTR siIcosahedronPrimType	=	L"icosahedron";

/* [helpstring] */ const LPWSTR siImageClipType	=	L"ImageClip";

/* [helpstring] */ const LPWSTR siImageCropOpType	=	L"ImageCropOp";

/* [helpstring] */ const LPWSTR siImageFXOpType	=	L"ImageFXOp";

/* [helpstring] */ const LPWSTR siImageObjectType	=	L"ImageObject";

/* [helpstring] */ const LPWSTR siImageSourceOpType	=	L"ImageSourceOp";

/* [helpstring] */ const LPWSTR siImageSourceType	=	L"ImageSource";

/* [helpstring] */ const LPWSTR siInsertCrvKnotOpType	=	L"InsertCrvKnot";

/* [helpstring] */ const LPWSTR siInsSrfKnotOpType	=	L"inssrfknot";

/* [helpstring] */ const LPWSTR siIntersectSrfOpType	=	L"intersectsrf";

/* [helpstring] */ const LPWSTR siInvCrvOpType	=	L"invcrv";

/* [helpstring] */ const LPWSTR siInvertPolyOpType	=	L"invertpolygonop";

/* [helpstring] */ const LPWSTR siInvisiblePolygonsClusterName	=	L"InvisiblePolygons";

/* [helpstring] */ const LPWSTR siInvSrfOpType	=	L"invsrf";

/* [helpstring] */ const LPWSTR siKineChainPropType	=	L"KineChainProp";

/* [helpstring] */ const LPWSTR siKineChainType	=	L"chain";

/* [helpstring] */ const LPWSTR siKineCnsType	=	L"kinecns";

/* [helpstring] */ const LPWSTR siKineInfoType	=	L"kine";

/* [helpstring] */ const LPWSTR siKineJointType	=	L"joint";

/* [helpstring] */ const LPWSTR siLatticeOpType	=	L"lattice";

/* [helpstring] */ const LPWSTR siLatticePrimType	=	L"lattice";

/* [helpstring] */ const LPWSTR siLayersType	=	L"Layers";

/* [helpstring] */ const LPWSTR siLightLensFlareType	=	L"LightLensFlare";

/* [helpstring] */ const LPWSTR siLightPrimType	=	L"light";

/* [helpstring] */ const LPWSTR siLineCnsType	=	L"LineCns";

/* [helpstring] */ const LPWSTR siLocalType	=	L"local";

/* [helpstring] */ const LPWSTR siLoftOpType	=	L"loft";

/* [helpstring] */ const LPWSTR siMapCompOpType	=	L"mapCompOp";

/* [helpstring] */ const LPWSTR siMarkHardEdgeVertexOpType	=	L"MarkHardEdgeVertex";

/* [helpstring] */ const LPWSTR siMaterialType	=	L"material";

/* [helpstring] */ const LPWSTR siMergeCrvOpType	=	L"mergecrv";

/* [helpstring] */ const LPWSTR siMergeMeshOpType	=	L"mergemesh";

/* [helpstring] */ const LPWSTR siMergeSrfOpType	=	L"mergesrf";

/* [helpstring] */ const LPWSTR siMeshLocalSubdivisionOpType	=	L"meshlocalsubdivisionop";

/* [helpstring] */ const LPWSTR siMeshSubdivOpType	=	L"MeshSubdivide";

/* [helpstring] */ const LPWSTR siMeshSubdivWithCenterOpType	=	L"MeshSubdivideWithCenter";

/* [helpstring] */ const LPWSTR siMixerAnimClipType	=	L"mixeranimclip";

/* [helpstring] */ const LPWSTR siMixerAnimTrackType	=	L"mixeranimtrack";

/* [helpstring] */ const LPWSTR siMixerAudioClipType	=	L"mixeraudioclip";

/* [helpstring] */ const LPWSTR siMixerAudioTrackType	=	L"mixeraudiotrack";

/* [helpstring] */ const LPWSTR siMixerPropType	=	L"MixerProp";

/* [helpstring] */ const LPWSTR siMixerShapeClipType	=	L"mixershapeclip";

/* [helpstring] */ const LPWSTR siMixerShapeTrackType	=	L"mixershapetrack";

/* [helpstring] */ const LPWSTR siMixerType	=	L"mixer";

/* [helpstring] */ const LPWSTR siModelClipType	=	L"model_clip";

/* [helpstring] */ const LPWSTR siModelNullPrimType	=	L"modelnull";

/* [helpstring] */ const LPWSTR siModelType	=	L"#model";

/* [helpstring] */ const LPWSTR siMotionBlurType	=	L"motionblur";

/* [helpstring] */ const LPWSTR siMoveComponentOpType	=	L"movecomponentop";

/* [helpstring] */ const LPWSTR siNPntCnsType	=	L"Nptscns";

/* [helpstring] */ const LPWSTR siNullPrimType	=	L"null";

/* [helpstring] */ const LPWSTR siNurbsToMeshOpType	=	L"nurbstomesh";

/* [helpstring] */ const LPWSTR siObjClsCnsType	=	L"objclscns";

/* [helpstring] */ const LPWSTR siObstaclePropType	=	L"ObstacleProp";

/* [helpstring] */ const LPWSTR siOctahedronPrimType	=	L"octahedron";

/* [helpstring] */ const LPWSTR siOffsetClsOpType	=	L"offsetclusterop";

/* [helpstring] */ const LPWSTR siOffsetCrvOpType	=	L"offsetcrv";

/* [helpstring] */ const LPWSTR siOffsetSrfOpType	=	L"offsetsrf";

/* [helpstring] */ const LPWSTR siOpenCloseSrfOpType	=	L"openclosesrf";

/* [helpstring] */ const LPWSTR siOriCnsType	=	L"oricns";

/* [helpstring] */ const LPWSTR siOverrideType	=	L"#Override";

/* [helpstring] */ const LPWSTR siParDecayType	=	L"ParDecay";

/* [helpstring] */ const LPWSTR siParObstExtSparksType	=	L"ParObstExtSparks";

/* [helpstring] */ const LPWSTR siParticleEventType	=	L"ParticleEvent";

/* [helpstring] */ const LPWSTR siParticlesOpType	=	L"ParticlesOp";

/* [helpstring] */ const LPWSTR siPathCnsType	=	L"pathcns";

/* [helpstring] */ const LPWSTR siPinJointCnsType	=	L"PinJointCns";

/* [helpstring] */ const LPWSTR siPlaneCnsType	=	L"PlaneCns";

/* [helpstring] */ const LPWSTR siPolyMeshPNetOpType	=	L"PolyMeshPNetOp";

/* [helpstring] */ const LPWSTR siPosCnsType	=	L"poscns";

/* [helpstring] */ const LPWSTR siPoseCnsType	=	L"posecns";

/* [helpstring] */ const LPWSTR siProjectCrvOpType	=	L"projectcrv";

/* [helpstring] */ const LPWSTR siProportionalOpType	=	L"proportional";

/* [helpstring] */ const LPWSTR siPropVolumeOpType	=	L"propvolumeop";

/* [helpstring] */ const LPWSTR siPushOpType	=	L"pushop";

/* [helpstring] */ const LPWSTR siQStretchOpType	=	L"qstretch";

/* [helpstring] */ const LPWSTR siRandomizeOpType	=	L"randomizeop";

/* [helpstring] */ const LPWSTR siRefPlaneType	=	L"refplane";

/* [helpstring] */ const LPWSTR siRelaxUVWOpType	=	L"Relaxuvw";

/* [helpstring] */ const LPWSTR siRemoveCrvKnotOpType	=	L"RemoveCrvKnot";

/* [helpstring] */ const LPWSTR siRemSrfKnotOpType	=	L"remsrfknot";

/* [helpstring] */ const LPWSTR siRenderMapType	=	L"rendermap";

/* [helpstring] */ const LPWSTR siRevolutionOpType	=	L"revolution";

/* [helpstring] */ const LPWSTR siRotoscopeType	=	L"rotoscope";

/* [helpstring] */ const LPWSTR siSceneAmbienceType	=	L"ambience";

/* [helpstring] */ const LPWSTR siSceneColorsType	=	L"Scenecolors";

/* [helpstring] */ const LPWSTR siSclCnsType	=	L"sclcns";

/* [helpstring] */ const LPWSTR siSCMFixerOpType	=	L"scmfixerop";

/* [helpstring] */ const LPWSTR siSCMTopologyOpType	=	L"scmtopologyop";

/* [helpstring] */ const LPWSTR siScriptedOpType	=	L"scriptedop";

/* [helpstring] */ const LPWSTR siSetEdgeCreaseValueOpType	=	L"SetEdgeCreaseValue";

/* [helpstring] */ const LPWSTR siShapeActionCompoundClipType	=	L"ShapeActionCompoundClip";

/* [helpstring] */ const LPWSTR siShapeActionType	=	L"ShapeAction";

/* [helpstring] */ const LPWSTR siShearOpType	=	L"shearop";

/* [helpstring] */ const LPWSTR siShrinkWrapOpType	=	L"shrinkwrap";

/* [helpstring] */ const LPWSTR siSkelCtrlOpPropType	=	L"SkeletonCtrlOpProp";

/* [helpstring] */ const LPWSTR siSmoothEnvelopeWgtOpType	=	L"smoothenvelopeweight";

/* [helpstring] */ const LPWSTR siSnapBoundOpType	=	L"snapbound";

/* [helpstring] */ const LPWSTR siSnapCrvOpType	=	L"SnapCrvsOp";

/* [helpstring] */ const LPWSTR siSnipSrfOpType	=	L"snipsrf";

/* [helpstring] */ const LPWSTR siSoftBodyOpType	=	L"SoftBodyOp";

/* [helpstring] */ const LPWSTR siSpherePrimType	=	L"sphere";

/* [helpstring] */ const LPWSTR siSpineDefOp2Type	=	L"spinedefop2";

/* [helpstring] */ const LPWSTR siSpineDefOpType	=	L"spinedefop";

/* [helpstring] */ const LPWSTR siSpineWgtMapOp3Type	=	L"spinewgtmapop";

/* [helpstring] */ const LPWSTR siSpineWgtMapOp4Type	=	L"spinewgtmapop";

/* [helpstring] */ const LPWSTR siSpiralPrimType	=	L"spiral";

/* [helpstring] */ const LPWSTR siSplitEdgeOpType	=	L"splitedgeop";

/* [helpstring] */ const LPWSTR siSplitPolyOpType	=	L"splitpolygonop";

/* [helpstring] */ const LPWSTR siSpotInterestPrimType	=	L"SpotInterest";

/* [helpstring] */ const LPWSTR siSpotRootPrimType	=	L"SpotRoot";

/* [helpstring] */ const LPWSTR siSquarePrimType	=	L"square";

/* [helpstring] */ const LPWSTR siSrfCnsType	=	L"surfcns";

/* [helpstring] */ const LPWSTR siCrvCnsType	=	L"curvecns";

/* [helpstring] */ const LPWSTR siSrfCrvInverseOpType	=	L"SurfaceCurveInverseOp";

/* [helpstring] */ const LPWSTR siSrfCrvShiftOpType	=	L"srfcrvshift";

/* [helpstring] */ const LPWSTR siSrfCtrlOpType	=	L"SrfControlOp";

/* [helpstring] */ const LPWSTR siSrfDefOpType	=	L"srfdefop";

/* [helpstring] */ const LPWSTR siSrfMeshPrimType	=	L"surfmsh";

/* [helpstring] */ const LPWSTR siSrfPQOpType	=	L"SurfacePQ";

/* [helpstring] */ const LPWSTR siSrfReparamOpType	=	L"srfreparam";

/* [helpstring] */ const LPWSTR siSrfShiftOpType	=	L"srfshift";

/* [helpstring] */ const LPWSTR siSrfSubdivisionOpType	=	L"srfsubdivisionop";

/* [helpstring] */ const LPWSTR siSrfUVCtrlOpType	=	L"SurfaceUVControl";

/* [helpstring] */ const LPWSTR siStartOffsetOpType	=	L"startoffset";

/* [helpstring] */ const LPWSTR siStitchCrvToCrvOpType	=	L"stitchcrvtocrv";

/* [helpstring] */ const LPWSTR siStitchCrvToSrfOpType	=	L"stitchcrvtosrf";

/* [helpstring] */ const LPWSTR siStitchSrfOpType	=	L"stitchsrf";

/* [helpstring] */ const LPWSTR siStrokeOpType	=	L"stroke";

/* [helpstring] */ const LPWSTR siSubCompType	=	L"subcomp";

/* [helpstring] */ const LPWSTR siSubdivEdgeOpType	=	L"subdivideedgeop";

/* [helpstring] */ const LPWSTR siSubdivPolyOpType	=	L"subdividepolygonop";

/* [helpstring] */ const LPWSTR siSwapSrfUVOpType	=	L"swapsrfuv";

/* [helpstring] */ const LPWSTR siSymmetrizePolygon	=	L"symmetrizepolygonop";

/* [helpstring] */ const LPWSTR siSymmetryCnsType	=	L"symmetrycns";

/* [helpstring] */ const LPWSTR siSymmetryMapOpType	=	L"symmetrymapop";

/* [helpstring] */ const LPWSTR siSymmetryMapType	=	L"map";

/* [helpstring] */ const LPWSTR siSynopticViewType	=	L"synoptic";

/* [helpstring] */ const LPWSTR siTaperOpType	=	L"taperop";

/* [helpstring] */ const LPWSTR siTetrahedronPrimType	=	L"tetrahedron";

/* [helpstring] */ const LPWSTR siTextToCrvListOpType	=	L"TextToCurveList";

/* [helpstring] */ const LPWSTR siTorusPrimType	=	L"torus";

/* [helpstring] */ const LPWSTR siTrajCnsType	=	L"trajcns";

/* [helpstring] */ const LPWSTR siTransformSetupType	=	L"transformsetup";

/* [helpstring] */ const LPWSTR siTwistOpType	=	L"twistop";

/* [helpstring] */ const LPWSTR siTxtMapType	=	L"TextureProp";

/* [helpstring] */ const LPWSTR siTxtOpType	=	L"TextureOp";

/* [helpstring] */ const LPWSTR siTxtSupportType	=	L"Texture Support";

/* [helpstring] */ const LPWSTR siTurbulenceCtrlPrimType	=	L"turbulence";

/* [helpstring] */ const LPWSTR siUpVctCnsType	=	L"upvctcns";

/* [helpstring] */ const LPWSTR siUserNormalType	=	L"normal";

/* [helpstring] */ const LPWSTR siUVProjDefType	=	L"uvprojdef";

/* [helpstring] */ const LPWSTR siVertexcolorType	=	L"vertexcolor";

/* [helpstring] */ const LPWSTR siVisibilityType	=	L"visibility";

/* [helpstring] */ const LPWSTR siVolumeDeformType	=	L"volume_deform";

/* [helpstring] */ const LPWSTR siVolumicLightSceneType	=	L"VolumicLightScene";

/* [helpstring] */ const LPWSTR siVolumicLightType	=	L"VolumicLight";

/* [helpstring] */ const LPWSTR siVortexCtrlType	=	L"vortex";

/* [helpstring] */ const LPWSTR siVtxColPainterOpType	=	L"vertexcolorpainter";

/* [helpstring] */ const LPWSTR siVtxColPropOpType	=	L"vertexcolorpropop";

/* [helpstring] */ const LPWSTR siWaveCtrlType	=	L"wave";

/* [helpstring] */ const LPWSTR siWaveOpType	=	L"wave";

/* [helpstring] */ const LPWSTR siWeldEdgesOpType	=	L"weldedgesop";

/* [helpstring] */ const LPWSTR siWeldPntOpType	=	L"weldpointsop";

/* [helpstring] */ const LPWSTR siWgtMapCnxOpType	=	L"WMCnxOp";

/* [helpstring] */ const LPWSTR siWgtMapOpType	=	L"weightmapop";

/* [helpstring] */ const LPWSTR siWgtMapsMixOpType	=	L"WghtMapsMixOp";

/* [helpstring] */ const LPWSTR siWgtMapType	=	L"wtmap";

/* [helpstring] */ const LPWSTR siWgtPainterOpType	=	L"weightpainter";

/* [helpstring] */ const LPWSTR siWindType	=	L"wind";

/* [helpstring] */ const LPWSTR siWtStrokeOpType	=	L"wtstroke";

/* [helpstring] */ const LPWSTR siControlNumber	=	L"Number";

/* [helpstring] */ const LPWSTR siControlString	=	L"String";

/* [helpstring] */ const LPWSTR siControlBoolean	=	L"Boolean";

/* [helpstring] */ const LPWSTR siControlCheck	=	L"Check";

/* [helpstring] */ const LPWSTR siControlRadio	=	L"Radio";

/* [helpstring] */ const LPWSTR siControlCombo	=	L"Combo";

/* [helpstring] */ const LPWSTR siControlRGBA	=	L"RGBA";

/* [helpstring] */ const LPWSTR siControlRGB	=	L"RGB";

/* [helpstring] */ const LPWSTR siControlIconList	=	L"IconList";

/* [helpstring] */ const LPWSTR siControlBitmap	=	L"BitmapWidget";

/* [helpstring] */ const LPWSTR siControlListBox	=	L"ListBox";

/* [helpstring] */ const LPWSTR siControlButton	=	L"commandbutton";

/* [helpstring] */ const LPWSTR siControlStatic	=	L"Static";

/* [helpstring] */ const LPWSTR siControlEdit	=	L"edit";

/* [helpstring] */ const LPWSTR siControlFilePath	=	L"FilePath";

/* [helpstring] */ const LPWSTR siControlFolder	=	L"Folder";

/* [helpstring] */ const LPWSTR siControlFCurve	=	L"FCurveWidget";

/* [helpstring] */ const LPWSTR siControlGrid	=	L"GridWidget";

/* [helpstring] */ const LPWSTR siControlSynoptic	=	L"SynopticWidget";

/* [helpstring] */ const LPWSTR siUICX	=	L"CX";

/* [helpstring] */ const LPWSTR siUICY	=	L"CY";

/* [helpstring] */ const LPWSTR siUINoLabel	=	L"NoLabel";

/* [helpstring] */ const LPWSTR siUIValueOnly	=	L"ValueOnly";

/* [helpstring] */ const LPWSTR siUIAlignLeft	=	L"AlignLeft";

/* [helpstring] */ const LPWSTR siUIAlignRight	=	L"AlignRight";

/* [helpstring] */ const LPWSTR siUIAlignCenter	=	L"AlignCenter";

/* [helpstring] */ const LPWSTR siUIContinue	=	L"Continue";

/* [helpstring] */ const LPWSTR siUIShowFrame	=	L"ShowFrame";

/* [helpstring] */ const LPWSTR siUISyncSlider	=	L"SyncSlider";

/* [helpstring] */ const LPWSTR siUILogarithmic	=	L"log";

/* [helpstring] */ const LPWSTR siUIDecimals	=	L"decimals";

/* [helpstring] */ const LPWSTR siUINoSlider	=	L"NoSlider";

/* [helpstring] */ const LPWSTR siUIThumbWheel	=	L"ThumbWheel";

/* [helpstring] */ const LPWSTR siUICaption	=	L"caption";

/* [helpstring] */ const LPWSTR siUIStyle	=	L"style";

/* [helpstring] */ const LPWSTR siUIColumnCnt	=	L"nocol";

/* [helpstring] */ const LPWSTR siUILineCnt	=	L"noline";

/* [helpstring] */ const LPWSTR siUIColumnGap	=	L"colgap";

/* [helpstring] */ const LPWSTR siUILineGap	=	L"linegap";

/* [helpstring] */ const LPWSTR siUISelectionColor	=	L"selcolor";

/* [helpstring] */ const LPWSTR siUIUseSelectionIcon	=	L"useselicon";

/* [helpstring] */ const LPWSTR siUIFilePath	=	L"path";

/* [helpstring] */ const LPWSTR siUIFileFilter	=	L"FileFilter";

/* [helpstring] */ const LPWSTR siUIInitialDir	=	L"InitialDir";

/* [helpstring] */ const LPWSTR siUISubFolder	=	L"SubFolder";

/* [helpstring] */ const LPWSTR siUIAudioFile	=	L"AudioFile";

/* [helpstring] */ const LPWSTR siUIImageFile	=	L"ImageFile";

/* [helpstring] */ const LPWSTR siUIOpenFile	=	L"OpenFile";

/* [helpstring] */ const LPWSTR siUIFileMustExist	=	L"MustExist";

/* [helpstring] */ const LPWSTR siUIFCurveLabelX	=	L"LabelX";

/* [helpstring] */ const LPWSTR siUIFCurveLabelY	=	L"LabelY";

/* [helpstring] */ const LPWSTR siUIFCurveViewMinX	=	L"ViewMinX";

/* [helpstring] */ const LPWSTR siUIFCurveViewMinY	=	L"ViewMinY";

/* [helpstring] */ const LPWSTR siUIFCurveViewMaxX	=	L"ViewMaxX";

/* [helpstring] */ const LPWSTR siUIFCurveViewMaxY	=	L"ViewMaxY";

/* [helpstring] */ const LPWSTR siUIFCurveGridSpaceX	=	L"GridSpaceX";

/* [helpstring] */ const LPWSTR siUIFCurveGridSpaceY	=	L"GridSpaceY";

/* [helpstring] */ const LPWSTR siUIFCurveNoGrid	=	L"NoGrid";

/* [helpstring] */ const LPWSTR siUIFCurveNoRulerX	=	L"NoRulerX";

/* [helpstring] */ const LPWSTR siUIFCurveNoRulerY	=	L"NoRulerY";

/* [helpstring] */ const LPWSTR siUIFCurveSnapX	=	L"SnapX";

/* [helpstring] */ const LPWSTR siUIFCurveSnapY	=	L"SnapY";

/* [helpstring] */ const LPWSTR siUIFCurveGhosting	=	L"Ghosting";

/* [helpstring] */ const LPWSTR siUIFCurveColorNonBijective	=	L"ColorNonBijective";

/* [helpstring] */ const LPWSTR siUIFCurveShowTimeCursor	=	L"ShowTimeCursor";

/* [helpstring] */ const LPWSTR siUIGridColumnWidths	=	L"ColumnWidths";

/* [helpstring] */ const LPWSTR siUIGridReadOnlyColumns	=	L"ReadOnlyColumns";

/* [helpstring] */ const LPWSTR siUIGridShowColumns	=	L"ShowColumns";

/* [helpstring] */ const LPWSTR siUIGridLockColumnHeader	=	L"LockColumnHeader";

/* [helpstring] */ const LPWSTR siUIGridLockRowHeader	=	L"LockRowHeader";

/* [helpstring] */ const LPWSTR siUIGridHideColumnHeader	=	L"HideColumnHeader";

/* [helpstring] */ const LPWSTR siUIGridHideRowHeader	=	L"HideRowHeader";

/* [helpstring] */ const LPWSTR siUIGridSelectionMode	=	L"SelectionMode";

/* [helpstring] */ const LPWSTR siUIButtonDisable	=	L"ButtonDisable";

/* [helpstring] */ const LPWSTR siUILabel	=	L"label";

/* [helpstring] */ const LPWSTR siUIItems	=	L"UIItems";

/* [helpstring] */ const LPWSTR siUIType	=	L"UIType";

/* [helpstring] */ const LPWSTR siUIWidthPercentage	=	L"WidthPercentage";

/* [helpstring] */ const LPWSTR siUILabelPercentage	=	L"LabelPercentage";

/* [helpstring] */ const LPWSTR siUILabelMinPixels	=	L"LabelMinPixels";

/* [helpstring] */ const LPWSTR siUIMultiSelectionListBox	=	L"MultiSelectionListBox";

/* [helpstring] */ const LPWSTR siUILogic	=	L"Logic";

/* [helpstring] */ const LPWSTR siUILanguage	=	L"Language";

/* [helpstring] */ const LPWSTR siUILogicPrefix	=	L"LogicPrefix";

/* [helpstring] */ const LPWSTR siUILogicFile	=	L"LogicFile";

/* [helpstring] */ const LPWSTR siUIHelpFile	=	L"HelpFile";

/* [helpstring] */ const LPWSTR siUIHelpID	=	L"HelpID";

/* [helpstring] */ const LPWSTR siUIDictionary	=	L"Dictionary";

/* [helpstring] */ const LPWSTR siUIShowChildren	=	L"ShowChildren";

/* [helpstring] */ const LPWSTR siArgHandlerFrame	=	L"Frame";

/* [helpstring] */ const LPWSTR siArgHandlerFrameRate	=	L"FrameRate";

/* [helpstring] */ const LPWSTR siArgHandlerSingleObj	=	L"SingleObj";

/* [helpstring] */ const LPWSTR siArgHandlerCollection	=	L"Collection";

/* [helpstring] */ const LPWSTR siArgHandlerMarkedParameters	=	L"MarkedParameters";

/* [helpstring] */ const LPWSTR siArgHandlerAnimatableParameters	=	L"AnimatableParameters";

/* [helpstring] */ const LPWSTR siFilterObjectType	=	L"FilterObjectType";

/* [helpstring] */ const LPWSTR siFilter3DObjectType	=	L"Filter3DObjectType";

/* [helpstring] */ const LPWSTR siFilterSubComponentType	=	L"FilterSubComponentType";

/* [helpstring] */ const LPWSTR siFilterPropertyType	=	L"FilterPropertyType";

/* [helpstring] */ const LPWSTR siClipAnimationType	=	L"mixeranimclip";

/* [helpstring] */ const LPWSTR siClipShapeType	=	L"mixershapeclip";

/* [helpstring] */ const LPWSTR siClipAudioType	=	L"mixeraudioclip";

/* [helpstring] */ const LPWSTR siClipAnimCompoundType	=	L"AnimActionCompoundClip";

/* [helpstring] */ const LPWSTR siClipShapeCompoundType	=	L"ShapeActionCompoundClip";

/* [helpstring] */ const LPWSTR siClipMixerType	=	L"Mixer";

/* [helpstring] */ const LPWSTR siClipImageType	=	L"ImageClip";

/* [helpstring] */ const LPWSTR siTrackAnimationType	=	L"TrackAnimationType";

/* [helpstring] */ const LPWSTR siTrackShapeType	=	L"TrackShapeType";

/* [helpstring] */ const LPWSTR siTrackAudioType	=	L"TrackAudioType";

/* [helpstring] */ const LPWSTR siTransitionStandardType	=	L"TransitionStandardType";

/* [helpstring] */ const LPWSTR siTransitionCardinalType	=	L"TransitionCardinalType";

/* [helpstring] */ const LPWSTR siTransitionBridgeType	=	L"TransitionBridgeType";

/* [helpstring] */ const LPWSTR siFCurveAnimItem	=	L"FCurveAnimItem";

/* [helpstring] */ const LPWSTR siStaticValueAnimItem	=	L"StaticValueAnimItem";

/* [helpstring] */ const LPWSTR siShapeKeyAnimItem	=	L"ShapeKeyAnimItem";

/* [helpstring] */ const LPWSTR siExpressionAnimItem	=	L"ExpressionAnimItem";

/* [helpstring] */ const LPWSTR siConstraintAnimItem	=	L"ConstraintAnimItem";

/* [helpstring] */ const LPWSTR siAnimCompoundAnimItem	=	L"AnimCompoundAnimItem";

/* [helpstring] */ const LPWSTR siShapeCompoundAnimItem	=	L"ShapeCompoundAnimItem";

/* [helpstring] */ const LPWSTR siFCurveMappedItem	=	L"FCurveMappedItem";

/* [helpstring] */ const LPWSTR siStaticValueMappedItem	=	L"StaticValueMappedItem";

/* [helpstring] */ const LPWSTR siShapeKeyMappedItem	=	L"ShapeKeyMappedItem";

/* [helpstring] */ const LPWSTR siExpressionMappedItem	=	L"ExpressionMappedItem";

/* [helpstring] */ const LPWSTR siConstraintMappedItem	=	L"ConstraintMappedItem";

/* [helpstring] */ const LPWSTR siCompoundMappedItem	=	L"CompoundMappedItem";

/* [helpstring] */ const LPWSTR siShapeCompoundMappedItem	=	L"ShapeCompoundMappedItem";

/* [helpstring] */ const LPWSTR siSEFilterSceneNodes	=	L"Scene";

/* [helpstring] */ const LPWSTR siSEFilterObjectNodes	=	L"Object";

/* [helpstring] */ const LPWSTR siSEFilterOperatorNodes	=	L"Operator";

/* [helpstring] */ const LPWSTR siSEFilterPrimitiveNodes	=	L"Primitive";

/* [helpstring] */ const LPWSTR siSEFilterPropertyNodes	=	L"Property";

/* [helpstring] */ const LPWSTR siSEFilterClusterNodes	=	L"Cluster";

/* [helpstring] */ const LPWSTR siSEFilterGroupNodes	=	L"Group";

/* [helpstring] */ const LPWSTR siSEFilterShaderNodes	=	L"Shader";

/* [helpstring] */ const LPWSTR siSEFilterMaterialNodes	=	L"Material";

/* [helpstring] */ const LPWSTR siSEFilterActionNodes	=	L"Action";

/* [helpstring] */ const LPWSTR siSEFilterModelNodes	=	L"Model";

/* [helpstring] */ const LPWSTR siSEFilterParameterNodes	=	L"Parameter";

/* [helpstring] */ const LPWSTR siSEFilterAnimatableNodes	=	L"Animatable";

/* [helpstring] */ const LPWSTR siSEFilterMiscellaneousNodes	=	L"Miscellaneous";

/* [helpstring] */ const LPWSTR siSEFilterAllNodeTypes	=	L"AllNodeTypes";

/* [helpstring] */ const LPWSTR siSEFilterAnimatedNodes	=	L"Animated";

/* [helpstring] */ const LPWSTR siSEFilterKeywordGeneral	=	L"General";

/* [helpstring] */ const LPWSTR siSEFilterKeywordModeling	=	L"Modeling";

/* [helpstring] */ const LPWSTR siSEFilterKeywordAnimation	=	L"Animation";

/* [helpstring] */ const LPWSTR siSEFilterKeywordRendering	=	L"Rendering";

/* [helpstring] */ const LPWSTR siSEFilterKeywordViewing	=	L"Viewing";

/* [helpstring] */ const LPWSTR siSEFilterKeywordCustom	=	L"Custom";

/* [helpstring] */ const LPWSTR siSEFilterKeywordKinematics	=	L"Kinematics";

/* [helpstring] */ const LPWSTR siSEFilterKeywordAll	=	L"AllKeywords";

#endif /* __StringModule_MODULE_DEFINED__ */

#ifndef __SIObject_INTERFACE_DEFINED__
#define __SIObject_INTERFACE_DEFINED__

/* interface SIObject */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_SIObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D60F50AC-E3E6-11d3-811D-00A0C9AC19A9")
    SIObject : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FullName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR in_Name) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ Application **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsEqualTo( 
            /* [in] */ IDispatch *in_pItem,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_UniqueName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Help( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Help( 
            /* [in] */ BSTR __MIDL_0586) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Categories( 
            /* [retval][out] */ VARIANT *pArrayVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Categories( 
            /* [in] */ BSTR __MIDL_0587) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Origin( 
            /* [retval][out] */ siInstallationPath *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OriginPath( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsClassOf( 
            /* [in] */ siClassID __MIDL_0588,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NestedObjects( 
            /* [retval][out] */ SIObjectCollection **out_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SIObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SIObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SIObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SIObject * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SIObject * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SIObject * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SIObject * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SIObject * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FullName )( 
            SIObject * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            SIObject * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            SIObject * This,
            /* [in] */ BSTR in_Name);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            SIObject * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            SIObject * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            SIObject * This,
            /* [retval][out] */ Application **pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsEqualTo )( 
            SIObject * This,
            /* [in] */ IDispatch *in_pItem,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UniqueName )( 
            SIObject * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Help )( 
            SIObject * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Help )( 
            SIObject * This,
            /* [in] */ BSTR __MIDL_0586);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Categories )( 
            SIObject * This,
            /* [retval][out] */ VARIANT *pArrayVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Categories )( 
            SIObject * This,
            /* [in] */ BSTR __MIDL_0587);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Origin )( 
            SIObject * This,
            /* [retval][out] */ siInstallationPath *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OriginPath )( 
            SIObject * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsClassOf )( 
            SIObject * This,
            /* [in] */ siClassID __MIDL_0588,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NestedObjects )( 
            SIObject * This,
            /* [retval][out] */ SIObjectCollection **out_pVal);
        
        END_INTERFACE
    } SIObjectVtbl;

    interface SIObject
    {
        CONST_VTBL struct SIObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SIObject_get_FullName(This,pVal)	\
    (This)->lpVtbl -> get_FullName(This,pVal)

#define SIObject_get_Name(This,pVal)	\
    (This)->lpVtbl -> get_Name(This,pVal)

#define SIObject_put_Name(This,in_Name)	\
    (This)->lpVtbl -> put_Name(This,in_Name)

#define SIObject_get_Type(This,pVal)	\
    (This)->lpVtbl -> get_Type(This,pVal)

#define SIObject_get_Parent(This,pVal)	\
    (This)->lpVtbl -> get_Parent(This,pVal)

#define SIObject_get_Application(This,pVal)	\
    (This)->lpVtbl -> get_Application(This,pVal)

#define SIObject_IsEqualTo(This,in_pItem,pVal)	\
    (This)->lpVtbl -> IsEqualTo(This,in_pItem,pVal)

#define SIObject_get_UniqueName(This,pVal)	\
    (This)->lpVtbl -> get_UniqueName(This,pVal)

#define SIObject_get_Help(This,pVal)	\
    (This)->lpVtbl -> get_Help(This,pVal)

#define SIObject_put_Help(This,__MIDL_0586)	\
    (This)->lpVtbl -> put_Help(This,__MIDL_0586)

#define SIObject_get_Categories(This,pArrayVal)	\
    (This)->lpVtbl -> get_Categories(This,pArrayVal)

#define SIObject_put_Categories(This,__MIDL_0587)	\
    (This)->lpVtbl -> put_Categories(This,__MIDL_0587)

#define SIObject_get_Origin(This,pVal)	\
    (This)->lpVtbl -> get_Origin(This,pVal)

#define SIObject_get_OriginPath(This,pVal)	\
    (This)->lpVtbl -> get_OriginPath(This,pVal)

#define SIObject_IsClassOf(This,__MIDL_0588,pVal)	\
    (This)->lpVtbl -> IsClassOf(This,__MIDL_0588,pVal)

#define SIObject_get_NestedObjects(This,out_pVal)	\
    (This)->lpVtbl -> get_NestedObjects(This,out_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_FullName_Proxy( 
    SIObject * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB SIObject_get_FullName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_Name_Proxy( 
    SIObject * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB SIObject_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE SIObject_put_Name_Proxy( 
    SIObject * This,
    /* [in] */ BSTR in_Name);


void __RPC_STUB SIObject_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_Type_Proxy( 
    SIObject * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB SIObject_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_Parent_Proxy( 
    SIObject * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB SIObject_get_Parent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_Application_Proxy( 
    SIObject * This,
    /* [retval][out] */ Application **pVal);


void __RPC_STUB SIObject_get_Application_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIObject_IsEqualTo_Proxy( 
    SIObject * This,
    /* [in] */ IDispatch *in_pItem,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB SIObject_IsEqualTo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_UniqueName_Proxy( 
    SIObject * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB SIObject_get_UniqueName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_Help_Proxy( 
    SIObject * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB SIObject_get_Help_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE SIObject_put_Help_Proxy( 
    SIObject * This,
    /* [in] */ BSTR __MIDL_0586);


void __RPC_STUB SIObject_put_Help_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_Categories_Proxy( 
    SIObject * This,
    /* [retval][out] */ VARIANT *pArrayVal);


void __RPC_STUB SIObject_get_Categories_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE SIObject_put_Categories_Proxy( 
    SIObject * This,
    /* [in] */ BSTR __MIDL_0587);


void __RPC_STUB SIObject_put_Categories_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_Origin_Proxy( 
    SIObject * This,
    /* [retval][out] */ siInstallationPath *pVal);


void __RPC_STUB SIObject_get_Origin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_OriginPath_Proxy( 
    SIObject * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB SIObject_get_OriginPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIObject_IsClassOf_Proxy( 
    SIObject * This,
    /* [in] */ siClassID __MIDL_0588,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB SIObject_IsClassOf_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SIObject_get_NestedObjects_Proxy( 
    SIObject * This,
    /* [retval][out] */ SIObjectCollection **out_pVal);


void __RPC_STUB SIObject_get_NestedObjects_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SIObject_INTERFACE_DEFINED__ */


#ifndef __ProjectItem_INTERFACE_DEFINED__
#define __ProjectItem_INTERFACE_DEFINED__

/* interface ProjectItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ProjectItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C9678A03-E3CA-11d3-811D-00A0C9AC19A9")
    ProjectItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Capabilities( 
            /* [retval][out] */ siCapabilities *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__Obsolete( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Families( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Owners( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parameters( 
            /* [retval][out] */ ParameterCollection **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Selected( 
            /* [optional][in] */ DWORD newVal,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_PathItems( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_Obj( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_BranchFlag( 
            /* [retval][out] */ siBranchFlag *pFlag) = 0;
        
        virtual /* [helpstring][id][hidden][propput] */ HRESULT STDMETHODCALLTYPE put_BranchFlag( 
            /* [in] */ siBranchFlag newFlag) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Apply( 
            /* [ref][in] */ LPDISPATCH pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NewPreset( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsA( 
            siPSetRelationship __MIDL_0011,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE BelongsTo( 
            VARIANT __MIDL_0012,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [id][hidden] */ HRESULT STDMETHODCALLTYPE IsAnimated( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0013,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0014) = 0;
        
        virtual /* [id][hidden] */ HRESULT STDMETHODCALLTYPE AnimatedParameters( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0015,
            /* [retval][out] */ ParameterCollection **__MIDL_0016) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluateAt( 
            /* [in] */ VARIANT in_vFrame,
            /* [retval][out] */ IDispatch **__MIDL_0017) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsKindOf( 
            /* [in] */ BSTR in_objectType,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE FindAttrib( 
            BSTR __MIDL_0018,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Model( 
            /* [retval][out] */ Model **__MIDL_0019) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsAnimated2( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0020,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0021,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0022) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AnimatedParameters2( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0023,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0024,
            /* [retval][out] */ ParameterCollection **__MIDL_0025) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Selected( 
            /* [defaultvalue][in] */ DWORD newVal,
            /* [in] */ VARIANT_BOOL __MIDL_0026) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PPGLayout( 
            /* [retval][out] */ PPGLayout **ppPPGLayout) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetCapabilityFlag( 
            /* [in] */ LONG in_Flag,
            /* [in] */ VARIANT_BOOL in_bEnable) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockType( 
            /* [retval][out] */ siLockType *__MIDL_0027) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockLevel( 
            /* [retval][out] */ siLockLevel *__MIDL_0028) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsLocked( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0029) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLock( 
            /* [defaultvalue][in] */ siLockLevel in_LockLevel = siLockLevelAll) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnSetLock( 
            /* [defaultvalue][in] */ siLockLevel in_LockLevel = siLockLevelAll,
            /* [defaultvalue][in] */ BSTR in_Password = L"") = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TaggedParameters( 
            /* [defaultvalue][in] */ siTags __MIDL_0030,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0031,
            /* [retval][out] */ ParameterCollection **__MIDL_0032) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LockOwners( 
            /* [defaultvalue][in] */ siLockLevel __MIDL_0033,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0034,
            /* [retval][out] */ XSICollection **__MIDL_0035) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddScriptedOp( 
            /* [defaultvalue][in] */ BSTR bszCode,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
            /* [retval][out] */ CustomOperator **ppCOP) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddScriptedOpFromFile( 
            /* [defaultvalue][in] */ BSTR bszFileName,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
            /* [retval][out] */ CustomOperator **ppCOP) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockMasters( 
            /* [retval][out] */ XSICollection **__MIDL_0036) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent3DObject( 
            /* [retval][out] */ X3DObject **__MIDL_0037) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddCustomOp( 
            /* [in] */ BSTR bszType,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
            /* [retval][out] */ CustomOperator **ppCOP) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ProjectItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ProjectItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ProjectItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ProjectItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ProjectItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ProjectItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ProjectItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ProjectItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Capabilities )( 
            ProjectItem * This,
            /* [retval][out] */ siCapabilities *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__Obsolete )( 
            ProjectItem * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Families )( 
            ProjectItem * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Owners )( 
            ProjectItem * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parameters )( 
            ProjectItem * This,
            /* [retval][out] */ ParameterCollection **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Selected )( 
            ProjectItem * This,
            /* [optional][in] */ DWORD newVal,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathItems )( 
            ProjectItem * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Obj )( 
            ProjectItem * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BranchFlag )( 
            ProjectItem * This,
            /* [retval][out] */ siBranchFlag *pFlag);
        
        /* [helpstring][id][hidden][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BranchFlag )( 
            ProjectItem * This,
            /* [in] */ siBranchFlag newFlag);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Apply )( 
            ProjectItem * This,
            /* [ref][in] */ LPDISPATCH pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NewPreset )( 
            ProjectItem * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsA )( 
            ProjectItem * This,
            siPSetRelationship __MIDL_0011,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *BelongsTo )( 
            ProjectItem * This,
            VARIANT __MIDL_0012,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *IsAnimated )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0013,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0014);
        
        /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *AnimatedParameters )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0015,
            /* [retval][out] */ ParameterCollection **__MIDL_0016);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluateAt )( 
            ProjectItem * This,
            /* [in] */ VARIANT in_vFrame,
            /* [retval][out] */ IDispatch **__MIDL_0017);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsKindOf )( 
            ProjectItem * This,
            /* [in] */ BSTR in_objectType,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][hidden] */ HRESULT ( STDMETHODCALLTYPE *FindAttrib )( 
            ProjectItem * This,
            BSTR __MIDL_0018,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Model )( 
            ProjectItem * This,
            /* [retval][out] */ Model **__MIDL_0019);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsAnimated2 )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0020,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0021,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0022);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AnimatedParameters2 )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0023,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0024,
            /* [retval][out] */ ParameterCollection **__MIDL_0025);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Selected )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ DWORD newVal,
            /* [in] */ VARIANT_BOOL __MIDL_0026);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PPGLayout )( 
            ProjectItem * This,
            /* [retval][out] */ PPGLayout **ppPPGLayout);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetCapabilityFlag )( 
            ProjectItem * This,
            /* [in] */ LONG in_Flag,
            /* [in] */ VARIANT_BOOL in_bEnable);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockType )( 
            ProjectItem * This,
            /* [retval][out] */ siLockType *__MIDL_0027);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockLevel )( 
            ProjectItem * This,
            /* [retval][out] */ siLockLevel *__MIDL_0028);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsLocked )( 
            ProjectItem * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0029);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLock )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siLockLevel in_LockLevel);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnSetLock )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siLockLevel in_LockLevel,
            /* [defaultvalue][in] */ BSTR in_Password);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TaggedParameters )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siTags __MIDL_0030,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0031,
            /* [retval][out] */ ParameterCollection **__MIDL_0032);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LockOwners )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ siLockLevel __MIDL_0033,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0034,
            /* [retval][out] */ XSICollection **__MIDL_0035);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddScriptedOp )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ BSTR bszCode,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
            /* [retval][out] */ CustomOperator **ppCOP);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddScriptedOpFromFile )( 
            ProjectItem * This,
            /* [defaultvalue][in] */ BSTR bszFileName,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
            /* [retval][out] */ CustomOperator **ppCOP);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockMasters )( 
            ProjectItem * This,
            /* [retval][out] */ XSICollection **__MIDL_0036);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent3DObject )( 
            ProjectItem * This,
            /* [retval][out] */ X3DObject **__MIDL_0037);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddCustomOp )( 
            ProjectItem * This,
            /* [in] */ BSTR bszType,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
            /* [retval][out] */ CustomOperator **ppCOP);
        
        END_INTERFACE
    } ProjectItemVtbl;

    interface ProjectItem
    {
        CONST_VTBL struct ProjectItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ProjectItem_get_Capabilities(This,pVal)	\
    (This)->lpVtbl -> get_Capabilities(This,pVal)

#define ProjectItem_get__Obsolete(This,pVal)	\
    (This)->lpVtbl -> get__Obsolete(This,pVal)

#define ProjectItem_get_Families(This,pVal)	\
    (This)->lpVtbl -> get_Families(This,pVal)

#define ProjectItem_get_Owners(This,pVal)	\
    (This)->lpVtbl -> get_Owners(This,pVal)

#define ProjectItem_get_Parameters(This,pVal)	\
    (This)->lpVtbl -> get_Parameters(This,pVal)

#define ProjectItem_get_Selected(This,newVal,pVal)	\
    (This)->lpVtbl -> get_Selected(This,newVal,pVal)

#define ProjectItem_get_PathItems(This,pVal)	\
    (This)->lpVtbl -> get_PathItems(This,pVal)

#define ProjectItem_get_Obj(This,pVal)	\
    (This)->lpVtbl -> get_Obj(This,pVal)

#define ProjectItem_get_BranchFlag(This,pFlag)	\
    (This)->lpVtbl -> get_BranchFlag(This,pFlag)

#define ProjectItem_put_BranchFlag(This,newFlag)	\
    (This)->lpVtbl -> put_BranchFlag(This,newFlag)

#define ProjectItem_Apply(This,pVal)	\
    (This)->lpVtbl -> Apply(This,pVal)

#define ProjectItem_NewPreset(This,pVal)	\
    (This)->lpVtbl -> NewPreset(This,pVal)

#define ProjectItem_IsA(This,__MIDL_0011,pVal)	\
    (This)->lpVtbl -> IsA(This,__MIDL_0011,pVal)

#define ProjectItem_BelongsTo(This,__MIDL_0012,pVal)	\
    (This)->lpVtbl -> BelongsTo(This,__MIDL_0012,pVal)

#define ProjectItem_IsAnimated(This,__MIDL_0013,__MIDL_0014)	\
    (This)->lpVtbl -> IsAnimated(This,__MIDL_0013,__MIDL_0014)

#define ProjectItem_AnimatedParameters(This,__MIDL_0015,__MIDL_0016)	\
    (This)->lpVtbl -> AnimatedParameters(This,__MIDL_0015,__MIDL_0016)

#define ProjectItem_EvaluateAt(This,in_vFrame,__MIDL_0017)	\
    (This)->lpVtbl -> EvaluateAt(This,in_vFrame,__MIDL_0017)

#define ProjectItem_IsKindOf(This,in_objectType,out_pVal)	\
    (This)->lpVtbl -> IsKindOf(This,in_objectType,out_pVal)

#define ProjectItem_FindAttrib(This,__MIDL_0018,pVal)	\
    (This)->lpVtbl -> FindAttrib(This,__MIDL_0018,pVal)

#define ProjectItem_get_Model(This,__MIDL_0019)	\
    (This)->lpVtbl -> get_Model(This,__MIDL_0019)

#define ProjectItem_IsAnimated2(This,__MIDL_0020,__MIDL_0021,__MIDL_0022)	\
    (This)->lpVtbl -> IsAnimated2(This,__MIDL_0020,__MIDL_0021,__MIDL_0022)

#define ProjectItem_AnimatedParameters2(This,__MIDL_0023,__MIDL_0024,__MIDL_0025)	\
    (This)->lpVtbl -> AnimatedParameters2(This,__MIDL_0023,__MIDL_0024,__MIDL_0025)

#define ProjectItem_put_Selected(This,newVal,__MIDL_0026)	\
    (This)->lpVtbl -> put_Selected(This,newVal,__MIDL_0026)

#define ProjectItem_get_PPGLayout(This,ppPPGLayout)	\
    (This)->lpVtbl -> get_PPGLayout(This,ppPPGLayout)

#define ProjectItem_SetCapabilityFlag(This,in_Flag,in_bEnable)	\
    (This)->lpVtbl -> SetCapabilityFlag(This,in_Flag,in_bEnable)

#define ProjectItem_get_LockType(This,__MIDL_0027)	\
    (This)->lpVtbl -> get_LockType(This,__MIDL_0027)

#define ProjectItem_get_LockLevel(This,__MIDL_0028)	\
    (This)->lpVtbl -> get_LockLevel(This,__MIDL_0028)

#define ProjectItem_IsLocked(This,__MIDL_0029)	\
    (This)->lpVtbl -> IsLocked(This,__MIDL_0029)

#define ProjectItem_SetLock(This,in_LockLevel)	\
    (This)->lpVtbl -> SetLock(This,in_LockLevel)

#define ProjectItem_UnSetLock(This,in_LockLevel,in_Password)	\
    (This)->lpVtbl -> UnSetLock(This,in_LockLevel,in_Password)

#define ProjectItem_TaggedParameters(This,__MIDL_0030,__MIDL_0031,__MIDL_0032)	\
    (This)->lpVtbl -> TaggedParameters(This,__MIDL_0030,__MIDL_0031,__MIDL_0032)

#define ProjectItem_LockOwners(This,__MIDL_0033,__MIDL_0034,__MIDL_0035)	\
    (This)->lpVtbl -> LockOwners(This,__MIDL_0033,__MIDL_0034,__MIDL_0035)

#define ProjectItem_AddScriptedOp(This,bszCode,vInputs,bszName,bszLanguage,in_constructionmode,ppCOP)	\
    (This)->lpVtbl -> AddScriptedOp(This,bszCode,vInputs,bszName,bszLanguage,in_constructionmode,ppCOP)

#define ProjectItem_AddScriptedOpFromFile(This,bszFileName,vInputs,bszName,bszLanguage,in_constructionmode,ppCOP)	\
    (This)->lpVtbl -> AddScriptedOpFromFile(This,bszFileName,vInputs,bszName,bszLanguage,in_constructionmode,ppCOP)

#define ProjectItem_get_LockMasters(This,__MIDL_0036)	\
    (This)->lpVtbl -> get_LockMasters(This,__MIDL_0036)

#define ProjectItem_get_Parent3DObject(This,__MIDL_0037)	\
    (This)->lpVtbl -> get_Parent3DObject(This,__MIDL_0037)

#define ProjectItem_AddCustomOp(This,bszType,vInputs,bszName,in_constructionmode,ppCOP)	\
    (This)->lpVtbl -> AddCustomOp(This,bszType,vInputs,bszName,in_constructionmode,ppCOP)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Capabilities_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ siCapabilities *pVal);


void __RPC_STUB ProjectItem_get_Capabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get__Obsolete_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB ProjectItem_get__Obsolete_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Families_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB ProjectItem_get_Families_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Owners_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB ProjectItem_get_Owners_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Parameters_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ ParameterCollection **pVal);


void __RPC_STUB ProjectItem_get_Parameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Selected_Proxy( 
    ProjectItem * This,
    /* [optional][in] */ DWORD newVal,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB ProjectItem_get_Selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_PathItems_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB ProjectItem_get_PathItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Obj_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB ProjectItem_get_Obj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_BranchFlag_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ siBranchFlag *pFlag);


void __RPC_STUB ProjectItem_get_BranchFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden][propput] */ HRESULT STDMETHODCALLTYPE ProjectItem_put_BranchFlag_Proxy( 
    ProjectItem * This,
    /* [in] */ siBranchFlag newFlag);


void __RPC_STUB ProjectItem_put_BranchFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_Apply_Proxy( 
    ProjectItem * This,
    /* [ref][in] */ LPDISPATCH pVal);


void __RPC_STUB ProjectItem_Apply_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_NewPreset_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB ProjectItem_NewPreset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_IsA_Proxy( 
    ProjectItem * This,
    siPSetRelationship __MIDL_0011,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB ProjectItem_IsA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_BelongsTo_Proxy( 
    ProjectItem * This,
    VARIANT __MIDL_0012,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB ProjectItem_BelongsTo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][hidden] */ HRESULT STDMETHODCALLTYPE ProjectItem_IsAnimated_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0013,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0014);


void __RPC_STUB ProjectItem_IsAnimated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][hidden] */ HRESULT STDMETHODCALLTYPE ProjectItem_AnimatedParameters_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0015,
    /* [retval][out] */ ParameterCollection **__MIDL_0016);


void __RPC_STUB ProjectItem_AnimatedParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_EvaluateAt_Proxy( 
    ProjectItem * This,
    /* [in] */ VARIANT in_vFrame,
    /* [retval][out] */ IDispatch **__MIDL_0017);


void __RPC_STUB ProjectItem_EvaluateAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_IsKindOf_Proxy( 
    ProjectItem * This,
    /* [in] */ BSTR in_objectType,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB ProjectItem_IsKindOf_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE ProjectItem_FindAttrib_Proxy( 
    ProjectItem * This,
    BSTR __MIDL_0018,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB ProjectItem_FindAttrib_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Model_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ Model **__MIDL_0019);


void __RPC_STUB ProjectItem_get_Model_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_IsAnimated2_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0020,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0021,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0022);


void __RPC_STUB ProjectItem_IsAnimated2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_AnimatedParameters2_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0023,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0024,
    /* [retval][out] */ ParameterCollection **__MIDL_0025);


void __RPC_STUB ProjectItem_AnimatedParameters2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProjectItem_put_Selected_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ DWORD newVal,
    /* [in] */ VARIANT_BOOL __MIDL_0026);


void __RPC_STUB ProjectItem_put_Selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_PPGLayout_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ PPGLayout **ppPPGLayout);


void __RPC_STUB ProjectItem_get_PPGLayout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ProjectItem_SetCapabilityFlag_Proxy( 
    ProjectItem * This,
    /* [in] */ LONG in_Flag,
    /* [in] */ VARIANT_BOOL in_bEnable);


void __RPC_STUB ProjectItem_SetCapabilityFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_LockType_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ siLockType *__MIDL_0027);


void __RPC_STUB ProjectItem_get_LockType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_LockLevel_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ siLockLevel *__MIDL_0028);


void __RPC_STUB ProjectItem_get_LockLevel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_IsLocked_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0029);


void __RPC_STUB ProjectItem_IsLocked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_SetLock_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siLockLevel in_LockLevel);


void __RPC_STUB ProjectItem_SetLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_UnSetLock_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siLockLevel in_LockLevel,
    /* [defaultvalue][in] */ BSTR in_Password);


void __RPC_STUB ProjectItem_UnSetLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_TaggedParameters_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siTags __MIDL_0030,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0031,
    /* [retval][out] */ ParameterCollection **__MIDL_0032);


void __RPC_STUB ProjectItem_TaggedParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProjectItem_LockOwners_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ siLockLevel __MIDL_0033,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0034,
    /* [retval][out] */ XSICollection **__MIDL_0035);


void __RPC_STUB ProjectItem_LockOwners_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ProjectItem_AddScriptedOp_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ BSTR bszCode,
    /* [optional][in] */ VARIANT vInputs,
    /* [defaultvalue][in] */ BSTR bszName,
    /* [defaultvalue][in] */ BSTR bszLanguage,
    /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
    /* [retval][out] */ CustomOperator **ppCOP);


void __RPC_STUB ProjectItem_AddScriptedOp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ProjectItem_AddScriptedOpFromFile_Proxy( 
    ProjectItem * This,
    /* [defaultvalue][in] */ BSTR bszFileName,
    /* [optional][in] */ VARIANT vInputs,
    /* [defaultvalue][in] */ BSTR bszName,
    /* [defaultvalue][in] */ BSTR bszLanguage,
    /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
    /* [retval][out] */ CustomOperator **ppCOP);


void __RPC_STUB ProjectItem_AddScriptedOpFromFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_LockMasters_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ XSICollection **__MIDL_0036);


void __RPC_STUB ProjectItem_get_LockMasters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItem_get_Parent3DObject_Proxy( 
    ProjectItem * This,
    /* [retval][out] */ X3DObject **__MIDL_0037);


void __RPC_STUB ProjectItem_get_Parent3DObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ProjectItem_AddCustomOp_Proxy( 
    ProjectItem * This,
    /* [in] */ BSTR bszType,
    /* [optional][in] */ VARIANT vInputs,
    /* [defaultvalue][in] */ BSTR bszName,
    /* [defaultvalue][in] */ siConstructionMode in_constructionmode,
    /* [retval][out] */ CustomOperator **ppCOP);


void __RPC_STUB ProjectItem_AddCustomOp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ProjectItem_INTERFACE_DEFINED__ */


#ifndef __SceneItem_INTERFACE_DEFINED__
#define __SceneItem_INTERFACE_DEFINED__

/* interface SceneItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_SceneItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("31903CD0-EDFB-11d3-ACCC-0090275802BF")
    SceneItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Properties( 
            /* [retval][out] */ PropertyCollection **out_ppProps) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Material( 
            /* [retval][out] */ Material **out_ppMat) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LocalProperties( 
            /* [retval][out] */ PropertyCollection **out_ppProps) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMaterial( 
            /* [optional][in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Material **out_ppMat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddProperty( 
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Envelopes( 
            /* [retval][out] */ EnvelopeCollection **out_ppMat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ApplyEnvelope( 
            /* [defaultvalue][in] */ IDispatch *in_pDeformers,
            /* [defaultvalue][in] */ siBranchFlag in_eDeformOnBranch,
            /* [defaultvalue][in] */ siBranchFlag in_eEnvelopeOnBranch,
            /* [retval][out] */ Envelope **out_ppEnv) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCustomProperty( 
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [retval][out] */ CustomProperty **out_ppProp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMaterial( 
            /* [in] */ IDispatch *in_pMaterial) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SceneItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SceneItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SceneItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SceneItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SceneItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SceneItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SceneItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SceneItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )( 
            SceneItem * This,
            /* [retval][out] */ PropertyCollection **out_ppProps);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Material )( 
            SceneItem * This,
            /* [retval][out] */ Material **out_ppMat);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LocalProperties )( 
            SceneItem * This,
            /* [retval][out] */ PropertyCollection **out_ppProps);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMaterial )( 
            SceneItem * This,
            /* [optional][in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Material **out_ppMat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddProperty )( 
            SceneItem * This,
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Envelopes )( 
            SceneItem * This,
            /* [retval][out] */ EnvelopeCollection **out_ppMat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ApplyEnvelope )( 
            SceneItem * This,
            /* [defaultvalue][in] */ IDispatch *in_pDeformers,
            /* [defaultvalue][in] */ siBranchFlag in_eDeformOnBranch,
            /* [defaultvalue][in] */ siBranchFlag in_eEnvelopeOnBranch,
            /* [retval][out] */ Envelope **out_ppEnv);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCustomProperty )( 
            SceneItem * This,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [retval][out] */ CustomProperty **out_ppProp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMaterial )( 
            SceneItem * This,
            /* [in] */ IDispatch *in_pMaterial);
        
        END_INTERFACE
    } SceneItemVtbl;

    interface SceneItem
    {
        CONST_VTBL struct SceneItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SceneItem_get_Properties(This,out_ppProps)	\
    (This)->lpVtbl -> get_Properties(This,out_ppProps)

#define SceneItem_get_Material(This,out_ppMat)	\
    (This)->lpVtbl -> get_Material(This,out_ppMat)

#define SceneItem_get_LocalProperties(This,out_ppProps)	\
    (This)->lpVtbl -> get_LocalProperties(This,out_ppProps)

#define SceneItem_AddMaterial(This,in_Preset,in_Branch,in_Name,out_ppMat)	\
    (This)->lpVtbl -> AddMaterial(This,in_Preset,in_Branch,in_Name,out_ppMat)

#define SceneItem_AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)	\
    (This)->lpVtbl -> AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)

#define SceneItem_get_Envelopes(This,out_ppMat)	\
    (This)->lpVtbl -> get_Envelopes(This,out_ppMat)

#define SceneItem_ApplyEnvelope(This,in_pDeformers,in_eDeformOnBranch,in_eEnvelopeOnBranch,out_ppEnv)	\
    (This)->lpVtbl -> ApplyEnvelope(This,in_pDeformers,in_eDeformOnBranch,in_eEnvelopeOnBranch,out_ppEnv)

#define SceneItem_AddCustomProperty(This,in_Name,in_Branch,out_ppProp)	\
    (This)->lpVtbl -> AddCustomProperty(This,in_Name,in_Branch,out_ppProp)

#define SceneItem_SetMaterial(This,in_pMaterial)	\
    (This)->lpVtbl -> SetMaterial(This,in_pMaterial)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SceneItem_get_Properties_Proxy( 
    SceneItem * This,
    /* [retval][out] */ PropertyCollection **out_ppProps);


void __RPC_STUB SceneItem_get_Properties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SceneItem_get_Material_Proxy( 
    SceneItem * This,
    /* [retval][out] */ Material **out_ppMat);


void __RPC_STUB SceneItem_get_Material_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SceneItem_get_LocalProperties_Proxy( 
    SceneItem * This,
    /* [retval][out] */ PropertyCollection **out_ppProps);


void __RPC_STUB SceneItem_get_LocalProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SceneItem_AddMaterial_Proxy( 
    SceneItem * This,
    /* [optional][in] */ VARIANT in_Preset,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Material **out_ppMat);


void __RPC_STUB SceneItem_AddMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SceneItem_AddProperty_Proxy( 
    SceneItem * This,
    /* [in] */ VARIANT in_Preset,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Property **out_ppProp);


void __RPC_STUB SceneItem_AddProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SceneItem_get_Envelopes_Proxy( 
    SceneItem * This,
    /* [retval][out] */ EnvelopeCollection **out_ppMat);


void __RPC_STUB SceneItem_get_Envelopes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SceneItem_ApplyEnvelope_Proxy( 
    SceneItem * This,
    /* [defaultvalue][in] */ IDispatch *in_pDeformers,
    /* [defaultvalue][in] */ siBranchFlag in_eDeformOnBranch,
    /* [defaultvalue][in] */ siBranchFlag in_eEnvelopeOnBranch,
    /* [retval][out] */ Envelope **out_ppEnv);


void __RPC_STUB SceneItem_ApplyEnvelope_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SceneItem_AddCustomProperty_Proxy( 
    SceneItem * This,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
    /* [retval][out] */ CustomProperty **out_ppProp);


void __RPC_STUB SceneItem_AddCustomProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SceneItem_SetMaterial_Proxy( 
    SceneItem * This,
    /* [in] */ IDispatch *in_pMaterial);


void __RPC_STUB SceneItem_SetMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SceneItem_INTERFACE_DEFINED__ */


#ifndef __X3DObject_INTERFACE_DEFINED__
#define __X3DObject_INTERFACE_DEFINED__

/* interface X3DObject */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_X3DObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3EFDC2B1-F4F7-11d3-ACCE-0090275802BF")
    X3DObject : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Children( 
            /* [retval][out] */ X3DObjectCollection **__MIDL_0038) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Primitives( 
            /* [retval][out] */ PrimitiveCollection **__MIDL_0039) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActivePrimitive( 
            /* [retval][out] */ Primitive **__MIDL_0040) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Models( 
            /* [defaultvalue][in] */ VARIANT_BOOL in_bMode,
            /* [retval][out] */ ModelCollection **__MIDL_0041) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Kinematics( 
            /* [retval][out] */ Kinematics **__MIDL_0042) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPrimitive( 
            /* [in] */ VARIANT in_primPreset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddGeometry( 
            /* [in] */ VARIANT in_geomPreset,
            /* [optional][in] */ VARIANT in_convPreset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddModel( 
            /* [optional][in] */ VARIANT in_inputObjects,
            /* [optional][in] */ VARIANT in_strName,
            /* [retval][out] */ Model **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLattice( 
            /* [in] */ VARIANT in_lattPreset,
            /* [defaultvalue][in] */ IDispatch *in_inputObjects,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddControl( 
            /* [in] */ VARIANT in_ctrlPreset,
            /* [defaultvalue][in] */ IDispatch *in_inputObjects,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCameraRig( 
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ CameraRig **out_ppRig) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLightRig( 
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ LightRig **out_ppRig) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddChild( 
            /* [in] */ IDispatch *in_collection) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveChild( 
            /* [in] */ IDispatch *in_collection) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveFromParent( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddNull( 
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ Null **out_ppObj) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__Obsolete( 
            /* [retval][out] */ X3DObject **__MIDL_0043) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add2DChain( 
            /* [optional][in] */ VARIANT in_rootPos,
            /* [optional][in] */ VARIANT in_effPos,
            /* [optional][in] */ VARIANT in_normalPlane,
            /* [defaultvalue][in] */ si2DChainAlignType in_alignType,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ChainRoot **out_ppRoot) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add3DChain( 
            /* [optional][in] */ VARIANT in_rootPos,
            /* [optional][in] */ VARIANT in_effPos,
            /* [optional][in] */ VARIANT in_normalPlane,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ChainRoot **out_ppRoot) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShapeAnimatedClusters( 
            /* [retval][out] */ ClusterCollection **__MIDL_0044) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindChild( 
            /* [defaultvalue][in] */ VARIANT in_varName,
            /* [defaultvalue][in] */ BSTR in_pbstrType,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRecursive,
            /* [retval][out] */ X3DObject **out_pFoundObject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindChildren( 
            /* [defaultvalue][in] */ VARIANT in_varName,
            /* [defaultvalue][in] */ BSTR in_pbstrType,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRecursive,
            /* [retval][out] */ X3DObjectCollection **out_pFoundObjects) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCamera( 
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ Camera **out_ppCamera) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddLight( 
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAddInterest,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ Light **out_ppLight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPolygonMesh( 
            /* [optional][in] */ VARIANT in_vertices,
            /* [optional][in] */ VARIANT in_polygonData,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppPolygonMesh) = 0;
        
        virtual /* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE AddNurbsSurfaceMesh( 
            /* [optional][in] */ VARIANT in_Count,
            /* [optional][in] */ VARIANT in_ControlPoints,
            /* [optional][in] */ VARIANT in_uKnots,
            /* [optional][in] */ VARIANT in_vKnots,
            /* [optional][in] */ VARIANT in_bUClosed,
            /* [optional][in] */ VARIANT in_bVClosed,
            /* [optional][in] */ VARIANT in_lUDegree,
            /* [optional][in] */ VARIANT in_lVDegree,
            /* [optional][in] */ VARIANT in_uParameterization,
            /* [optional][in] */ VARIANT in_vParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddNurbsSurface( 
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsaUKnots,
            /* [optional][in] */ VARIANT in_vsaVKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
            /* [defaultvalue][in] */ LONG in_lUDegree,
            /* [defaultvalue][in] */ LONG in_lVDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_uParameterization,
            /* [defaultvalue][in] */ siKnotParameterization in_vParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh) = 0;
        
        virtual /* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE AddNurbsCurveList( 
            /* [optional][in] */ VARIANT in_vsalCount,
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsabClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsCurveList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddNurbsCurve( 
            /* [optional][in] */ VARIANT in_ControlPoints,
            /* [optional][in] */ VARIANT in_Knots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bClosed,
            /* [defaultvalue][in] */ LONG in_lDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_Parameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsCurveList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HasStaticKinematicState( 
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetStaticKinematicState( 
            /* [retval][out] */ StaticKinematicState **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddNurbsSurfaceMesh2( 
            /* [optional][in] */ VARIANT in_Count,
            /* [optional][in] */ VARIANT in_ControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbUControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbVControlPoints,
            /* [optional][in] */ VARIANT in_uKnots,
            /* [optional][in] */ VARIANT in_vsaNbUKnots,
            /* [optional][in] */ VARIANT in_vKnots,
            /* [optional][in] */ VARIANT in_vsaNbVKnots,
            /* [optional][in] */ VARIANT in_bUClosed,
            /* [optional][in] */ VARIANT in_bVClosed,
            /* [optional][in] */ VARIANT in_lUDegree,
            /* [optional][in] */ VARIANT in_lVDegree,
            /* [optional][in] */ VARIANT in_uParameterization,
            /* [optional][in] */ VARIANT in_vParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddNurbsCurveList2( 
            /* [optional][in] */ VARIANT in_vsalCount,
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsaNbKnots,
            /* [optional][in] */ VARIANT in_vsabClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsCurveList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddFxTree( 
            /* [retval][out] */ FxTree **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddParticleCloud( 
            /* [defaultvalue][in] */ IDispatch *in_inputParTypes,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppParticleCloud) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsNodeAnimated( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0045,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0046,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0047) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NodeAnimatedParameters( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0048,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0049,
            /* [retval][out] */ ParameterCollection **__MIDL_0050) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Materials( 
            /* [retval][out] */ MaterialCollection **__MIDL_0051) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LocalTranslation( 
            /* [retval][out] */ IDispatch **__MIDL_0052) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LocalTranslation( 
            /* [in] */ IDispatch *__MIDL_0053) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LocalScaling( 
            /* [retval][out] */ IDispatch **__MIDL_0054) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LocalScaling( 
            /* [in] */ IDispatch *__MIDL_0055) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LocalRotation( 
            /* [retval][out] */ IDispatch **__MIDL_0056) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LocalRotation( 
            /* [in] */ IDispatch *__MIDL_0057) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct X3DObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            X3DObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            X3DObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            X3DObject * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            X3DObject * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            X3DObject * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            X3DObject * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            X3DObject * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Children )( 
            X3DObject * This,
            /* [retval][out] */ X3DObjectCollection **__MIDL_0038);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Primitives )( 
            X3DObject * This,
            /* [retval][out] */ PrimitiveCollection **__MIDL_0039);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActivePrimitive )( 
            X3DObject * This,
            /* [retval][out] */ Primitive **__MIDL_0040);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Models )( 
            X3DObject * This,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bMode,
            /* [retval][out] */ ModelCollection **__MIDL_0041);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Kinematics )( 
            X3DObject * This,
            /* [retval][out] */ Kinematics **__MIDL_0042);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPrimitive )( 
            X3DObject * This,
            /* [in] */ VARIANT in_primPreset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddGeometry )( 
            X3DObject * This,
            /* [in] */ VARIANT in_geomPreset,
            /* [optional][in] */ VARIANT in_convPreset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddModel )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_inputObjects,
            /* [optional][in] */ VARIANT in_strName,
            /* [retval][out] */ Model **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLattice )( 
            X3DObject * This,
            /* [in] */ VARIANT in_lattPreset,
            /* [defaultvalue][in] */ IDispatch *in_inputObjects,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddControl )( 
            X3DObject * This,
            /* [in] */ VARIANT in_ctrlPreset,
            /* [defaultvalue][in] */ IDispatch *in_inputObjects,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ X3DObject **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCameraRig )( 
            X3DObject * This,
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ CameraRig **out_ppRig);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLightRig )( 
            X3DObject * This,
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ LightRig **out_ppRig);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddChild )( 
            X3DObject * This,
            /* [in] */ IDispatch *in_collection);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveChild )( 
            X3DObject * This,
            /* [in] */ IDispatch *in_collection);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveFromParent )( 
            X3DObject * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddNull )( 
            X3DObject * This,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ Null **out_ppObj);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__Obsolete )( 
            X3DObject * This,
            /* [retval][out] */ X3DObject **__MIDL_0043);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add2DChain )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_rootPos,
            /* [optional][in] */ VARIANT in_effPos,
            /* [optional][in] */ VARIANT in_normalPlane,
            /* [defaultvalue][in] */ si2DChainAlignType in_alignType,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ChainRoot **out_ppRoot);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add3DChain )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_rootPos,
            /* [optional][in] */ VARIANT in_effPos,
            /* [optional][in] */ VARIANT in_normalPlane,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ChainRoot **out_ppRoot);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShapeAnimatedClusters )( 
            X3DObject * This,
            /* [retval][out] */ ClusterCollection **__MIDL_0044);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindChild )( 
            X3DObject * This,
            /* [defaultvalue][in] */ VARIANT in_varName,
            /* [defaultvalue][in] */ BSTR in_pbstrType,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRecursive,
            /* [retval][out] */ X3DObject **out_pFoundObject);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindChildren )( 
            X3DObject * This,
            /* [defaultvalue][in] */ VARIANT in_varName,
            /* [defaultvalue][in] */ BSTR in_pbstrType,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRecursive,
            /* [retval][out] */ X3DObjectCollection **out_pFoundObjects);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCamera )( 
            X3DObject * This,
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ Camera **out_ppCamera);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddLight )( 
            X3DObject * This,
            /* [in] */ VARIANT in_preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAddInterest,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [retval][out] */ Light **out_ppLight);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPolygonMesh )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_vertices,
            /* [optional][in] */ VARIANT in_polygonData,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppPolygonMesh);
        
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *AddNurbsSurfaceMesh )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_Count,
            /* [optional][in] */ VARIANT in_ControlPoints,
            /* [optional][in] */ VARIANT in_uKnots,
            /* [optional][in] */ VARIANT in_vKnots,
            /* [optional][in] */ VARIANT in_bUClosed,
            /* [optional][in] */ VARIANT in_bVClosed,
            /* [optional][in] */ VARIANT in_lUDegree,
            /* [optional][in] */ VARIANT in_lVDegree,
            /* [optional][in] */ VARIANT in_uParameterization,
            /* [optional][in] */ VARIANT in_vParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddNurbsSurface )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsaUKnots,
            /* [optional][in] */ VARIANT in_vsaVKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
            /* [defaultvalue][in] */ LONG in_lUDegree,
            /* [defaultvalue][in] */ LONG in_lVDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_uParameterization,
            /* [defaultvalue][in] */ siKnotParameterization in_vParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh);
        
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *AddNurbsCurveList )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_vsalCount,
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsabClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsCurveList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddNurbsCurve )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_ControlPoints,
            /* [optional][in] */ VARIANT in_Knots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bClosed,
            /* [defaultvalue][in] */ LONG in_lDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_Parameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsCurveList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HasStaticKinematicState )( 
            X3DObject * This,
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetStaticKinematicState )( 
            X3DObject * This,
            /* [retval][out] */ StaticKinematicState **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddNurbsSurfaceMesh2 )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_Count,
            /* [optional][in] */ VARIANT in_ControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbUControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbVControlPoints,
            /* [optional][in] */ VARIANT in_uKnots,
            /* [optional][in] */ VARIANT in_vsaNbUKnots,
            /* [optional][in] */ VARIANT in_vKnots,
            /* [optional][in] */ VARIANT in_vsaNbVKnots,
            /* [optional][in] */ VARIANT in_bUClosed,
            /* [optional][in] */ VARIANT in_bVClosed,
            /* [optional][in] */ VARIANT in_lUDegree,
            /* [optional][in] */ VARIANT in_lVDegree,
            /* [optional][in] */ VARIANT in_uParameterization,
            /* [optional][in] */ VARIANT in_vParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddNurbsCurveList2 )( 
            X3DObject * This,
            /* [optional][in] */ VARIANT in_vsalCount,
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsaNbKnots,
            /* [optional][in] */ VARIANT in_vsabClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppNurbsCurveList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddFxTree )( 
            X3DObject * This,
            /* [retval][out] */ FxTree **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddParticleCloud )( 
            X3DObject * This,
            /* [defaultvalue][in] */ IDispatch *in_inputParTypes,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ X3DObject **out_ppParticleCloud);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsNodeAnimated )( 
            X3DObject * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0045,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0046,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0047);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NodeAnimatedParameters )( 
            X3DObject * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0048,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0049,
            /* [retval][out] */ ParameterCollection **__MIDL_0050);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Materials )( 
            X3DObject * This,
            /* [retval][out] */ MaterialCollection **__MIDL_0051);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LocalTranslation )( 
            X3DObject * This,
            /* [retval][out] */ IDispatch **__MIDL_0052);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LocalTranslation )( 
            X3DObject * This,
            /* [in] */ IDispatch *__MIDL_0053);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LocalScaling )( 
            X3DObject * This,
            /* [retval][out] */ IDispatch **__MIDL_0054);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LocalScaling )( 
            X3DObject * This,
            /* [in] */ IDispatch *__MIDL_0055);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LocalRotation )( 
            X3DObject * This,
            /* [retval][out] */ IDispatch **__MIDL_0056);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LocalRotation )( 
            X3DObject * This,
            /* [in] */ IDispatch *__MIDL_0057);
        
        END_INTERFACE
    } X3DObjectVtbl;

    interface X3DObject
    {
        CONST_VTBL struct X3DObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define X3DObject_get_Children(This,__MIDL_0038)	\
    (This)->lpVtbl -> get_Children(This,__MIDL_0038)

#define X3DObject_get_Primitives(This,__MIDL_0039)	\
    (This)->lpVtbl -> get_Primitives(This,__MIDL_0039)

#define X3DObject_get_ActivePrimitive(This,__MIDL_0040)	\
    (This)->lpVtbl -> get_ActivePrimitive(This,__MIDL_0040)

#define X3DObject_get_Models(This,in_bMode,__MIDL_0041)	\
    (This)->lpVtbl -> get_Models(This,in_bMode,__MIDL_0041)

#define X3DObject_get_Kinematics(This,__MIDL_0042)	\
    (This)->lpVtbl -> get_Kinematics(This,__MIDL_0042)

#define X3DObject_AddPrimitive(This,in_primPreset,in_name,out_ppObj)	\
    (This)->lpVtbl -> AddPrimitive(This,in_primPreset,in_name,out_ppObj)

#define X3DObject_AddGeometry(This,in_geomPreset,in_convPreset,in_name,out_ppObj)	\
    (This)->lpVtbl -> AddGeometry(This,in_geomPreset,in_convPreset,in_name,out_ppObj)

#define X3DObject_AddModel(This,in_inputObjects,in_strName,out_ppObj)	\
    (This)->lpVtbl -> AddModel(This,in_inputObjects,in_strName,out_ppObj)

#define X3DObject_AddLattice(This,in_lattPreset,in_inputObjects,in_name,out_ppObj)	\
    (This)->lpVtbl -> AddLattice(This,in_lattPreset,in_inputObjects,in_name,out_ppObj)

#define X3DObject_AddControl(This,in_ctrlPreset,in_inputObjects,in_name,out_ppObj)	\
    (This)->lpVtbl -> AddControl(This,in_ctrlPreset,in_inputObjects,in_name,out_ppObj)

#define X3DObject_AddCameraRig(This,in_preset,in_name,out_ppRig)	\
    (This)->lpVtbl -> AddCameraRig(This,in_preset,in_name,out_ppRig)

#define X3DObject_AddLightRig(This,in_preset,in_name,out_ppRig)	\
    (This)->lpVtbl -> AddLightRig(This,in_preset,in_name,out_ppRig)

#define X3DObject_AddChild(This,in_collection)	\
    (This)->lpVtbl -> AddChild(This,in_collection)

#define X3DObject_RemoveChild(This,in_collection)	\
    (This)->lpVtbl -> RemoveChild(This,in_collection)

#define X3DObject_RemoveFromParent(This)	\
    (This)->lpVtbl -> RemoveFromParent(This)

#define X3DObject_AddNull(This,in_name,out_ppObj)	\
    (This)->lpVtbl -> AddNull(This,in_name,out_ppObj)

#define X3DObject_get__Obsolete(This,__MIDL_0043)	\
    (This)->lpVtbl -> get__Obsolete(This,__MIDL_0043)

#define X3DObject_Add2DChain(This,in_rootPos,in_effPos,in_normalPlane,in_alignType,in_bstrName,out_ppRoot)	\
    (This)->lpVtbl -> Add2DChain(This,in_rootPos,in_effPos,in_normalPlane,in_alignType,in_bstrName,out_ppRoot)

#define X3DObject_Add3DChain(This,in_rootPos,in_effPos,in_normalPlane,in_bstrName,out_ppRoot)	\
    (This)->lpVtbl -> Add3DChain(This,in_rootPos,in_effPos,in_normalPlane,in_bstrName,out_ppRoot)

#define X3DObject_ShapeAnimatedClusters(This,__MIDL_0044)	\
    (This)->lpVtbl -> ShapeAnimatedClusters(This,__MIDL_0044)

#define X3DObject_FindChild(This,in_varName,in_pbstrType,in_famArray,in_bRecursive,out_pFoundObject)	\
    (This)->lpVtbl -> FindChild(This,in_varName,in_pbstrType,in_famArray,in_bRecursive,out_pFoundObject)

#define X3DObject_FindChildren(This,in_varName,in_pbstrType,in_famArray,in_bRecursive,out_pFoundObjects)	\
    (This)->lpVtbl -> FindChildren(This,in_varName,in_pbstrType,in_famArray,in_bRecursive,out_pFoundObjects)

#define X3DObject_AddCamera(This,in_preset,in_name,out_ppCamera)	\
    (This)->lpVtbl -> AddCamera(This,in_preset,in_name,out_ppCamera)

#define X3DObject_AddLight(This,in_preset,in_bAddInterest,in_name,out_ppLight)	\
    (This)->lpVtbl -> AddLight(This,in_preset,in_bAddInterest,in_name,out_ppLight)

#define X3DObject_AddPolygonMesh(This,in_vertices,in_polygonData,in_bstrName,out_ppPolygonMesh)	\
    (This)->lpVtbl -> AddPolygonMesh(This,in_vertices,in_polygonData,in_bstrName,out_ppPolygonMesh)

#define X3DObject_AddNurbsSurfaceMesh(This,in_Count,in_ControlPoints,in_uKnots,in_vKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_uParameterization,in_vParameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsSurfaceMesh)	\
    (This)->lpVtbl -> AddNurbsSurfaceMesh(This,in_Count,in_ControlPoints,in_uKnots,in_vKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_uParameterization,in_vParameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsSurfaceMesh)

#define X3DObject_AddNurbsSurface(This,in_vsaControlPoints,in_vsaUKnots,in_vsaVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_uParameterization,in_vParameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsSurfaceMesh)	\
    (This)->lpVtbl -> AddNurbsSurface(This,in_vsaControlPoints,in_vsaUKnots,in_vsaVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_uParameterization,in_vParameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsSurfaceMesh)

#define X3DObject_AddNurbsCurveList(This,in_vsalCount,in_vsaControlPoints,in_vsadKnots,in_vsabClosed,in_vsalDegree,in_vsalParam,in_eNurbsFormat,in_bstrName,out_ppNurbsCurveList)	\
    (This)->lpVtbl -> AddNurbsCurveList(This,in_vsalCount,in_vsaControlPoints,in_vsadKnots,in_vsabClosed,in_vsalDegree,in_vsalParam,in_eNurbsFormat,in_bstrName,out_ppNurbsCurveList)

#define X3DObject_AddNurbsCurve(This,in_ControlPoints,in_Knots,in_bClosed,in_lDegree,in_Parameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsCurveList)	\
    (This)->lpVtbl -> AddNurbsCurve(This,in_ControlPoints,in_Knots,in_bClosed,in_lDegree,in_Parameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsCurveList)

#define X3DObject_HasStaticKinematicState(This,out_pRetVal)	\
    (This)->lpVtbl -> HasStaticKinematicState(This,out_pRetVal)

#define X3DObject_GetStaticKinematicState(This,out_ppRetVal)	\
    (This)->lpVtbl -> GetStaticKinematicState(This,out_ppRetVal)

#define X3DObject_AddNurbsSurfaceMesh2(This,in_Count,in_ControlPoints,in_vsaNbUControlPoints,in_vsaNbVControlPoints,in_uKnots,in_vsaNbUKnots,in_vKnots,in_vsaNbVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_uParameterization,in_vParameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsSurfaceMesh)	\
    (This)->lpVtbl -> AddNurbsSurfaceMesh2(This,in_Count,in_ControlPoints,in_vsaNbUControlPoints,in_vsaNbVControlPoints,in_uKnots,in_vsaNbUKnots,in_vKnots,in_vsaNbVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_uParameterization,in_vParameterization,in_eNurbsFormat,in_bstrName,out_ppNurbsSurfaceMesh)

#define X3DObject_AddNurbsCurveList2(This,in_vsalCount,in_vsaControlPoints,in_vsaNbControlPoints,in_vsadKnots,in_vsaNbKnots,in_vsabClosed,in_vsalDegree,in_vsalParam,in_eNurbsFormat,in_bstrName,out_ppNurbsCurveList)	\
    (This)->lpVtbl -> AddNurbsCurveList2(This,in_vsalCount,in_vsaControlPoints,in_vsaNbControlPoints,in_vsadKnots,in_vsaNbKnots,in_vsabClosed,in_vsalDegree,in_vsalParam,in_eNurbsFormat,in_bstrName,out_ppNurbsCurveList)

#define X3DObject_AddFxTree(This,out_ppObj)	\
    (This)->lpVtbl -> AddFxTree(This,out_ppObj)

#define X3DObject_AddParticleCloud(This,in_inputParTypes,in_bstrName,out_ppParticleCloud)	\
    (This)->lpVtbl -> AddParticleCloud(This,in_inputParTypes,in_bstrName,out_ppParticleCloud)

#define X3DObject_IsNodeAnimated(This,__MIDL_0045,__MIDL_0046,__MIDL_0047)	\
    (This)->lpVtbl -> IsNodeAnimated(This,__MIDL_0045,__MIDL_0046,__MIDL_0047)

#define X3DObject_NodeAnimatedParameters(This,__MIDL_0048,__MIDL_0049,__MIDL_0050)	\
    (This)->lpVtbl -> NodeAnimatedParameters(This,__MIDL_0048,__MIDL_0049,__MIDL_0050)

#define X3DObject_get_Materials(This,__MIDL_0051)	\
    (This)->lpVtbl -> get_Materials(This,__MIDL_0051)

#define X3DObject_get_LocalTranslation(This,__MIDL_0052)	\
    (This)->lpVtbl -> get_LocalTranslation(This,__MIDL_0052)

#define X3DObject_put_LocalTranslation(This,__MIDL_0053)	\
    (This)->lpVtbl -> put_LocalTranslation(This,__MIDL_0053)

#define X3DObject_get_LocalScaling(This,__MIDL_0054)	\
    (This)->lpVtbl -> get_LocalScaling(This,__MIDL_0054)

#define X3DObject_put_LocalScaling(This,__MIDL_0055)	\
    (This)->lpVtbl -> put_LocalScaling(This,__MIDL_0055)

#define X3DObject_get_LocalRotation(This,__MIDL_0056)	\
    (This)->lpVtbl -> get_LocalRotation(This,__MIDL_0056)

#define X3DObject_put_LocalRotation(This,__MIDL_0057)	\
    (This)->lpVtbl -> put_LocalRotation(This,__MIDL_0057)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_Children_Proxy( 
    X3DObject * This,
    /* [retval][out] */ X3DObjectCollection **__MIDL_0038);


void __RPC_STUB X3DObject_get_Children_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_Primitives_Proxy( 
    X3DObject * This,
    /* [retval][out] */ PrimitiveCollection **__MIDL_0039);


void __RPC_STUB X3DObject_get_Primitives_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_ActivePrimitive_Proxy( 
    X3DObject * This,
    /* [retval][out] */ Primitive **__MIDL_0040);


void __RPC_STUB X3DObject_get_ActivePrimitive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_Models_Proxy( 
    X3DObject * This,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bMode,
    /* [retval][out] */ ModelCollection **__MIDL_0041);


void __RPC_STUB X3DObject_get_Models_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_Kinematics_Proxy( 
    X3DObject * This,
    /* [retval][out] */ Kinematics **__MIDL_0042);


void __RPC_STUB X3DObject_get_Kinematics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddPrimitive_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_primPreset,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ X3DObject **out_ppObj);


void __RPC_STUB X3DObject_AddPrimitive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddGeometry_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_geomPreset,
    /* [optional][in] */ VARIANT in_convPreset,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ X3DObject **out_ppObj);


void __RPC_STUB X3DObject_AddGeometry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddModel_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_inputObjects,
    /* [optional][in] */ VARIANT in_strName,
    /* [retval][out] */ Model **out_ppObj);


void __RPC_STUB X3DObject_AddModel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddLattice_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_lattPreset,
    /* [defaultvalue][in] */ IDispatch *in_inputObjects,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ X3DObject **out_ppObj);


void __RPC_STUB X3DObject_AddLattice_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddControl_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_ctrlPreset,
    /* [defaultvalue][in] */ IDispatch *in_inputObjects,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ X3DObject **out_ppObj);


void __RPC_STUB X3DObject_AddControl_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddCameraRig_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_preset,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ CameraRig **out_ppRig);


void __RPC_STUB X3DObject_AddCameraRig_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddLightRig_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_preset,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ LightRig **out_ppRig);


void __RPC_STUB X3DObject_AddLightRig_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddChild_Proxy( 
    X3DObject * This,
    /* [in] */ IDispatch *in_collection);


void __RPC_STUB X3DObject_AddChild_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_RemoveChild_Proxy( 
    X3DObject * This,
    /* [in] */ IDispatch *in_collection);


void __RPC_STUB X3DObject_RemoveChild_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_RemoveFromParent_Proxy( 
    X3DObject * This);


void __RPC_STUB X3DObject_RemoveFromParent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddNull_Proxy( 
    X3DObject * This,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ Null **out_ppObj);


void __RPC_STUB X3DObject_AddNull_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get__Obsolete_Proxy( 
    X3DObject * This,
    /* [retval][out] */ X3DObject **__MIDL_0043);


void __RPC_STUB X3DObject_get__Obsolete_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_Add2DChain_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_rootPos,
    /* [optional][in] */ VARIANT in_effPos,
    /* [optional][in] */ VARIANT in_normalPlane,
    /* [defaultvalue][in] */ si2DChainAlignType in_alignType,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ ChainRoot **out_ppRoot);


void __RPC_STUB X3DObject_Add2DChain_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_Add3DChain_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_rootPos,
    /* [optional][in] */ VARIANT in_effPos,
    /* [optional][in] */ VARIANT in_normalPlane,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ ChainRoot **out_ppRoot);


void __RPC_STUB X3DObject_Add3DChain_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_ShapeAnimatedClusters_Proxy( 
    X3DObject * This,
    /* [retval][out] */ ClusterCollection **__MIDL_0044);


void __RPC_STUB X3DObject_ShapeAnimatedClusters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_FindChild_Proxy( 
    X3DObject * This,
    /* [defaultvalue][in] */ VARIANT in_varName,
    /* [defaultvalue][in] */ BSTR in_pbstrType,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bRecursive,
    /* [retval][out] */ X3DObject **out_pFoundObject);


void __RPC_STUB X3DObject_FindChild_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_FindChildren_Proxy( 
    X3DObject * This,
    /* [defaultvalue][in] */ VARIANT in_varName,
    /* [defaultvalue][in] */ BSTR in_pbstrType,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bRecursive,
    /* [retval][out] */ X3DObjectCollection **out_pFoundObjects);


void __RPC_STUB X3DObject_FindChildren_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddCamera_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_preset,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ Camera **out_ppCamera);


void __RPC_STUB X3DObject_AddCamera_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddLight_Proxy( 
    X3DObject * This,
    /* [in] */ VARIANT in_preset,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bAddInterest,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [retval][out] */ Light **out_ppLight);


void __RPC_STUB X3DObject_AddLight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddPolygonMesh_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_vertices,
    /* [optional][in] */ VARIANT in_polygonData,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppPolygonMesh);


void __RPC_STUB X3DObject_AddPolygonMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddNurbsSurfaceMesh_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_Count,
    /* [optional][in] */ VARIANT in_ControlPoints,
    /* [optional][in] */ VARIANT in_uKnots,
    /* [optional][in] */ VARIANT in_vKnots,
    /* [optional][in] */ VARIANT in_bUClosed,
    /* [optional][in] */ VARIANT in_bVClosed,
    /* [optional][in] */ VARIANT in_lUDegree,
    /* [optional][in] */ VARIANT in_lVDegree,
    /* [optional][in] */ VARIANT in_uParameterization,
    /* [optional][in] */ VARIANT in_vParameterization,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh);


void __RPC_STUB X3DObject_AddNurbsSurfaceMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddNurbsSurface_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsaUKnots,
    /* [optional][in] */ VARIANT in_vsaVKnots,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
    /* [defaultvalue][in] */ LONG in_lUDegree,
    /* [defaultvalue][in] */ LONG in_lVDegree,
    /* [defaultvalue][in] */ siKnotParameterization in_uParameterization,
    /* [defaultvalue][in] */ siKnotParameterization in_vParameterization,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh);


void __RPC_STUB X3DObject_AddNurbsSurface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddNurbsCurveList_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_vsalCount,
    /* [optional][in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsadKnots,
    /* [optional][in] */ VARIANT in_vsabClosed,
    /* [optional][in] */ VARIANT in_vsalDegree,
    /* [optional][in] */ VARIANT in_vsalParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppNurbsCurveList);


void __RPC_STUB X3DObject_AddNurbsCurveList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddNurbsCurve_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_ControlPoints,
    /* [optional][in] */ VARIANT in_Knots,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bClosed,
    /* [defaultvalue][in] */ LONG in_lDegree,
    /* [defaultvalue][in] */ siKnotParameterization in_Parameterization,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppNurbsCurveList);


void __RPC_STUB X3DObject_AddNurbsCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_HasStaticKinematicState_Proxy( 
    X3DObject * This,
    /* [retval][out] */ VARIANT_BOOL *out_pRetVal);


void __RPC_STUB X3DObject_HasStaticKinematicState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_GetStaticKinematicState_Proxy( 
    X3DObject * This,
    /* [retval][out] */ StaticKinematicState **out_ppRetVal);


void __RPC_STUB X3DObject_GetStaticKinematicState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddNurbsSurfaceMesh2_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_Count,
    /* [optional][in] */ VARIANT in_ControlPoints,
    /* [optional][in] */ VARIANT in_vsaNbUControlPoints,
    /* [optional][in] */ VARIANT in_vsaNbVControlPoints,
    /* [optional][in] */ VARIANT in_uKnots,
    /* [optional][in] */ VARIANT in_vsaNbUKnots,
    /* [optional][in] */ VARIANT in_vKnots,
    /* [optional][in] */ VARIANT in_vsaNbVKnots,
    /* [optional][in] */ VARIANT in_bUClosed,
    /* [optional][in] */ VARIANT in_bVClosed,
    /* [optional][in] */ VARIANT in_lUDegree,
    /* [optional][in] */ VARIANT in_lVDegree,
    /* [optional][in] */ VARIANT in_uParameterization,
    /* [optional][in] */ VARIANT in_vParameterization,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppNurbsSurfaceMesh);


void __RPC_STUB X3DObject_AddNurbsSurfaceMesh2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddNurbsCurveList2_Proxy( 
    X3DObject * This,
    /* [optional][in] */ VARIANT in_vsalCount,
    /* [optional][in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsaNbControlPoints,
    /* [optional][in] */ VARIANT in_vsadKnots,
    /* [optional][in] */ VARIANT in_vsaNbKnots,
    /* [optional][in] */ VARIANT in_vsabClosed,
    /* [optional][in] */ VARIANT in_vsalDegree,
    /* [optional][in] */ VARIANT in_vsalParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppNurbsCurveList);


void __RPC_STUB X3DObject_AddNurbsCurveList2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddFxTree_Proxy( 
    X3DObject * This,
    /* [retval][out] */ FxTree **out_ppObj);


void __RPC_STUB X3DObject_AddFxTree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_AddParticleCloud_Proxy( 
    X3DObject * This,
    /* [defaultvalue][in] */ IDispatch *in_inputParTypes,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ X3DObject **out_ppParticleCloud);


void __RPC_STUB X3DObject_AddParticleCloud_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_IsNodeAnimated_Proxy( 
    X3DObject * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0045,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0046,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0047);


void __RPC_STUB X3DObject_IsNodeAnimated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE X3DObject_NodeAnimatedParameters_Proxy( 
    X3DObject * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0048,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0049,
    /* [retval][out] */ ParameterCollection **__MIDL_0050);


void __RPC_STUB X3DObject_NodeAnimatedParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_Materials_Proxy( 
    X3DObject * This,
    /* [retval][out] */ MaterialCollection **__MIDL_0051);


void __RPC_STUB X3DObject_get_Materials_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_LocalTranslation_Proxy( 
    X3DObject * This,
    /* [retval][out] */ IDispatch **__MIDL_0052);


void __RPC_STUB X3DObject_get_LocalTranslation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE X3DObject_put_LocalTranslation_Proxy( 
    X3DObject * This,
    /* [in] */ IDispatch *__MIDL_0053);


void __RPC_STUB X3DObject_put_LocalTranslation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_LocalScaling_Proxy( 
    X3DObject * This,
    /* [retval][out] */ IDispatch **__MIDL_0054);


void __RPC_STUB X3DObject_get_LocalScaling_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE X3DObject_put_LocalScaling_Proxy( 
    X3DObject * This,
    /* [in] */ IDispatch *__MIDL_0055);


void __RPC_STUB X3DObject_put_LocalScaling_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE X3DObject_get_LocalRotation_Proxy( 
    X3DObject * This,
    /* [retval][out] */ IDispatch **__MIDL_0056);


void __RPC_STUB X3DObject_get_LocalRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE X3DObject_put_LocalRotation_Proxy( 
    X3DObject * This,
    /* [in] */ IDispatch *__MIDL_0057);


void __RPC_STUB X3DObject_put_LocalRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __X3DObject_INTERFACE_DEFINED__ */


#ifndef __Primitive_INTERFACE_DEFINED__
#define __Primitive_INTERFACE_DEFINED__

/* interface Primitive */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Primitive;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1486EED1-33E2-11d4-ACD9-0090275802BF")
    Primitive : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Geometry( 
            /* [optional][in] */ VARIANT __MIDL_0188,
            /* [retval][out] */ Geometry **__MIDL_0189) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ConstructionHistory( 
            /* [retval][out] */ ConstructionHistory **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGeometry( 
            /* [optional][in] */ VARIANT __MIDL_0190,
            /* [defaultvalue][in] */ siConstructionMode in_mode,
            /* [retval][out] */ Geometry **out_ppGeometry) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PrimitiveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Primitive * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Primitive * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Primitive * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Primitive * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Primitive * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Primitive * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Primitive * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Geometry )( 
            Primitive * This,
            /* [optional][in] */ VARIANT __MIDL_0188,
            /* [retval][out] */ Geometry **__MIDL_0189);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ConstructionHistory )( 
            Primitive * This,
            /* [retval][out] */ ConstructionHistory **pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGeometry )( 
            Primitive * This,
            /* [optional][in] */ VARIANT __MIDL_0190,
            /* [defaultvalue][in] */ siConstructionMode in_mode,
            /* [retval][out] */ Geometry **out_ppGeometry);
        
        END_INTERFACE
    } PrimitiveVtbl;

    interface Primitive
    {
        CONST_VTBL struct PrimitiveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Primitive_get_Geometry(This,__MIDL_0188,__MIDL_0189)	\
    (This)->lpVtbl -> get_Geometry(This,__MIDL_0188,__MIDL_0189)

#define Primitive_get_ConstructionHistory(This,pVal)	\
    (This)->lpVtbl -> get_ConstructionHistory(This,pVal)

#define Primitive_GetGeometry(This,__MIDL_0190,in_mode,out_ppGeometry)	\
    (This)->lpVtbl -> GetGeometry(This,__MIDL_0190,in_mode,out_ppGeometry)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Primitive_get_Geometry_Proxy( 
    Primitive * This,
    /* [optional][in] */ VARIANT __MIDL_0188,
    /* [retval][out] */ Geometry **__MIDL_0189);


void __RPC_STUB Primitive_get_Geometry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Primitive_get_ConstructionHistory_Proxy( 
    Primitive * This,
    /* [retval][out] */ ConstructionHistory **pVal);


void __RPC_STUB Primitive_get_ConstructionHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Primitive_GetGeometry_Proxy( 
    Primitive * This,
    /* [optional][in] */ VARIANT __MIDL_0190,
    /* [defaultvalue][in] */ siConstructionMode in_mode,
    /* [retval][out] */ Geometry **out_ppGeometry);


void __RPC_STUB Primitive_GetGeometry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Primitive_INTERFACE_DEFINED__ */


#ifndef __Model_INTERFACE_DEFINED__
#define __Model_INTERFACE_DEFINED__

/* interface Model */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Model;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1486EED6-33E2-11d4-ACD9-0090275802BF")
    Model : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Groups( 
            /* [retval][out] */ GroupCollection **out_ppGroupCollection) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Sources( 
            /* [retval][out] */ DataSourceCollection **out_ppSourcesCollection) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Templates( 
            /* [retval][out] */ IDispatch **out_ppTemplatesCollection) = 0;
        
        virtual /* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE get__Obsolete1( 
            /* [retval][out] */ IDispatch **out_ppTrackMixer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddGroup( 
            /* [defaultvalue][in] */ IDispatch *in_pMembers,
            /* [defaultvalue][in] */ BSTR in_bszName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bBranchMember,
            /* [retval][out] */ Group **out_ppNewGroup) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddActionSource( 
            /* [defaultvalue][in] */ BSTR in_vName,
            /* [optional][in] */ VARIANT in_vTargetArray,
            /* [optional][in] */ VARIANT in_vSourceArray,
            /* [optional][in] */ VARIANT in_vActiveArray,
            /* [retval][out] */ ActionSource **out_ppActionSource) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HasMixer( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mixer( 
            /* [retval][out] */ Mixer **out_ppMixer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMixer( 
            /* [retval][out] */ Mixer **out_ppMixer) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExternalFiles( 
            /* [retval][out] */ FileReferenceCollection **out_ppCollection) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ModelVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Model * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Model * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Model * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Model * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Model * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Model * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Model * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Groups )( 
            Model * This,
            /* [retval][out] */ GroupCollection **out_ppGroupCollection);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sources )( 
            Model * This,
            /* [retval][out] */ DataSourceCollection **out_ppSourcesCollection);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Templates )( 
            Model * This,
            /* [retval][out] */ IDispatch **out_ppTemplatesCollection);
        
        /* [helpstring][hidden][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__Obsolete1 )( 
            Model * This,
            /* [retval][out] */ IDispatch **out_ppTrackMixer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddGroup )( 
            Model * This,
            /* [defaultvalue][in] */ IDispatch *in_pMembers,
            /* [defaultvalue][in] */ BSTR in_bszName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bBranchMember,
            /* [retval][out] */ Group **out_ppNewGroup);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddActionSource )( 
            Model * This,
            /* [defaultvalue][in] */ BSTR in_vName,
            /* [optional][in] */ VARIANT in_vTargetArray,
            /* [optional][in] */ VARIANT in_vSourceArray,
            /* [optional][in] */ VARIANT in_vActiveArray,
            /* [retval][out] */ ActionSource **out_ppActionSource);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HasMixer )( 
            Model * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mixer )( 
            Model * This,
            /* [retval][out] */ Mixer **out_ppMixer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMixer )( 
            Model * This,
            /* [retval][out] */ Mixer **out_ppMixer);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExternalFiles )( 
            Model * This,
            /* [retval][out] */ FileReferenceCollection **out_ppCollection);
        
        END_INTERFACE
    } ModelVtbl;

    interface Model
    {
        CONST_VTBL struct ModelVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Model_get_Groups(This,out_ppGroupCollection)	\
    (This)->lpVtbl -> get_Groups(This,out_ppGroupCollection)

#define Model_get_Sources(This,out_ppSourcesCollection)	\
    (This)->lpVtbl -> get_Sources(This,out_ppSourcesCollection)

#define Model_get_Templates(This,out_ppTemplatesCollection)	\
    (This)->lpVtbl -> get_Templates(This,out_ppTemplatesCollection)

#define Model_get__Obsolete1(This,out_ppTrackMixer)	\
    (This)->lpVtbl -> get__Obsolete1(This,out_ppTrackMixer)

#define Model_AddGroup(This,in_pMembers,in_bszName,in_bBranchMember,out_ppNewGroup)	\
    (This)->lpVtbl -> AddGroup(This,in_pMembers,in_bszName,in_bBranchMember,out_ppNewGroup)

#define Model_AddActionSource(This,in_vName,in_vTargetArray,in_vSourceArray,in_vActiveArray,out_ppActionSource)	\
    (This)->lpVtbl -> AddActionSource(This,in_vName,in_vTargetArray,in_vSourceArray,in_vActiveArray,out_ppActionSource)

#define Model_HasMixer(This,out_pVal)	\
    (This)->lpVtbl -> HasMixer(This,out_pVal)

#define Model_get_Mixer(This,out_ppMixer)	\
    (This)->lpVtbl -> get_Mixer(This,out_ppMixer)

#define Model_AddMixer(This,out_ppMixer)	\
    (This)->lpVtbl -> AddMixer(This,out_ppMixer)

#define Model_get_ExternalFiles(This,out_ppCollection)	\
    (This)->lpVtbl -> get_ExternalFiles(This,out_ppCollection)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Model_get_Groups_Proxy( 
    Model * This,
    /* [retval][out] */ GroupCollection **out_ppGroupCollection);


void __RPC_STUB Model_get_Groups_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Model_get_Sources_Proxy( 
    Model * This,
    /* [retval][out] */ DataSourceCollection **out_ppSourcesCollection);


void __RPC_STUB Model_get_Sources_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Model_get_Templates_Proxy( 
    Model * This,
    /* [retval][out] */ IDispatch **out_ppTemplatesCollection);


void __RPC_STUB Model_get_Templates_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE Model_get__Obsolete1_Proxy( 
    Model * This,
    /* [retval][out] */ IDispatch **out_ppTrackMixer);


void __RPC_STUB Model_get__Obsolete1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Model_AddGroup_Proxy( 
    Model * This,
    /* [defaultvalue][in] */ IDispatch *in_pMembers,
    /* [defaultvalue][in] */ BSTR in_bszName,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bBranchMember,
    /* [retval][out] */ Group **out_ppNewGroup);


void __RPC_STUB Model_AddGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Model_AddActionSource_Proxy( 
    Model * This,
    /* [defaultvalue][in] */ BSTR in_vName,
    /* [optional][in] */ VARIANT in_vTargetArray,
    /* [optional][in] */ VARIANT in_vSourceArray,
    /* [optional][in] */ VARIANT in_vActiveArray,
    /* [retval][out] */ ActionSource **out_ppActionSource);


void __RPC_STUB Model_AddActionSource_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Model_HasMixer_Proxy( 
    Model * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB Model_HasMixer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Model_get_Mixer_Proxy( 
    Model * This,
    /* [retval][out] */ Mixer **out_ppMixer);


void __RPC_STUB Model_get_Mixer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Model_AddMixer_Proxy( 
    Model * This,
    /* [retval][out] */ Mixer **out_ppMixer);


void __RPC_STUB Model_AddMixer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Model_get_ExternalFiles_Proxy( 
    Model * This,
    /* [retval][out] */ FileReferenceCollection **out_ppCollection);


void __RPC_STUB Model_get_ExternalFiles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Model_INTERFACE_DEFINED__ */


#ifndef __Null_INTERFACE_DEFINED__
#define __Null_INTERFACE_DEFINED__

/* interface Null */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Null;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("69C125F2-3A7E-11d4-ACD9-0090275802BF")
    Null : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct NullVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Null * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Null * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Null * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Null * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Null * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Null * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Null * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } NullVtbl;

    interface Null
    {
        CONST_VTBL struct NullVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __Null_INTERFACE_DEFINED__ */


#ifndef __Camera_INTERFACE_DEFINED__
#define __Camera_INTERFACE_DEFINED__

/* interface Camera */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Camera;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("69C125F3-3A7E-11d4-ACD9-0090275802BF")
    Camera : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Shaders( 
            /* [retval][out] */ ShaderCollection **__MIDL_0060) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetShaderInputType( 
            /* [in] */ BSTR ParameterName,
            /* [retval][out] */ siShaderParameterType *out_pInputType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE FindShaders( 
            /* [in] */ BSTR filter,
            /* [retval][out] */ ShaderCollection **out_ppShaders) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CameraVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Camera * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Camera * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Camera * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Camera * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Camera * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Camera * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Camera * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Shaders )( 
            Camera * This,
            /* [retval][out] */ ShaderCollection **__MIDL_0060);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetShaderInputType )( 
            Camera * This,
            /* [in] */ BSTR ParameterName,
            /* [retval][out] */ siShaderParameterType *out_pInputType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *FindShaders )( 
            Camera * This,
            /* [in] */ BSTR filter,
            /* [retval][out] */ ShaderCollection **out_ppShaders);
        
        END_INTERFACE
    } CameraVtbl;

    interface Camera
    {
        CONST_VTBL struct CameraVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Camera_get_Shaders(This,__MIDL_0060)	\
    (This)->lpVtbl -> get_Shaders(This,__MIDL_0060)

#define Camera_GetShaderInputType(This,ParameterName,out_pInputType)	\
    (This)->lpVtbl -> GetShaderInputType(This,ParameterName,out_pInputType)

#define Camera_FindShaders(This,filter,out_ppShaders)	\
    (This)->lpVtbl -> FindShaders(This,filter,out_ppShaders)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Camera_get_Shaders_Proxy( 
    Camera * This,
    /* [retval][out] */ ShaderCollection **__MIDL_0060);


void __RPC_STUB Camera_get_Shaders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Camera_GetShaderInputType_Proxy( 
    Camera * This,
    /* [in] */ BSTR ParameterName,
    /* [retval][out] */ siShaderParameterType *out_pInputType);


void __RPC_STUB Camera_GetShaderInputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Camera_FindShaders_Proxy( 
    Camera * This,
    /* [in] */ BSTR filter,
    /* [retval][out] */ ShaderCollection **out_ppShaders);


void __RPC_STUB Camera_FindShaders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Camera_INTERFACE_DEFINED__ */


#ifndef __Light_INTERFACE_DEFINED__
#define __Light_INTERFACE_DEFINED__

/* interface Light */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Light;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("69C125F5-3A7E-11d4-ACD9-0090275802BF")
    Light : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OGLLight( 
            /* [retval][out] */ OGLLight **__MIDL_0061) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Shaders( 
            /* [retval][out] */ ShaderCollection **__MIDL_0062) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetShaderInputType( 
            /* [in] */ BSTR Parametername,
            /* [retval][out] */ siShaderParameterType *out_pInputType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE FindShaders( 
            /* [in] */ BSTR __MIDL_0063,
            /* [retval][out] */ ShaderCollection **out_ppShaders) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct LightVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Light * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Light * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Light * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Light * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Light * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Light * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Light * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OGLLight )( 
            Light * This,
            /* [retval][out] */ OGLLight **__MIDL_0061);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Shaders )( 
            Light * This,
            /* [retval][out] */ ShaderCollection **__MIDL_0062);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetShaderInputType )( 
            Light * This,
            /* [in] */ BSTR Parametername,
            /* [retval][out] */ siShaderParameterType *out_pInputType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *FindShaders )( 
            Light * This,
            /* [in] */ BSTR __MIDL_0063,
            /* [retval][out] */ ShaderCollection **out_ppShaders);
        
        END_INTERFACE
    } LightVtbl;

    interface Light
    {
        CONST_VTBL struct LightVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Light_get_OGLLight(This,__MIDL_0061)	\
    (This)->lpVtbl -> get_OGLLight(This,__MIDL_0061)

#define Light_get_Shaders(This,__MIDL_0062)	\
    (This)->lpVtbl -> get_Shaders(This,__MIDL_0062)

#define Light_GetShaderInputType(This,Parametername,out_pInputType)	\
    (This)->lpVtbl -> GetShaderInputType(This,Parametername,out_pInputType)

#define Light_FindShaders(This,__MIDL_0063,out_ppShaders)	\
    (This)->lpVtbl -> FindShaders(This,__MIDL_0063,out_ppShaders)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Light_get_OGLLight_Proxy( 
    Light * This,
    /* [retval][out] */ OGLLight **__MIDL_0061);


void __RPC_STUB Light_get_OGLLight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Light_get_Shaders_Proxy( 
    Light * This,
    /* [retval][out] */ ShaderCollection **__MIDL_0062);


void __RPC_STUB Light_get_Shaders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Light_GetShaderInputType_Proxy( 
    Light * This,
    /* [in] */ BSTR Parametername,
    /* [retval][out] */ siShaderParameterType *out_pInputType);


void __RPC_STUB Light_GetShaderInputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Light_FindShaders_Proxy( 
    Light * This,
    /* [in] */ BSTR __MIDL_0063,
    /* [retval][out] */ ShaderCollection **out_ppShaders);


void __RPC_STUB Light_FindShaders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Light_INTERFACE_DEFINED__ */


#ifndef __DirectedObject_INTERFACE_DEFINED__
#define __DirectedObject_INTERFACE_DEFINED__

/* interface DirectedObject */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_DirectedObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("69C125F1-3A7E-11d4-ACD9-0090275802BF")
    DirectedObject : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Interest( 
            /* [retval][out] */ X3DObject **__MIDL_0069) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Interest( 
            /* [in] */ X3DObject *__MIDL_0070) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct DirectedObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            DirectedObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            DirectedObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            DirectedObject * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            DirectedObject * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            DirectedObject * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            DirectedObject * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            DirectedObject * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Interest )( 
            DirectedObject * This,
            /* [retval][out] */ X3DObject **__MIDL_0069);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Interest )( 
            DirectedObject * This,
            /* [in] */ X3DObject *__MIDL_0070);
        
        END_INTERFACE
    } DirectedObjectVtbl;

    interface DirectedObject
    {
        CONST_VTBL struct DirectedObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define DirectedObject_get_Interest(This,__MIDL_0069)	\
    (This)->lpVtbl -> get_Interest(This,__MIDL_0069)

#define DirectedObject_put_Interest(This,__MIDL_0070)	\
    (This)->lpVtbl -> put_Interest(This,__MIDL_0070)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE DirectedObject_get_Interest_Proxy( 
    DirectedObject * This,
    /* [retval][out] */ X3DObject **__MIDL_0069);


void __RPC_STUB DirectedObject_get_Interest_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE DirectedObject_put_Interest_Proxy( 
    DirectedObject * This,
    /* [in] */ X3DObject *__MIDL_0070);


void __RPC_STUB DirectedObject_put_Interest_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __DirectedObject_INTERFACE_DEFINED__ */


#ifndef __Scene_INTERFACE_DEFINED__
#define __Scene_INTERFACE_DEFINED__

/* interface Scene */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Scene;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E8456031-406A-11d4-ACD9-0090275802BF")
    Scene : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Root( 
            /* [retval][out] */ Model **out_ppModel) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Colors( 
            /* [retval][out] */ Property **out_ppColor) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Properties( 
            /* [retval][out] */ PropertyCollection **out_ppProps) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveLayer( 
            /* [retval][out] */ Layer **out_ppLayer) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActivePass( 
            /* [retval][out] */ Pass **out_ppPass) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Layers( 
            /* [retval][out] */ LayerCollection **out_ppLayers) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Passes( 
            /* [retval][out] */ PassCollection **out_ppPasses) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveMaterialLibrary( 
            /* [retval][out] */ Library **out_ppLibrary) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MaterialLibraries( 
            /* [retval][out] */ LibraryCollection **out_ppLibrary) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveSimulationEnvironment( 
            /* [retval][out] */ SimulationEnvironment **out_ppSimulationEnvironment) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SimulationEnvironments( 
            /* [retval][out] */ SimulationEnvironmentCollection **out_ppSimulationEnvironment) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExternalFiles( 
            /* [retval][out] */ FileReferenceCollection **out_ppCollection) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetExternalFile( 
            /* [in] */ BSTR in_Guid,
            /* [retval][out] */ FileReference **out_ppFileRef) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ImageClips( 
            /* [retval][out] */ ImageClipCollection **out_ppCollection) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SceneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Scene * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Scene * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Scene * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Scene * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Scene * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Scene * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Scene * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Root )( 
            Scene * This,
            /* [retval][out] */ Model **out_ppModel);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Colors )( 
            Scene * This,
            /* [retval][out] */ Property **out_ppColor);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )( 
            Scene * This,
            /* [retval][out] */ PropertyCollection **out_ppProps);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveLayer )( 
            Scene * This,
            /* [retval][out] */ Layer **out_ppLayer);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActivePass )( 
            Scene * This,
            /* [retval][out] */ Pass **out_ppPass);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Layers )( 
            Scene * This,
            /* [retval][out] */ LayerCollection **out_ppLayers);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Passes )( 
            Scene * This,
            /* [retval][out] */ PassCollection **out_ppPasses);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveMaterialLibrary )( 
            Scene * This,
            /* [retval][out] */ Library **out_ppLibrary);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaterialLibraries )( 
            Scene * This,
            /* [retval][out] */ LibraryCollection **out_ppLibrary);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveSimulationEnvironment )( 
            Scene * This,
            /* [retval][out] */ SimulationEnvironment **out_ppSimulationEnvironment);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SimulationEnvironments )( 
            Scene * This,
            /* [retval][out] */ SimulationEnvironmentCollection **out_ppSimulationEnvironment);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExternalFiles )( 
            Scene * This,
            /* [retval][out] */ FileReferenceCollection **out_ppCollection);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetExternalFile )( 
            Scene * This,
            /* [in] */ BSTR in_Guid,
            /* [retval][out] */ FileReference **out_ppFileRef);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ImageClips )( 
            Scene * This,
            /* [retval][out] */ ImageClipCollection **out_ppCollection);
        
        END_INTERFACE
    } SceneVtbl;

    interface Scene
    {
        CONST_VTBL struct SceneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Scene_get_Root(This,out_ppModel)	\
    (This)->lpVtbl -> get_Root(This,out_ppModel)

#define Scene_get_Colors(This,out_ppColor)	\
    (This)->lpVtbl -> get_Colors(This,out_ppColor)

#define Scene_get_Properties(This,out_ppProps)	\
    (This)->lpVtbl -> get_Properties(This,out_ppProps)

#define Scene_get_ActiveLayer(This,out_ppLayer)	\
    (This)->lpVtbl -> get_ActiveLayer(This,out_ppLayer)

#define Scene_get_ActivePass(This,out_ppPass)	\
    (This)->lpVtbl -> get_ActivePass(This,out_ppPass)

#define Scene_get_Layers(This,out_ppLayers)	\
    (This)->lpVtbl -> get_Layers(This,out_ppLayers)

#define Scene_get_Passes(This,out_ppPasses)	\
    (This)->lpVtbl -> get_Passes(This,out_ppPasses)

#define Scene_get_ActiveMaterialLibrary(This,out_ppLibrary)	\
    (This)->lpVtbl -> get_ActiveMaterialLibrary(This,out_ppLibrary)

#define Scene_get_MaterialLibraries(This,out_ppLibrary)	\
    (This)->lpVtbl -> get_MaterialLibraries(This,out_ppLibrary)

#define Scene_get_ActiveSimulationEnvironment(This,out_ppSimulationEnvironment)	\
    (This)->lpVtbl -> get_ActiveSimulationEnvironment(This,out_ppSimulationEnvironment)

#define Scene_get_SimulationEnvironments(This,out_ppSimulationEnvironment)	\
    (This)->lpVtbl -> get_SimulationEnvironments(This,out_ppSimulationEnvironment)

#define Scene_get_ExternalFiles(This,out_ppCollection)	\
    (This)->lpVtbl -> get_ExternalFiles(This,out_ppCollection)

#define Scene_GetExternalFile(This,in_Guid,out_ppFileRef)	\
    (This)->lpVtbl -> GetExternalFile(This,in_Guid,out_ppFileRef)

#define Scene_get_ImageClips(This,out_ppCollection)	\
    (This)->lpVtbl -> get_ImageClips(This,out_ppCollection)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_Root_Proxy( 
    Scene * This,
    /* [retval][out] */ Model **out_ppModel);


void __RPC_STUB Scene_get_Root_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_Colors_Proxy( 
    Scene * This,
    /* [retval][out] */ Property **out_ppColor);


void __RPC_STUB Scene_get_Colors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_Properties_Proxy( 
    Scene * This,
    /* [retval][out] */ PropertyCollection **out_ppProps);


void __RPC_STUB Scene_get_Properties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_ActiveLayer_Proxy( 
    Scene * This,
    /* [retval][out] */ Layer **out_ppLayer);


void __RPC_STUB Scene_get_ActiveLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_ActivePass_Proxy( 
    Scene * This,
    /* [retval][out] */ Pass **out_ppPass);


void __RPC_STUB Scene_get_ActivePass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_Layers_Proxy( 
    Scene * This,
    /* [retval][out] */ LayerCollection **out_ppLayers);


void __RPC_STUB Scene_get_Layers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_Passes_Proxy( 
    Scene * This,
    /* [retval][out] */ PassCollection **out_ppPasses);


void __RPC_STUB Scene_get_Passes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_ActiveMaterialLibrary_Proxy( 
    Scene * This,
    /* [retval][out] */ Library **out_ppLibrary);


void __RPC_STUB Scene_get_ActiveMaterialLibrary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_MaterialLibraries_Proxy( 
    Scene * This,
    /* [retval][out] */ LibraryCollection **out_ppLibrary);


void __RPC_STUB Scene_get_MaterialLibraries_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_ActiveSimulationEnvironment_Proxy( 
    Scene * This,
    /* [retval][out] */ SimulationEnvironment **out_ppSimulationEnvironment);


void __RPC_STUB Scene_get_ActiveSimulationEnvironment_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_SimulationEnvironments_Proxy( 
    Scene * This,
    /* [retval][out] */ SimulationEnvironmentCollection **out_ppSimulationEnvironment);


void __RPC_STUB Scene_get_SimulationEnvironments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_ExternalFiles_Proxy( 
    Scene * This,
    /* [retval][out] */ FileReferenceCollection **out_ppCollection);


void __RPC_STUB Scene_get_ExternalFiles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Scene_GetExternalFile_Proxy( 
    Scene * This,
    /* [in] */ BSTR in_Guid,
    /* [retval][out] */ FileReference **out_ppFileRef);


void __RPC_STUB Scene_GetExternalFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Scene_get_ImageClips_Proxy( 
    Scene * This,
    /* [retval][out] */ ImageClipCollection **out_ppCollection);


void __RPC_STUB Scene_get_ImageClips_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Scene_INTERFACE_DEFINED__ */


#ifndef __Project_INTERFACE_DEFINED__
#define __Project_INTERFACE_DEFINED__

/* interface Project */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Project;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("52969A80-493B-11d4-80F8-00A024189A69")
    Project : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *out_Path) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UserName( 
            /* [retval][out] */ BSTR *out_UserName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SavedDateTime( 
            /* [retval][out] */ DATE *out_DateTime) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ProjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Project * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Project * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Project * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Project * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Project * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Project * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Project * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            Project * This,
            /* [retval][out] */ BSTR *out_Path);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( 
            Project * This,
            /* [retval][out] */ BSTR *out_UserName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SavedDateTime )( 
            Project * This,
            /* [retval][out] */ DATE *out_DateTime);
        
        END_INTERFACE
    } ProjectVtbl;

    interface Project
    {
        CONST_VTBL struct ProjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Project_get_Path(This,out_Path)	\
    (This)->lpVtbl -> get_Path(This,out_Path)

#define Project_get_UserName(This,out_UserName)	\
    (This)->lpVtbl -> get_UserName(This,out_UserName)

#define Project_get_SavedDateTime(This,out_DateTime)	\
    (This)->lpVtbl -> get_SavedDateTime(This,out_DateTime)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Project_get_Path_Proxy( 
    Project * This,
    /* [retval][out] */ BSTR *out_Path);


void __RPC_STUB Project_get_Path_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Project_get_UserName_Proxy( 
    Project * This,
    /* [retval][out] */ BSTR *out_UserName);


void __RPC_STUB Project_get_UserName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Project_get_SavedDateTime_Proxy( 
    Project * This,
    /* [retval][out] */ DATE *out_DateTime);


void __RPC_STUB Project_get_SavedDateTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Project_INTERFACE_DEFINED__ */


#ifndef __XSIProject_INTERFACE_DEFINED__
#define __XSIProject_INTERFACE_DEFINED__

/* interface XSIProject */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_XSIProject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D33F03C0-4D00-11d4-80F9-00A024189A69")
    XSIProject : public IDispatch
    {
    public:
        virtual /* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE get__Obselete1( 
            /* [retval][out] */ Layer **out_ppLayer) = 0;
        
        virtual /* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE get__Obselete2( 
            /* [retval][out] */ Pass **out_ppPass) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveScene( 
            /* [retval][out] */ Scene **out_ppScene) = 0;
        
        virtual /* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE get__Obselete3( 
            /* [retval][out] */ LayerCollection **out_ppLayers) = 0;
        
        virtual /* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE get__Obselete4( 
            /* [retval][out] */ PassCollection **out_ppPasses) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Scenes( 
            /* [retval][out] */ SceneCollection **out_ppScenes) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Properties( 
            /* [retval][out] */ PropertyCollection **__MIDL_0383) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct XSIProjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            XSIProject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            XSIProject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            XSIProject * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            XSIProject * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            XSIProject * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            XSIProject * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            XSIProject * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][hidden][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__Obselete1 )( 
            XSIProject * This,
            /* [retval][out] */ Layer **out_ppLayer);
        
        /* [helpstring][hidden][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__Obselete2 )( 
            XSIProject * This,
            /* [retval][out] */ Pass **out_ppPass);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveScene )( 
            XSIProject * This,
            /* [retval][out] */ Scene **out_ppScene);
        
        /* [helpstring][hidden][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__Obselete3 )( 
            XSIProject * This,
            /* [retval][out] */ LayerCollection **out_ppLayers);
        
        /* [helpstring][hidden][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__Obselete4 )( 
            XSIProject * This,
            /* [retval][out] */ PassCollection **out_ppPasses);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Scenes )( 
            XSIProject * This,
            /* [retval][out] */ SceneCollection **out_ppScenes);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )( 
            XSIProject * This,
            /* [retval][out] */ PropertyCollection **__MIDL_0383);
        
        END_INTERFACE
    } XSIProjectVtbl;

    interface XSIProject
    {
        CONST_VTBL struct XSIProjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define XSIProject_get__Obselete1(This,out_ppLayer)	\
    (This)->lpVtbl -> get__Obselete1(This,out_ppLayer)

#define XSIProject_get__Obselete2(This,out_ppPass)	\
    (This)->lpVtbl -> get__Obselete2(This,out_ppPass)

#define XSIProject_get_ActiveScene(This,out_ppScene)	\
    (This)->lpVtbl -> get_ActiveScene(This,out_ppScene)

#define XSIProject_get__Obselete3(This,out_ppLayers)	\
    (This)->lpVtbl -> get__Obselete3(This,out_ppLayers)

#define XSIProject_get__Obselete4(This,out_ppPasses)	\
    (This)->lpVtbl -> get__Obselete4(This,out_ppPasses)

#define XSIProject_get_Scenes(This,out_ppScenes)	\
    (This)->lpVtbl -> get_Scenes(This,out_ppScenes)

#define XSIProject_get_Properties(This,__MIDL_0383)	\
    (This)->lpVtbl -> get_Properties(This,__MIDL_0383)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE XSIProject_get__Obselete1_Proxy( 
    XSIProject * This,
    /* [retval][out] */ Layer **out_ppLayer);


void __RPC_STUB XSIProject_get__Obselete1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE XSIProject_get__Obselete2_Proxy( 
    XSIProject * This,
    /* [retval][out] */ Pass **out_ppPass);


void __RPC_STUB XSIProject_get__Obselete2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIProject_get_ActiveScene_Proxy( 
    XSIProject * This,
    /* [retval][out] */ Scene **out_ppScene);


void __RPC_STUB XSIProject_get_ActiveScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE XSIProject_get__Obselete3_Proxy( 
    XSIProject * This,
    /* [retval][out] */ LayerCollection **out_ppLayers);


void __RPC_STUB XSIProject_get__Obselete3_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE XSIProject_get__Obselete4_Proxy( 
    XSIProject * This,
    /* [retval][out] */ PassCollection **out_ppPasses);


void __RPC_STUB XSIProject_get__Obselete4_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIProject_get_Scenes_Proxy( 
    XSIProject * This,
    /* [retval][out] */ SceneCollection **out_ppScenes);


void __RPC_STUB XSIProject_get_Scenes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIProject_get_Properties_Proxy( 
    XSIProject * This,
    /* [retval][out] */ PropertyCollection **__MIDL_0383);


void __RPC_STUB XSIProject_get_Properties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __XSIProject_INTERFACE_DEFINED__ */


#ifndef __Group_INTERFACE_DEFINED__
#define __Group_INTERFACE_DEFINED__

/* interface Group */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Group;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D958FDF1-414D-11d4-ACD9-0090275802BF")
    Group : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Members( 
            /* [retval][out] */ SceneItemCollection **out_ppVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExpandedMembers( 
            /* [retval][out] */ SceneItemCollection **out_ppVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMember( 
            /* [in] */ IDispatch *in_member,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bBranchMember,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0071) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveMember( 
            /* [in] */ IDispatch *in_member,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0072) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveAllMembers( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsMember( 
            /* [in] */ IDispatch *in_member,
            /* [defaultvalue][in] */ VARIANT_BOOL in_branchmember,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0073) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct GroupVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Group * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Group * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Group * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Group * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Group * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Group * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Group * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Members )( 
            Group * This,
            /* [retval][out] */ SceneItemCollection **out_ppVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExpandedMembers )( 
            Group * This,
            /* [retval][out] */ SceneItemCollection **out_ppVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddMember )( 
            Group * This,
            /* [in] */ IDispatch *in_member,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bBranchMember,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0071);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveMember )( 
            Group * This,
            /* [in] */ IDispatch *in_member,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0072);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveAllMembers )( 
            Group * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsMember )( 
            Group * This,
            /* [in] */ IDispatch *in_member,
            /* [defaultvalue][in] */ VARIANT_BOOL in_branchmember,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0073);
        
        END_INTERFACE
    } GroupVtbl;

    interface Group
    {
        CONST_VTBL struct GroupVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Group_get_Members(This,out_ppVal)	\
    (This)->lpVtbl -> get_Members(This,out_ppVal)

#define Group_get_ExpandedMembers(This,out_ppVal)	\
    (This)->lpVtbl -> get_ExpandedMembers(This,out_ppVal)

#define Group_AddMember(This,in_member,in_bBranchMember,__MIDL_0071)	\
    (This)->lpVtbl -> AddMember(This,in_member,in_bBranchMember,__MIDL_0071)

#define Group_RemoveMember(This,in_member,__MIDL_0072)	\
    (This)->lpVtbl -> RemoveMember(This,in_member,__MIDL_0072)

#define Group_RemoveAllMembers(This)	\
    (This)->lpVtbl -> RemoveAllMembers(This)

#define Group_IsMember(This,in_member,in_branchmember,__MIDL_0073)	\
    (This)->lpVtbl -> IsMember(This,in_member,in_branchmember,__MIDL_0073)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Group_get_Members_Proxy( 
    Group * This,
    /* [retval][out] */ SceneItemCollection **out_ppVal);


void __RPC_STUB Group_get_Members_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Group_get_ExpandedMembers_Proxy( 
    Group * This,
    /* [retval][out] */ SceneItemCollection **out_ppVal);


void __RPC_STUB Group_get_ExpandedMembers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Group_AddMember_Proxy( 
    Group * This,
    /* [in] */ IDispatch *in_member,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bBranchMember,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0071);


void __RPC_STUB Group_AddMember_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Group_RemoveMember_Proxy( 
    Group * This,
    /* [in] */ IDispatch *in_member,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0072);


void __RPC_STUB Group_RemoveMember_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Group_RemoveAllMembers_Proxy( 
    Group * This);


void __RPC_STUB Group_RemoveAllMembers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Group_IsMember_Proxy( 
    Group * This,
    /* [in] */ IDispatch *in_member,
    /* [defaultvalue][in] */ VARIANT_BOOL in_branchmember,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0073);


void __RPC_STUB Group_IsMember_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Group_INTERFACE_DEFINED__ */


#ifndef __Layer_INTERFACE_DEFINED__
#define __Layer_INTERFACE_DEFINED__

/* interface Layer */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Layer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0804C942-6400-11d4-811E-00A024189A69")
    Layer : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct LayerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Layer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Layer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Layer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Layer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Layer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Layer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Layer * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } LayerVtbl;

    interface Layer
    {
        CONST_VTBL struct LayerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __Layer_INTERFACE_DEFINED__ */


#ifndef __Pass_INTERFACE_DEFINED__
#define __Pass_INTERFACE_DEFINED__

/* interface Pass */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Pass;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0804C941-6400-11d4-811E-00A024189A69")
    Pass : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct PassVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Pass * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Pass * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Pass * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Pass * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Pass * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Pass * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Pass * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } PassVtbl;

    interface Pass
    {
        CONST_VTBL struct PassVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __Pass_INTERFACE_DEFINED__ */


#ifndef __Particle_INTERFACE_DEFINED__
#define __Particle_INTERFACE_DEFINED__

/* interface Particle */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Particle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("46844F94-8A74-11d4-80CA-0090275AE734")
    Particle : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Color( 
            /* [retval][out] */ Color **out_ppColor) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Color( 
            /* [in] */ Color *in_pColor) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PathLength( 
            /* [retval][out] */ double *out_pdPathLength) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ double *out_pdSize) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Size( 
            /* [in] */ double in_dSize) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Age( 
            /* [retval][out] */ LONG *out_pdAge) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Age( 
            /* [in] */ LONG in_dAge) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ID( 
            /* [retval][out] */ LONG *out_plID) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ IDispatch **out_ppPosition) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Position( 
            /* [in] */ IDispatch *in_pPosition) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AngularVelocity( 
            /* [retval][out] */ IDispatch **out_ppAngularVelocity) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AngularVelocity( 
            /* [in] */ IDispatch *in_pAngularVelocity) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AgeLimit( 
            /* [retval][out] */ LONG *out_pdAgeLimit) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AgeLimit( 
            /* [in] */ LONG in_dAgeLimit) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Density( 
            /* [retval][out] */ double *out_pdDensity) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_plIndex) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Pressure( 
            /* [retval][out] */ double *out_pdPressure) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Seed( 
            /* [retval][out] */ LONG *out_plSeed) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Seed( 
            /* [in] */ LONG in_lSeed) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Velocity( 
            /* [retval][out] */ IDispatch **out_ppVelocity) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Velocity( 
            /* [in] */ IDispatch *in_pVelocity) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SpriteIndex( 
            /* [retval][out] */ LONG *out_plSpriteIndex) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SpriteIndex( 
            /* [in] */ LONG in_lSpriteIndex) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TypeID( 
            /* [retval][out] */ LONG *out_plTypeID) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TypeID( 
            /* [in] */ LONG in_lTypeID) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AxisRotation( 
            /* [retval][out] */ IDispatch **out_pRotation) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AxisRotation( 
            /* [in] */ IDispatch *in_pRotation) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SpriteAngle( 
            /* [retval][out] */ double *out_pdSpriteAngle) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SpriteAngle( 
            /* [in] */ double in_dSpriteAngle) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mass( 
            /* [retval][out] */ double *out_pdMass) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Mass( 
            /* [in] */ double in_dMass) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UVW( 
            /* [retval][out] */ IDispatch **out_ppUVW) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UVW( 
            /* [in] */ IDispatch *in_pUVW) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ IDispatch **out_pRotation) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ IDispatch *in_pRotation) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Attributes( 
            /* [retval][out] */ ParticleAttributeCollection **out_ppAttributes) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Particle * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Particle * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Particle * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Particle * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Particle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Particle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Particle * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            Particle * This,
            /* [retval][out] */ Color **out_ppColor);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( 
            Particle * This,
            /* [in] */ Color *in_pColor);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathLength )( 
            Particle * This,
            /* [retval][out] */ double *out_pdPathLength);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            Particle * This,
            /* [retval][out] */ double *out_pdSize);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Size )( 
            Particle * This,
            /* [in] */ double in_dSize);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Age )( 
            Particle * This,
            /* [retval][out] */ LONG *out_pdAge);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Age )( 
            Particle * This,
            /* [in] */ LONG in_dAge);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ID )( 
            Particle * This,
            /* [retval][out] */ LONG *out_plID);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            Particle * This,
            /* [retval][out] */ IDispatch **out_ppPosition);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
            Particle * This,
            /* [in] */ IDispatch *in_pPosition);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AngularVelocity )( 
            Particle * This,
            /* [retval][out] */ IDispatch **out_ppAngularVelocity);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AngularVelocity )( 
            Particle * This,
            /* [in] */ IDispatch *in_pAngularVelocity);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AgeLimit )( 
            Particle * This,
            /* [retval][out] */ LONG *out_pdAgeLimit);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AgeLimit )( 
            Particle * This,
            /* [in] */ LONG in_dAgeLimit);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Density )( 
            Particle * This,
            /* [retval][out] */ double *out_pdDensity);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            Particle * This,
            /* [retval][out] */ LONG *out_plIndex);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pressure )( 
            Particle * This,
            /* [retval][out] */ double *out_pdPressure);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Seed )( 
            Particle * This,
            /* [retval][out] */ LONG *out_plSeed);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Seed )( 
            Particle * This,
            /* [in] */ LONG in_lSeed);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Velocity )( 
            Particle * This,
            /* [retval][out] */ IDispatch **out_ppVelocity);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Velocity )( 
            Particle * This,
            /* [in] */ IDispatch *in_pVelocity);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SpriteIndex )( 
            Particle * This,
            /* [retval][out] */ LONG *out_plSpriteIndex);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SpriteIndex )( 
            Particle * This,
            /* [in] */ LONG in_lSpriteIndex);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TypeID )( 
            Particle * This,
            /* [retval][out] */ LONG *out_plTypeID);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TypeID )( 
            Particle * This,
            /* [in] */ LONG in_lTypeID);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AxisRotation )( 
            Particle * This,
            /* [retval][out] */ IDispatch **out_pRotation);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AxisRotation )( 
            Particle * This,
            /* [in] */ IDispatch *in_pRotation);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SpriteAngle )( 
            Particle * This,
            /* [retval][out] */ double *out_pdSpriteAngle);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SpriteAngle )( 
            Particle * This,
            /* [in] */ double in_dSpriteAngle);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mass )( 
            Particle * This,
            /* [retval][out] */ double *out_pdMass);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mass )( 
            Particle * This,
            /* [in] */ double in_dMass);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UVW )( 
            Particle * This,
            /* [retval][out] */ IDispatch **out_ppUVW);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UVW )( 
            Particle * This,
            /* [in] */ IDispatch *in_pUVW);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            Particle * This,
            /* [retval][out] */ IDispatch **out_pRotation);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            Particle * This,
            /* [in] */ IDispatch *in_pRotation);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Attributes )( 
            Particle * This,
            /* [retval][out] */ ParticleAttributeCollection **out_ppAttributes);
        
        END_INTERFACE
    } ParticleVtbl;

    interface Particle
    {
        CONST_VTBL struct ParticleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Particle_get_Color(This,out_ppColor)	\
    (This)->lpVtbl -> get_Color(This,out_ppColor)

#define Particle_put_Color(This,in_pColor)	\
    (This)->lpVtbl -> put_Color(This,in_pColor)

#define Particle_get_PathLength(This,out_pdPathLength)	\
    (This)->lpVtbl -> get_PathLength(This,out_pdPathLength)

#define Particle_get_Size(This,out_pdSize)	\
    (This)->lpVtbl -> get_Size(This,out_pdSize)

#define Particle_put_Size(This,in_dSize)	\
    (This)->lpVtbl -> put_Size(This,in_dSize)

#define Particle_get_Age(This,out_pdAge)	\
    (This)->lpVtbl -> get_Age(This,out_pdAge)

#define Particle_put_Age(This,in_dAge)	\
    (This)->lpVtbl -> put_Age(This,in_dAge)

#define Particle_get_ID(This,out_plID)	\
    (This)->lpVtbl -> get_ID(This,out_plID)

#define Particle_get_Position(This,out_ppPosition)	\
    (This)->lpVtbl -> get_Position(This,out_ppPosition)

#define Particle_put_Position(This,in_pPosition)	\
    (This)->lpVtbl -> put_Position(This,in_pPosition)

#define Particle_get_AngularVelocity(This,out_ppAngularVelocity)	\
    (This)->lpVtbl -> get_AngularVelocity(This,out_ppAngularVelocity)

#define Particle_put_AngularVelocity(This,in_pAngularVelocity)	\
    (This)->lpVtbl -> put_AngularVelocity(This,in_pAngularVelocity)

#define Particle_get_AgeLimit(This,out_pdAgeLimit)	\
    (This)->lpVtbl -> get_AgeLimit(This,out_pdAgeLimit)

#define Particle_put_AgeLimit(This,in_dAgeLimit)	\
    (This)->lpVtbl -> put_AgeLimit(This,in_dAgeLimit)

#define Particle_get_Density(This,out_pdDensity)	\
    (This)->lpVtbl -> get_Density(This,out_pdDensity)

#define Particle_get_Index(This,out_plIndex)	\
    (This)->lpVtbl -> get_Index(This,out_plIndex)

#define Particle_get_Pressure(This,out_pdPressure)	\
    (This)->lpVtbl -> get_Pressure(This,out_pdPressure)

#define Particle_get_Seed(This,out_plSeed)	\
    (This)->lpVtbl -> get_Seed(This,out_plSeed)

#define Particle_put_Seed(This,in_lSeed)	\
    (This)->lpVtbl -> put_Seed(This,in_lSeed)

#define Particle_get_Velocity(This,out_ppVelocity)	\
    (This)->lpVtbl -> get_Velocity(This,out_ppVelocity)

#define Particle_put_Velocity(This,in_pVelocity)	\
    (This)->lpVtbl -> put_Velocity(This,in_pVelocity)

#define Particle_get_SpriteIndex(This,out_plSpriteIndex)	\
    (This)->lpVtbl -> get_SpriteIndex(This,out_plSpriteIndex)

#define Particle_put_SpriteIndex(This,in_lSpriteIndex)	\
    (This)->lpVtbl -> put_SpriteIndex(This,in_lSpriteIndex)

#define Particle_get_TypeID(This,out_plTypeID)	\
    (This)->lpVtbl -> get_TypeID(This,out_plTypeID)

#define Particle_put_TypeID(This,in_lTypeID)	\
    (This)->lpVtbl -> put_TypeID(This,in_lTypeID)

#define Particle_get_AxisRotation(This,out_pRotation)	\
    (This)->lpVtbl -> get_AxisRotation(This,out_pRotation)

#define Particle_put_AxisRotation(This,in_pRotation)	\
    (This)->lpVtbl -> put_AxisRotation(This,in_pRotation)

#define Particle_get_SpriteAngle(This,out_pdSpriteAngle)	\
    (This)->lpVtbl -> get_SpriteAngle(This,out_pdSpriteAngle)

#define Particle_put_SpriteAngle(This,in_dSpriteAngle)	\
    (This)->lpVtbl -> put_SpriteAngle(This,in_dSpriteAngle)

#define Particle_get_Mass(This,out_pdMass)	\
    (This)->lpVtbl -> get_Mass(This,out_pdMass)

#define Particle_put_Mass(This,in_dMass)	\
    (This)->lpVtbl -> put_Mass(This,in_dMass)

#define Particle_get_UVW(This,out_ppUVW)	\
    (This)->lpVtbl -> get_UVW(This,out_ppUVW)

#define Particle_put_UVW(This,in_pUVW)	\
    (This)->lpVtbl -> put_UVW(This,in_pUVW)

#define Particle_get_Rotation(This,out_pRotation)	\
    (This)->lpVtbl -> get_Rotation(This,out_pRotation)

#define Particle_put_Rotation(This,in_pRotation)	\
    (This)->lpVtbl -> put_Rotation(This,in_pRotation)

#define Particle_get_Attributes(This,out_ppAttributes)	\
    (This)->lpVtbl -> get_Attributes(This,out_ppAttributes)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Color_Proxy( 
    Particle * This,
    /* [retval][out] */ Color **out_ppColor);


void __RPC_STUB Particle_get_Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Color_Proxy( 
    Particle * This,
    /* [in] */ Color *in_pColor);


void __RPC_STUB Particle_put_Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_PathLength_Proxy( 
    Particle * This,
    /* [retval][out] */ double *out_pdPathLength);


void __RPC_STUB Particle_get_PathLength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Size_Proxy( 
    Particle * This,
    /* [retval][out] */ double *out_pdSize);


void __RPC_STUB Particle_get_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Size_Proxy( 
    Particle * This,
    /* [in] */ double in_dSize);


void __RPC_STUB Particle_put_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Age_Proxy( 
    Particle * This,
    /* [retval][out] */ LONG *out_pdAge);


void __RPC_STUB Particle_get_Age_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Age_Proxy( 
    Particle * This,
    /* [in] */ LONG in_dAge);


void __RPC_STUB Particle_put_Age_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_ID_Proxy( 
    Particle * This,
    /* [retval][out] */ LONG *out_plID);


void __RPC_STUB Particle_get_ID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Position_Proxy( 
    Particle * This,
    /* [retval][out] */ IDispatch **out_ppPosition);


void __RPC_STUB Particle_get_Position_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Position_Proxy( 
    Particle * This,
    /* [in] */ IDispatch *in_pPosition);


void __RPC_STUB Particle_put_Position_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_AngularVelocity_Proxy( 
    Particle * This,
    /* [retval][out] */ IDispatch **out_ppAngularVelocity);


void __RPC_STUB Particle_get_AngularVelocity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_AngularVelocity_Proxy( 
    Particle * This,
    /* [in] */ IDispatch *in_pAngularVelocity);


void __RPC_STUB Particle_put_AngularVelocity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_AgeLimit_Proxy( 
    Particle * This,
    /* [retval][out] */ LONG *out_pdAgeLimit);


void __RPC_STUB Particle_get_AgeLimit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_AgeLimit_Proxy( 
    Particle * This,
    /* [in] */ LONG in_dAgeLimit);


void __RPC_STUB Particle_put_AgeLimit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Density_Proxy( 
    Particle * This,
    /* [retval][out] */ double *out_pdDensity);


void __RPC_STUB Particle_get_Density_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Index_Proxy( 
    Particle * This,
    /* [retval][out] */ LONG *out_plIndex);


void __RPC_STUB Particle_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Pressure_Proxy( 
    Particle * This,
    /* [retval][out] */ double *out_pdPressure);


void __RPC_STUB Particle_get_Pressure_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Seed_Proxy( 
    Particle * This,
    /* [retval][out] */ LONG *out_plSeed);


void __RPC_STUB Particle_get_Seed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Seed_Proxy( 
    Particle * This,
    /* [in] */ LONG in_lSeed);


void __RPC_STUB Particle_put_Seed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Velocity_Proxy( 
    Particle * This,
    /* [retval][out] */ IDispatch **out_ppVelocity);


void __RPC_STUB Particle_get_Velocity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Velocity_Proxy( 
    Particle * This,
    /* [in] */ IDispatch *in_pVelocity);


void __RPC_STUB Particle_put_Velocity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_SpriteIndex_Proxy( 
    Particle * This,
    /* [retval][out] */ LONG *out_plSpriteIndex);


void __RPC_STUB Particle_get_SpriteIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_SpriteIndex_Proxy( 
    Particle * This,
    /* [in] */ LONG in_lSpriteIndex);


void __RPC_STUB Particle_put_SpriteIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_TypeID_Proxy( 
    Particle * This,
    /* [retval][out] */ LONG *out_plTypeID);


void __RPC_STUB Particle_get_TypeID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_TypeID_Proxy( 
    Particle * This,
    /* [in] */ LONG in_lTypeID);


void __RPC_STUB Particle_put_TypeID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_AxisRotation_Proxy( 
    Particle * This,
    /* [retval][out] */ IDispatch **out_pRotation);


void __RPC_STUB Particle_get_AxisRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_AxisRotation_Proxy( 
    Particle * This,
    /* [in] */ IDispatch *in_pRotation);


void __RPC_STUB Particle_put_AxisRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_SpriteAngle_Proxy( 
    Particle * This,
    /* [retval][out] */ double *out_pdSpriteAngle);


void __RPC_STUB Particle_get_SpriteAngle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_SpriteAngle_Proxy( 
    Particle * This,
    /* [in] */ double in_dSpriteAngle);


void __RPC_STUB Particle_put_SpriteAngle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Mass_Proxy( 
    Particle * This,
    /* [retval][out] */ double *out_pdMass);


void __RPC_STUB Particle_get_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Mass_Proxy( 
    Particle * This,
    /* [in] */ double in_dMass);


void __RPC_STUB Particle_put_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_UVW_Proxy( 
    Particle * This,
    /* [retval][out] */ IDispatch **out_ppUVW);


void __RPC_STUB Particle_get_UVW_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_UVW_Proxy( 
    Particle * This,
    /* [in] */ IDispatch *in_pUVW);


void __RPC_STUB Particle_put_UVW_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Rotation_Proxy( 
    Particle * This,
    /* [retval][out] */ IDispatch **out_pRotation);


void __RPC_STUB Particle_get_Rotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Particle_put_Rotation_Proxy( 
    Particle * This,
    /* [in] */ IDispatch *in_pRotation);


void __RPC_STUB Particle_put_Rotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Particle_get_Attributes_Proxy( 
    Particle * This,
    /* [retval][out] */ ParticleAttributeCollection **out_ppAttributes);


void __RPC_STUB Particle_get_Attributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Particle_INTERFACE_DEFINED__ */


#ifndef __ParticleCloud_INTERFACE_DEFINED__
#define __ParticleCloud_INTERFACE_DEFINED__

/* interface ParticleCloud */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ParticleCloud;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F65D7EDC-89A7-11d4-80C8-0090275AE734")
    ParticleCloud : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Particles( 
            /* [retval][out] */ ParticleCollection **out_ppParticles) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleCloudVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParticleCloud * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParticleCloud * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParticleCloud * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParticleCloud * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParticleCloud * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParticleCloud * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParticleCloud * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Particles )( 
            ParticleCloud * This,
            /* [retval][out] */ ParticleCollection **out_ppParticles);
        
        END_INTERFACE
    } ParticleCloudVtbl;

    interface ParticleCloud
    {
        CONST_VTBL struct ParticleCloudVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ParticleCloud_get_Particles(This,out_ppParticles)	\
    (This)->lpVtbl -> get_Particles(This,out_ppParticles)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCloud_get_Particles_Proxy( 
    ParticleCloud * This,
    /* [retval][out] */ ParticleCollection **out_ppParticles);


void __RPC_STUB ParticleCloud_get_Particles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParticleCloud_INTERFACE_DEFINED__ */


#ifndef __ParticleCloudPrimitive_INTERFACE_DEFINED__
#define __ParticleCloudPrimitive_INTERFACE_DEFINED__

/* interface ParticleCloudPrimitive */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ParticleCloudPrimitive;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F5358D42-E8C3-11d4-8158-00A0C9AC19A9")
    ParticleCloudPrimitive : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Particles( 
            /* [retval][out] */ ParticleCollection **out_ppParticles) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddParticles( 
            /* [in] */ LONG in_lNbParticles,
            /* [optional][in] */ IDispatch *in_pParType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveParticles( 
            /* [optional][in] */ VARIANT in_IndexArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveParticlesWithIDs( 
            /* [in] */ VARIANT in_IDArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ParticleTypes( 
            /* [retval][out] */ ParticleTypeCollection **otu_ppParticleTypes) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleCloudPrimitiveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParticleCloudPrimitive * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParticleCloudPrimitive * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParticleCloudPrimitive * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParticleCloudPrimitive * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParticleCloudPrimitive * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParticleCloudPrimitive * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParticleCloudPrimitive * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Particles )( 
            ParticleCloudPrimitive * This,
            /* [retval][out] */ ParticleCollection **out_ppParticles);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddParticles )( 
            ParticleCloudPrimitive * This,
            /* [in] */ LONG in_lNbParticles,
            /* [optional][in] */ IDispatch *in_pParType);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveParticles )( 
            ParticleCloudPrimitive * This,
            /* [optional][in] */ VARIANT in_IndexArray);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveParticlesWithIDs )( 
            ParticleCloudPrimitive * This,
            /* [in] */ VARIANT in_IDArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ParticleTypes )( 
            ParticleCloudPrimitive * This,
            /* [retval][out] */ ParticleTypeCollection **otu_ppParticleTypes);
        
        END_INTERFACE
    } ParticleCloudPrimitiveVtbl;

    interface ParticleCloudPrimitive
    {
        CONST_VTBL struct ParticleCloudPrimitiveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ParticleCloudPrimitive_get_Particles(This,out_ppParticles)	\
    (This)->lpVtbl -> get_Particles(This,out_ppParticles)

#define ParticleCloudPrimitive_AddParticles(This,in_lNbParticles,in_pParType)	\
    (This)->lpVtbl -> AddParticles(This,in_lNbParticles,in_pParType)

#define ParticleCloudPrimitive_RemoveParticles(This,in_IndexArray)	\
    (This)->lpVtbl -> RemoveParticles(This,in_IndexArray)

#define ParticleCloudPrimitive_RemoveParticlesWithIDs(This,in_IDArray)	\
    (This)->lpVtbl -> RemoveParticlesWithIDs(This,in_IDArray)

#define ParticleCloudPrimitive_get_ParticleTypes(This,otu_ppParticleTypes)	\
    (This)->lpVtbl -> get_ParticleTypes(This,otu_ppParticleTypes)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCloudPrimitive_get_Particles_Proxy( 
    ParticleCloudPrimitive * This,
    /* [retval][out] */ ParticleCollection **out_ppParticles);


void __RPC_STUB ParticleCloudPrimitive_get_Particles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleCloudPrimitive_AddParticles_Proxy( 
    ParticleCloudPrimitive * This,
    /* [in] */ LONG in_lNbParticles,
    /* [optional][in] */ IDispatch *in_pParType);


void __RPC_STUB ParticleCloudPrimitive_AddParticles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleCloudPrimitive_RemoveParticles_Proxy( 
    ParticleCloudPrimitive * This,
    /* [optional][in] */ VARIANT in_IndexArray);


void __RPC_STUB ParticleCloudPrimitive_RemoveParticles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleCloudPrimitive_RemoveParticlesWithIDs_Proxy( 
    ParticleCloudPrimitive * This,
    /* [in] */ VARIANT in_IDArray);


void __RPC_STUB ParticleCloudPrimitive_RemoveParticlesWithIDs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCloudPrimitive_get_ParticleTypes_Proxy( 
    ParticleCloudPrimitive * This,
    /* [retval][out] */ ParticleTypeCollection **otu_ppParticleTypes);


void __RPC_STUB ParticleCloudPrimitive_get_ParticleTypes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParticleCloudPrimitive_INTERFACE_DEFINED__ */


#ifndef __AnimationSourceItem_INTERFACE_DEFINED__
#define __AnimationSourceItem_INTERFACE_DEFINED__

/* interface AnimationSourceItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_AnimationSourceItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("23221084-9EBE-11d4-80CD-0090275AE734")
    AnimationSourceItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Active( 
            /* [retval][out] */ VARIANT_BOOL *out_pvActive) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Active( 
            /* [in] */ VARIANT_BOOL in_vActive) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ AnimationSource **out_ppSource) = 0;
        
        virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_Source( 
            /* [in] */ AnimationSource *out_ppSource) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ BSTR *out_pvTarget) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Target( 
            /* [in] */ BSTR in_vTarget) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAsFCurve( 
            /* [optional][in] */ VARIANT in_KeyValueArray,
            /* [optional][in] */ VARIANT in_vInterpolation,
            /* [optional][in] */ VARIANT in_vType,
            /* [optional][in] */ VARIANT in_vExtrapolation,
            /* [retval][out] */ FCurve **out_ppFCurve) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAsStatic( 
            /* [optional][in] */ VARIANT in_vValue,
            /* [retval][out] */ StaticSource **out_ppStatic) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct AnimationSourceItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            AnimationSourceItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            AnimationSourceItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            AnimationSourceItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            AnimationSourceItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            AnimationSourceItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            AnimationSourceItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            AnimationSourceItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Active )( 
            AnimationSourceItem * This,
            /* [retval][out] */ VARIANT_BOOL *out_pvActive);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Active )( 
            AnimationSourceItem * This,
            /* [in] */ VARIANT_BOOL in_vActive);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            AnimationSourceItem * This,
            /* [retval][out] */ AnimationSource **out_ppSource);
        
        /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Source )( 
            AnimationSourceItem * This,
            /* [in] */ AnimationSource *out_ppSource);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            AnimationSourceItem * This,
            /* [retval][out] */ BSTR *out_pvTarget);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Target )( 
            AnimationSourceItem * This,
            /* [in] */ BSTR in_vTarget);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAsFCurve )( 
            AnimationSourceItem * This,
            /* [optional][in] */ VARIANT in_KeyValueArray,
            /* [optional][in] */ VARIANT in_vInterpolation,
            /* [optional][in] */ VARIANT in_vType,
            /* [optional][in] */ VARIANT in_vExtrapolation,
            /* [retval][out] */ FCurve **out_ppFCurve);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAsStatic )( 
            AnimationSourceItem * This,
            /* [optional][in] */ VARIANT in_vValue,
            /* [retval][out] */ StaticSource **out_ppStatic);
        
        END_INTERFACE
    } AnimationSourceItemVtbl;

    interface AnimationSourceItem
    {
        CONST_VTBL struct AnimationSourceItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define AnimationSourceItem_get_Active(This,out_pvActive)	\
    (This)->lpVtbl -> get_Active(This,out_pvActive)

#define AnimationSourceItem_put_Active(This,in_vActive)	\
    (This)->lpVtbl -> put_Active(This,in_vActive)

#define AnimationSourceItem_get_Source(This,out_ppSource)	\
    (This)->lpVtbl -> get_Source(This,out_ppSource)

#define AnimationSourceItem_putref_Source(This,out_ppSource)	\
    (This)->lpVtbl -> putref_Source(This,out_ppSource)

#define AnimationSourceItem_get_Target(This,out_pvTarget)	\
    (This)->lpVtbl -> get_Target(This,out_pvTarget)

#define AnimationSourceItem_put_Target(This,in_vTarget)	\
    (This)->lpVtbl -> put_Target(This,in_vTarget)

#define AnimationSourceItem_SetAsFCurve(This,in_KeyValueArray,in_vInterpolation,in_vType,in_vExtrapolation,out_ppFCurve)	\
    (This)->lpVtbl -> SetAsFCurve(This,in_KeyValueArray,in_vInterpolation,in_vType,in_vExtrapolation,out_ppFCurve)

#define AnimationSourceItem_SetAsStatic(This,in_vValue,out_ppStatic)	\
    (This)->lpVtbl -> SetAsStatic(This,in_vValue,out_ppStatic)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_get_Active_Proxy( 
    AnimationSourceItem * This,
    /* [retval][out] */ VARIANT_BOOL *out_pvActive);


void __RPC_STUB AnimationSourceItem_get_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_put_Active_Proxy( 
    AnimationSourceItem * This,
    /* [in] */ VARIANT_BOOL in_vActive);


void __RPC_STUB AnimationSourceItem_put_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_get_Source_Proxy( 
    AnimationSourceItem * This,
    /* [retval][out] */ AnimationSource **out_ppSource);


void __RPC_STUB AnimationSourceItem_get_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_putref_Source_Proxy( 
    AnimationSourceItem * This,
    /* [in] */ AnimationSource *out_ppSource);


void __RPC_STUB AnimationSourceItem_putref_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_get_Target_Proxy( 
    AnimationSourceItem * This,
    /* [retval][out] */ BSTR *out_pvTarget);


void __RPC_STUB AnimationSourceItem_get_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_put_Target_Proxy( 
    AnimationSourceItem * This,
    /* [in] */ BSTR in_vTarget);


void __RPC_STUB AnimationSourceItem_put_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_SetAsFCurve_Proxy( 
    AnimationSourceItem * This,
    /* [optional][in] */ VARIANT in_KeyValueArray,
    /* [optional][in] */ VARIANT in_vInterpolation,
    /* [optional][in] */ VARIANT in_vType,
    /* [optional][in] */ VARIANT in_vExtrapolation,
    /* [retval][out] */ FCurve **out_ppFCurve);


void __RPC_STUB AnimationSourceItem_SetAsFCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AnimationSourceItem_SetAsStatic_Proxy( 
    AnimationSourceItem * This,
    /* [optional][in] */ VARIANT in_vValue,
    /* [retval][out] */ StaticSource **out_ppStatic);


void __RPC_STUB AnimationSourceItem_SetAsStatic_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __AnimationSourceItem_INTERFACE_DEFINED__ */


#ifndef __ActionSource_INTERFACE_DEFINED__
#define __ActionSource_INTERFACE_DEFINED__

/* interface ActionSource */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ActionSource;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2D84A7C4-9EBC-11d4-80CD-0090275AE734")
    ActionSource : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SourceItems( 
            /* [retval][out] */ AnimationSourceItemCollection **out_ppSourceItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSourceItem( 
            /* [optional][in] */ VARIANT in_vTarget,
            /* [optional][in] */ VARIANT in_vSource,
            /* [optional][in] */ VARIANT in_vActive,
            /* [retval][out] */ AnimationSourceItem **out_ppSourceItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Reload( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Offload( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PartialOffload( 
            /* [in] */ LONG in_dStartFrame,
            /* [in] */ LONG in_dEndFrame,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRemember = 0) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ActionSourceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ActionSource * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ActionSource * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ActionSource * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ActionSource * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ActionSource * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ActionSource * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ActionSource * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SourceItems )( 
            ActionSource * This,
            /* [retval][out] */ AnimationSourceItemCollection **out_ppSourceItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSourceItem )( 
            ActionSource * This,
            /* [optional][in] */ VARIANT in_vTarget,
            /* [optional][in] */ VARIANT in_vSource,
            /* [optional][in] */ VARIANT in_vActive,
            /* [retval][out] */ AnimationSourceItem **out_ppSourceItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Reload )( 
            ActionSource * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Offload )( 
            ActionSource * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PartialOffload )( 
            ActionSource * This,
            /* [in] */ LONG in_dStartFrame,
            /* [in] */ LONG in_dEndFrame,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRemember);
        
        END_INTERFACE
    } ActionSourceVtbl;

    interface ActionSource
    {
        CONST_VTBL struct ActionSourceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ActionSource_get_SourceItems(This,out_ppSourceItem)	\
    (This)->lpVtbl -> get_SourceItems(This,out_ppSourceItem)

#define ActionSource_AddSourceItem(This,in_vTarget,in_vSource,in_vActive,out_ppSourceItem)	\
    (This)->lpVtbl -> AddSourceItem(This,in_vTarget,in_vSource,in_vActive,out_ppSourceItem)

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

#define ActionSource_Offload(This)	\
    (This)->lpVtbl -> Offload(This)

#define ActionSource_PartialOffload(This,in_dStartFrame,in_dEndFrame,in_bRemember)	\
    (This)->lpVtbl -> PartialOffload(This,in_dStartFrame,in_dEndFrame,in_bRemember)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ActionSource_get_SourceItems_Proxy( 
    ActionSource * This,
    /* [retval][out] */ AnimationSourceItemCollection **out_ppSourceItem);


void __RPC_STUB ActionSource_get_SourceItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ActionSource_AddSourceItem_Proxy( 
    ActionSource * This,
    /* [optional][in] */ VARIANT in_vTarget,
    /* [optional][in] */ VARIANT in_vSource,
    /* [optional][in] */ VARIANT in_vActive,
    /* [retval][out] */ AnimationSourceItem **out_ppSourceItem);


void __RPC_STUB ActionSource_AddSourceItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ActionSource_Reload_Proxy( 
    ActionSource * This);


void __RPC_STUB ActionSource_Reload_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ActionSource_Offload_Proxy( 
    ActionSource * This);


void __RPC_STUB ActionSource_Offload_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ActionSource_PartialOffload_Proxy( 
    ActionSource * This,
    /* [in] */ LONG in_dStartFrame,
    /* [in] */ LONG in_dEndFrame,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bRemember);


void __RPC_STUB ActionSource_PartialOffload_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ActionSource_INTERFACE_DEFINED__ */


#ifndef __ActionSourceCollection_INTERFACE_DEFINED__
#define __ActionSourceCollection_INTERFACE_DEFINED__

/* interface ActionSourceCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ActionSourceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1f91cee9-0752-48a5-8493-c88af6250dce")
    ActionSourceCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ActionSource **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ActionSourceCollection **__MIDL_0548) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ActionSource **__MIDL_0549) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0550) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ActionSourceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ActionSourceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ActionSourceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ActionSourceCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ActionSourceCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ActionSourceCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ActionSourceCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ActionSourceCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ActionSourceCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ActionSource **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ActionSourceCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ActionSourceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ActionSourceCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ActionSourceCollection **__MIDL_0548);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ActionSourceCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ActionSource **__MIDL_0549);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ActionSourceCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0550);
        
        END_INTERFACE
    } ActionSourceCollectionVtbl;

    interface ActionSourceCollection
    {
        CONST_VTBL struct ActionSourceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ActionSourceCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ActionSourceCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ActionSourceCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ActionSourceCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0548)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0548)

#define ActionSourceCollection_Find(This,in_filter,__MIDL_0549)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0549)

#define ActionSourceCollection_GetAsText(This,__MIDL_0550)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0550)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ActionSourceCollection_get_Item_Proxy( 
    ActionSourceCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ActionSource **out_pParam);


void __RPC_STUB ActionSourceCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ActionSourceCollection_get_Count_Proxy( 
    ActionSourceCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ActionSourceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ActionSourceCollection_get__NewEnum_Proxy( 
    ActionSourceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ActionSourceCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ActionSourceCollection_Filter_Proxy( 
    ActionSourceCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ActionSourceCollection **__MIDL_0548);


void __RPC_STUB ActionSourceCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ActionSourceCollection_Find_Proxy( 
    ActionSourceCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ActionSource **__MIDL_0549);


void __RPC_STUB ActionSourceCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ActionSourceCollection_GetAsText_Proxy( 
    ActionSourceCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0550);


void __RPC_STUB ActionSourceCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ActionSourceCollection_INTERFACE_DEFINED__ */


#ifndef __FxTree_INTERFACE_DEFINED__
#define __FxTree_INTERFACE_DEFINED__

/* interface FxTree */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_FxTree;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0FE42FB4-C007-44b5-9A4A-20B43CB6B2A3")
    FxTree : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FxOperators( 
            /* [retval][out] */ FxOperatorCollection **__MIDL_0080) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddImageOperator( 
            /* [in] */ VARIANT in_varEffID,
            /* [retval][out] */ FxOperator **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddImageClipOperator( 
            /* [in] */ ImageClip *in_ImageClip,
            /* [retval][out] */ FxOperator **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPassInputOperator( 
            /* [in] */ Pass *in_Pass,
            /* [retval][out] */ FxOperator **out_ppObj) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FxTreeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FxTree * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FxTree * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FxTree * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FxTree * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FxTree * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FxTree * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FxTree * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FxOperators )( 
            FxTree * This,
            /* [retval][out] */ FxOperatorCollection **__MIDL_0080);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddImageOperator )( 
            FxTree * This,
            /* [in] */ VARIANT in_varEffID,
            /* [retval][out] */ FxOperator **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddImageClipOperator )( 
            FxTree * This,
            /* [in] */ ImageClip *in_ImageClip,
            /* [retval][out] */ FxOperator **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPassInputOperator )( 
            FxTree * This,
            /* [in] */ Pass *in_Pass,
            /* [retval][out] */ FxOperator **out_ppObj);
        
        END_INTERFACE
    } FxTreeVtbl;

    interface FxTree
    {
        CONST_VTBL struct FxTreeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define FxTree_get_FxOperators(This,__MIDL_0080)	\
    (This)->lpVtbl -> get_FxOperators(This,__MIDL_0080)

#define FxTree_AddImageOperator(This,in_varEffID,out_ppObj)	\
    (This)->lpVtbl -> AddImageOperator(This,in_varEffID,out_ppObj)

#define FxTree_AddImageClipOperator(This,in_ImageClip,out_ppObj)	\
    (This)->lpVtbl -> AddImageClipOperator(This,in_ImageClip,out_ppObj)

#define FxTree_AddPassInputOperator(This,in_Pass,out_ppObj)	\
    (This)->lpVtbl -> AddPassInputOperator(This,in_Pass,out_ppObj)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FxTree_get_FxOperators_Proxy( 
    FxTree * This,
    /* [retval][out] */ FxOperatorCollection **__MIDL_0080);


void __RPC_STUB FxTree_get_FxOperators_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxTree_AddImageOperator_Proxy( 
    FxTree * This,
    /* [in] */ VARIANT in_varEffID,
    /* [retval][out] */ FxOperator **out_ppObj);


void __RPC_STUB FxTree_AddImageOperator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxTree_AddImageClipOperator_Proxy( 
    FxTree * This,
    /* [in] */ ImageClip *in_ImageClip,
    /* [retval][out] */ FxOperator **out_ppObj);


void __RPC_STUB FxTree_AddImageClipOperator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxTree_AddPassInputOperator_Proxy( 
    FxTree * This,
    /* [in] */ Pass *in_Pass,
    /* [retval][out] */ FxOperator **out_ppObj);


void __RPC_STUB FxTree_AddPassInputOperator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FxTree_INTERFACE_DEFINED__ */


#ifndef __FxOperator_INTERFACE_DEFINED__
#define __FxOperator_INTERFACE_DEFINED__

/* interface FxOperator */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_FxOperator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4E3B8547-92ED-4d41-AD4D-055A7C45D9B3")
    FxOperator : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EffectID( 
            /* [retval][out] */ BSTR *__MIDL_0081) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Tree( 
            /* [retval][out] */ FxTree **__MIDL_0082) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ConnectionCount( 
            /* [retval][out] */ LONG *__MIDL_0083) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionX( 
            /* [retval][out] */ double *__MIDL_0084) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PositionX( 
            /* [in] */ double __MIDL_0085) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionY( 
            /* [retval][out] */ double *__MIDL_0086) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PositionY( 
            /* [in] */ double __MIDL_0087) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Connect( 
            /* [in] */ FxOperator *in_FxOpDest,
            /* [in] */ LONG in_nIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Disconnect( 
            /* [in] */ LONG in_nIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsConnected( 
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsMaskConnection( 
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsInputConnection( 
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConnectionName( 
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ BSTR *out_pName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConnectedOperator( 
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ FxOperator **out_ppSource) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConnectionFlag( 
            /* [in] */ LONG in_nIndex,
            /* [in] */ LONG in_nFlagID,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetConnectionFlag( 
            /* [in] */ LONG in_nIndex,
            /* [in] */ LONG in_nFlagID,
            /* [in] */ VARIANT_BOOL in_bValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsConnectionFlagSupported( 
            /* [in] */ LONG in_nIndex,
            /* [in] */ LONG in_nFlagID,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Render( 
            /* [defaultvalue][in] */ VARIANT_BOOL in_bInteractive = 0) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FxOperatorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FxOperator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FxOperator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FxOperator * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FxOperator * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FxOperator * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FxOperator * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FxOperator * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EffectID )( 
            FxOperator * This,
            /* [retval][out] */ BSTR *__MIDL_0081);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tree )( 
            FxOperator * This,
            /* [retval][out] */ FxTree **__MIDL_0082);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionCount )( 
            FxOperator * This,
            /* [retval][out] */ LONG *__MIDL_0083);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionX )( 
            FxOperator * This,
            /* [retval][out] */ double *__MIDL_0084);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PositionX )( 
            FxOperator * This,
            /* [in] */ double __MIDL_0085);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionY )( 
            FxOperator * This,
            /* [retval][out] */ double *__MIDL_0086);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PositionY )( 
            FxOperator * This,
            /* [in] */ double __MIDL_0087);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( 
            FxOperator * This,
            /* [in] */ FxOperator *in_FxOpDest,
            /* [in] */ LONG in_nIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsConnected )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsMaskConnection )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsInputConnection )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectionName )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ BSTR *out_pName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectedOperator )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [retval][out] */ FxOperator **out_ppSource);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectionFlag )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [in] */ LONG in_nFlagID,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetConnectionFlag )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [in] */ LONG in_nFlagID,
            /* [in] */ VARIANT_BOOL in_bValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsConnectionFlagSupported )( 
            FxOperator * This,
            /* [in] */ LONG in_nIndex,
            /* [in] */ LONG in_nFlagID,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Render )( 
            FxOperator * This,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bInteractive);
        
        END_INTERFACE
    } FxOperatorVtbl;

    interface FxOperator
    {
        CONST_VTBL struct FxOperatorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define FxOperator_get_EffectID(This,__MIDL_0081)	\
    (This)->lpVtbl -> get_EffectID(This,__MIDL_0081)

#define FxOperator_get_Tree(This,__MIDL_0082)	\
    (This)->lpVtbl -> get_Tree(This,__MIDL_0082)

#define FxOperator_get_ConnectionCount(This,__MIDL_0083)	\
    (This)->lpVtbl -> get_ConnectionCount(This,__MIDL_0083)

#define FxOperator_get_PositionX(This,__MIDL_0084)	\
    (This)->lpVtbl -> get_PositionX(This,__MIDL_0084)

#define FxOperator_put_PositionX(This,__MIDL_0085)	\
    (This)->lpVtbl -> put_PositionX(This,__MIDL_0085)

#define FxOperator_get_PositionY(This,__MIDL_0086)	\
    (This)->lpVtbl -> get_PositionY(This,__MIDL_0086)

#define FxOperator_put_PositionY(This,__MIDL_0087)	\
    (This)->lpVtbl -> put_PositionY(This,__MIDL_0087)

#define FxOperator_Connect(This,in_FxOpDest,in_nIndex)	\
    (This)->lpVtbl -> Connect(This,in_FxOpDest,in_nIndex)

#define FxOperator_Disconnect(This,in_nIndex)	\
    (This)->lpVtbl -> Disconnect(This,in_nIndex)

#define FxOperator_IsConnected(This,in_nIndex,out_pVal)	\
    (This)->lpVtbl -> IsConnected(This,in_nIndex,out_pVal)

#define FxOperator_IsMaskConnection(This,in_nIndex,out_pVal)	\
    (This)->lpVtbl -> IsMaskConnection(This,in_nIndex,out_pVal)

#define FxOperator_IsInputConnection(This,in_nIndex,out_pVal)	\
    (This)->lpVtbl -> IsInputConnection(This,in_nIndex,out_pVal)

#define FxOperator_GetConnectionName(This,in_nIndex,out_pName)	\
    (This)->lpVtbl -> GetConnectionName(This,in_nIndex,out_pName)

#define FxOperator_GetConnectedOperator(This,in_nIndex,out_ppSource)	\
    (This)->lpVtbl -> GetConnectedOperator(This,in_nIndex,out_ppSource)

#define FxOperator_GetConnectionFlag(This,in_nIndex,in_nFlagID,out_pVal)	\
    (This)->lpVtbl -> GetConnectionFlag(This,in_nIndex,in_nFlagID,out_pVal)

#define FxOperator_SetConnectionFlag(This,in_nIndex,in_nFlagID,in_bValue)	\
    (This)->lpVtbl -> SetConnectionFlag(This,in_nIndex,in_nFlagID,in_bValue)

#define FxOperator_IsConnectionFlagSupported(This,in_nIndex,in_nFlagID,out_pVal)	\
    (This)->lpVtbl -> IsConnectionFlagSupported(This,in_nIndex,in_nFlagID,out_pVal)

#define FxOperator_Render(This,in_bInteractive)	\
    (This)->lpVtbl -> Render(This,in_bInteractive)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FxOperator_get_EffectID_Proxy( 
    FxOperator * This,
    /* [retval][out] */ BSTR *__MIDL_0081);


void __RPC_STUB FxOperator_get_EffectID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FxOperator_get_Tree_Proxy( 
    FxOperator * This,
    /* [retval][out] */ FxTree **__MIDL_0082);


void __RPC_STUB FxOperator_get_Tree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FxOperator_get_ConnectionCount_Proxy( 
    FxOperator * This,
    /* [retval][out] */ LONG *__MIDL_0083);


void __RPC_STUB FxOperator_get_ConnectionCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FxOperator_get_PositionX_Proxy( 
    FxOperator * This,
    /* [retval][out] */ double *__MIDL_0084);


void __RPC_STUB FxOperator_get_PositionX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FxOperator_put_PositionX_Proxy( 
    FxOperator * This,
    /* [in] */ double __MIDL_0085);


void __RPC_STUB FxOperator_put_PositionX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FxOperator_get_PositionY_Proxy( 
    FxOperator * This,
    /* [retval][out] */ double *__MIDL_0086);


void __RPC_STUB FxOperator_get_PositionY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FxOperator_put_PositionY_Proxy( 
    FxOperator * This,
    /* [in] */ double __MIDL_0087);


void __RPC_STUB FxOperator_put_PositionY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_Connect_Proxy( 
    FxOperator * This,
    /* [in] */ FxOperator *in_FxOpDest,
    /* [in] */ LONG in_nIndex);


void __RPC_STUB FxOperator_Connect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_Disconnect_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex);


void __RPC_STUB FxOperator_Disconnect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_IsConnected_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FxOperator_IsConnected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_IsMaskConnection_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FxOperator_IsMaskConnection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_IsInputConnection_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FxOperator_IsInputConnection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_GetConnectionName_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [retval][out] */ BSTR *out_pName);


void __RPC_STUB FxOperator_GetConnectionName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_GetConnectedOperator_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [retval][out] */ FxOperator **out_ppSource);


void __RPC_STUB FxOperator_GetConnectedOperator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_GetConnectionFlag_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [in] */ LONG in_nFlagID,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FxOperator_GetConnectionFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_SetConnectionFlag_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [in] */ LONG in_nFlagID,
    /* [in] */ VARIANT_BOOL in_bValue);


void __RPC_STUB FxOperator_SetConnectionFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_IsConnectionFlagSupported_Proxy( 
    FxOperator * This,
    /* [in] */ LONG in_nIndex,
    /* [in] */ LONG in_nFlagID,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FxOperator_IsConnectionFlagSupported_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FxOperator_Render_Proxy( 
    FxOperator * This,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bInteractive);


void __RPC_STUB FxOperator_Render_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FxOperator_INTERFACE_DEFINED__ */


#ifndef __FxOperatorCollection_INTERFACE_DEFINED__
#define __FxOperatorCollection_INTERFACE_DEFINED__

/* interface FxOperatorCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_FxOperatorCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AD43A4CE-EFC4-4462-9EF6-DB8222810DA3")
    FxOperatorCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FxOperator **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FxOperatorCollection **__MIDL_0479) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FxOperator **__MIDL_0480) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0481) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FxOperatorCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FxOperatorCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FxOperatorCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FxOperatorCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FxOperatorCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FxOperatorCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FxOperatorCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FxOperatorCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            FxOperatorCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FxOperator **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            FxOperatorCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            FxOperatorCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            FxOperatorCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FxOperatorCollection **__MIDL_0479);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            FxOperatorCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FxOperator **__MIDL_0480);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            FxOperatorCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            FxOperatorCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0481);
        
        END_INTERFACE
    } FxOperatorCollectionVtbl;

    interface FxOperatorCollection
    {
        CONST_VTBL struct FxOperatorCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define FxOperatorCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define FxOperatorCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define FxOperatorCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define FxOperatorCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0479)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0479)

#define FxOperatorCollection_Find(This,in_filter,__MIDL_0480)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0480)

#define FxOperatorCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define FxOperatorCollection_GetAsText(This,__MIDL_0481)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0481)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE FxOperatorCollection_get_Item_Proxy( 
    FxOperatorCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ FxOperator **out_pParam);


void __RPC_STUB FxOperatorCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE FxOperatorCollection_get_Count_Proxy( 
    FxOperatorCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB FxOperatorCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FxOperatorCollection_get_NewEnum_Proxy( 
    FxOperatorCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FxOperatorCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FxOperatorCollection_Filter_Proxy( 
    FxOperatorCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ FxOperatorCollection **__MIDL_0479);


void __RPC_STUB FxOperatorCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FxOperatorCollection_Find_Proxy( 
    FxOperatorCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ FxOperator **__MIDL_0480);


void __RPC_STUB FxOperatorCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FxOperatorCollection_get__NewEnum_Proxy( 
    FxOperatorCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FxOperatorCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FxOperatorCollection_GetAsText_Proxy( 
    FxOperatorCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0481);


void __RPC_STUB FxOperatorCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FxOperatorCollection_INTERFACE_DEFINED__ */


#ifndef __Parameter_INTERFACE_DEFINED__
#define __Parameter_INTERFACE_DEFINED__

/* interface Parameter */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Parameter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("731B9E41-2505-11d4-ACD6-0090275802BF")
    Parameter : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [optional][in] */ VARIANT inFrame,
            /* [retval][out] */ LPVARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [optional][in] */ VARIANT inFrame,
            /* [in] */ VARIANT in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Capabilities( 
            /* [retval][out] */ LONG *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Marked( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Marked( 
            /* [in] */ VARIANT_BOOL in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parameters( 
            /* [retval][out] */ ParameterCollection **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ DataSource **out_ppVal) = 0;
        
        virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_Source( 
            /* [in] */ DataSource *in_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ScriptName( 
            /* [retval][out] */ BSTR *out_pVal) = 0;
        
        virtual /* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE FindAttrib( 
            BSTR __MIDL_0133,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddFCurve( 
            /* [optional][in] */ VARIANT in_Type,
            /* [optional][in] */ VARIANT in_Interpolation,
            /* [optional][in] */ VARIANT in_Extrapolation,
            /* [optional][in] */ VARIANT in_KeyDataArray,
            /* [retval][out] */ FCurve **out_ppFCurve) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddFCurve2( 
            /* [optional][in] */ VARIANT in_KeyValueArray,
            /* [optional][in] */ VARIANT in_Type,
            /* [retval][out] */ FCurve **out_ppFCurve) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConnectFromPreset( 
            /* [in] */ BSTR in_PresetName,
            /* [in] */ BSTR in_PresetFamily,
            /* [optional][out] */ VARIANT *out_pvPrevDataSource,
            /* [retval][out] */ DataSource **out_ppDataSource) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConnectFromFile( 
            /* [in] */ BSTR in_FileName,
            /* [optional][out] */ VARIANT *out_pvPrevDataSource,
            /* [retval][out] */ DataSource **out_ppDataSource) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConnectFromProgID( 
            /* [in] */ BSTR in_ProgID,
            /* [optional][out] */ VARIANT *out_pvPrevDataSource,
            /* [retval][out] */ DataSource **out_ppDataSource) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Connect( 
            /* [in] */ DataSource *in_pDataSource,
            /* [retval][out] */ DataSource **out_ppPrevDataSource) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Disconnect( 
            /* [retval][out] */ DataSource **out_ppPrevDataSource) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ValueType( 
            /* [retval][out] */ siVariantType *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Min( 
            /* [retval][out] */ LPVARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Max( 
            /* [retval][out] */ LPVARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SuggestedMin( 
            /* [retval][out] */ LPVARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SuggestedMax( 
            /* [retval][out] */ LPVARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Default( 
            /* [retval][out] */ LPVARIANT pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsAnimated( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0134,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0135) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AnimatedParameters( 
            /* [defaultvalue][in] */ siSourceType __MIDL_0136,
            /* [retval][out] */ ParameterCollection **__MIDL_0137) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Animatable( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Animatable( 
            /* [in] */ VARIANT_BOOL in_Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ReadOnly( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ReadOnly( 
            /* [in] */ VARIANT_BOOL in_Val) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetCapabilityFlag( 
            /* [in] */ LONG in_Flag,
            /* [in] */ VARIANT_BOOL in_bEnable) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Enable( 
            BOOL in_bEnable) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Show( 
            BOOL in_bShow) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockType( 
            /* [retval][out] */ siLockType *__MIDL_0138) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockLevel( 
            /* [retval][out] */ siLockLevel *__MIDL_0139) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsLocked( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0140) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLock( 
            /* [defaultvalue][in] */ siLockLevel in_LockLevel = siLockLevelAll) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnSetLock( 
            /* [defaultvalue][in] */ siLockLevel in_LockLevel = siLockLevelAll,
            /* [defaultvalue][in] */ BSTR in_Password = L"") = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Tags( 
            /* [retval][out] */ siTags *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Tags( 
            /* [in] */ siTags in_Val) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddScriptedOp( 
            /* [defaultvalue][in] */ BSTR bszCode,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [retval][out] */ CustomOperator **ppCOP) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddScriptedOpFromFile( 
            /* [defaultvalue][in] */ BSTR bszFileName,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [retval][out] */ CustomOperator **ppCOP) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Model( 
            /* [retval][out] */ Model **__MIDL_0141) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent3DObject( 
            /* [retval][out] */ X3DObject **__MIDL_0142) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_HasInstanceValue( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0143) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsSupportedInstanceValue( 
            /* [in] */ IDispatch *in_obj,
            /* [in] */ VARIANT __MIDL_0144,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0145) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetInstanceValue( 
            /* [in] */ IDispatch *in_obj,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0146,
            /* [retval][out] */ VARIANT *__MIDL_0147) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetInstanceValue( 
            /* [in] */ IDispatch *in_obj,
            /* [in] */ VARIANT __MIDL_0148,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0149,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0150) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Keyable( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Keyable( 
            /* [in] */ VARIANT_BOOL in_Val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddExpression( 
            /* [in] */ BSTR in_strExpr,
            /* [retval][out] */ Expression **out_NewExpression) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddCustomOp( 
            /* [in] */ BSTR bszType,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [retval][out] */ CustomOperator **ppCOP) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParameterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Parameter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Parameter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Parameter * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Parameter * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Parameter * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Parameter * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Parameter * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            Parameter * This,
            /* [optional][in] */ VARIANT inFrame,
            /* [retval][out] */ LPVARIANT pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            Parameter * This,
            /* [optional][in] */ VARIANT inFrame,
            /* [in] */ VARIANT in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Capabilities )( 
            Parameter * This,
            /* [retval][out] */ LONG *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Marked )( 
            Parameter * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Marked )( 
            Parameter * This,
            /* [in] */ VARIANT_BOOL in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parameters )( 
            Parameter * This,
            /* [retval][out] */ ParameterCollection **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            Parameter * This,
            /* [retval][out] */ DataSource **out_ppVal);
        
        /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Source )( 
            Parameter * This,
            /* [in] */ DataSource *in_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ScriptName )( 
            Parameter * This,
            /* [retval][out] */ BSTR *out_pVal);
        
        /* [helpstring][id][hidden] */ HRESULT ( STDMETHODCALLTYPE *FindAttrib )( 
            Parameter * This,
            BSTR __MIDL_0133,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddFCurve )( 
            Parameter * This,
            /* [optional][in] */ VARIANT in_Type,
            /* [optional][in] */ VARIANT in_Interpolation,
            /* [optional][in] */ VARIANT in_Extrapolation,
            /* [optional][in] */ VARIANT in_KeyDataArray,
            /* [retval][out] */ FCurve **out_ppFCurve);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddFCurve2 )( 
            Parameter * This,
            /* [optional][in] */ VARIANT in_KeyValueArray,
            /* [optional][in] */ VARIANT in_Type,
            /* [retval][out] */ FCurve **out_ppFCurve);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConnectFromPreset )( 
            Parameter * This,
            /* [in] */ BSTR in_PresetName,
            /* [in] */ BSTR in_PresetFamily,
            /* [optional][out] */ VARIANT *out_pvPrevDataSource,
            /* [retval][out] */ DataSource **out_ppDataSource);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConnectFromFile )( 
            Parameter * This,
            /* [in] */ BSTR in_FileName,
            /* [optional][out] */ VARIANT *out_pvPrevDataSource,
            /* [retval][out] */ DataSource **out_ppDataSource);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConnectFromProgID )( 
            Parameter * This,
            /* [in] */ BSTR in_ProgID,
            /* [optional][out] */ VARIANT *out_pvPrevDataSource,
            /* [retval][out] */ DataSource **out_ppDataSource);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( 
            Parameter * This,
            /* [in] */ DataSource *in_pDataSource,
            /* [retval][out] */ DataSource **out_ppPrevDataSource);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
            Parameter * This,
            /* [retval][out] */ DataSource **out_ppPrevDataSource);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            Parameter * This,
            /* [retval][out] */ BSTR *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ValueType )( 
            Parameter * This,
            /* [retval][out] */ siVariantType *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Min )( 
            Parameter * This,
            /* [retval][out] */ LPVARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Max )( 
            Parameter * This,
            /* [retval][out] */ LPVARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SuggestedMin )( 
            Parameter * This,
            /* [retval][out] */ LPVARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SuggestedMax )( 
            Parameter * This,
            /* [retval][out] */ LPVARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Default )( 
            Parameter * This,
            /* [retval][out] */ LPVARIANT pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsAnimated )( 
            Parameter * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0134,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0135);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AnimatedParameters )( 
            Parameter * This,
            /* [defaultvalue][in] */ siSourceType __MIDL_0136,
            /* [retval][out] */ ParameterCollection **__MIDL_0137);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Animatable )( 
            Parameter * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Animatable )( 
            Parameter * This,
            /* [in] */ VARIANT_BOOL in_Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReadOnly )( 
            Parameter * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReadOnly )( 
            Parameter * This,
            /* [in] */ VARIANT_BOOL in_Val);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetCapabilityFlag )( 
            Parameter * This,
            /* [in] */ LONG in_Flag,
            /* [in] */ VARIANT_BOOL in_bEnable);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Enable )( 
            Parameter * This,
            BOOL in_bEnable);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Show )( 
            Parameter * This,
            BOOL in_bShow);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockType )( 
            Parameter * This,
            /* [retval][out] */ siLockType *__MIDL_0138);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockLevel )( 
            Parameter * This,
            /* [retval][out] */ siLockLevel *__MIDL_0139);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsLocked )( 
            Parameter * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0140);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLock )( 
            Parameter * This,
            /* [defaultvalue][in] */ siLockLevel in_LockLevel);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnSetLock )( 
            Parameter * This,
            /* [defaultvalue][in] */ siLockLevel in_LockLevel,
            /* [defaultvalue][in] */ BSTR in_Password);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tags )( 
            Parameter * This,
            /* [retval][out] */ siTags *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Tags )( 
            Parameter * This,
            /* [in] */ siTags in_Val);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddScriptedOp )( 
            Parameter * This,
            /* [defaultvalue][in] */ BSTR bszCode,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [retval][out] */ CustomOperator **ppCOP);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddScriptedOpFromFile )( 
            Parameter * This,
            /* [defaultvalue][in] */ BSTR bszFileName,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [defaultvalue][in] */ BSTR bszLanguage,
            /* [retval][out] */ CustomOperator **ppCOP);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Model )( 
            Parameter * This,
            /* [retval][out] */ Model **__MIDL_0141);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent3DObject )( 
            Parameter * This,
            /* [retval][out] */ X3DObject **__MIDL_0142);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasInstanceValue )( 
            Parameter * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0143);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsSupportedInstanceValue )( 
            Parameter * This,
            /* [in] */ IDispatch *in_obj,
            /* [in] */ VARIANT __MIDL_0144,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0145);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInstanceValue )( 
            Parameter * This,
            /* [in] */ IDispatch *in_obj,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0146,
            /* [retval][out] */ VARIANT *__MIDL_0147);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetInstanceValue )( 
            Parameter * This,
            /* [in] */ IDispatch *in_obj,
            /* [in] */ VARIANT __MIDL_0148,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0149,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0150);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Keyable )( 
            Parameter * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Keyable )( 
            Parameter * This,
            /* [in] */ VARIANT_BOOL in_Val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddExpression )( 
            Parameter * This,
            /* [in] */ BSTR in_strExpr,
            /* [retval][out] */ Expression **out_NewExpression);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddCustomOp )( 
            Parameter * This,
            /* [in] */ BSTR bszType,
            /* [optional][in] */ VARIANT vInputs,
            /* [defaultvalue][in] */ BSTR bszName,
            /* [retval][out] */ CustomOperator **ppCOP);
        
        END_INTERFACE
    } ParameterVtbl;

    interface Parameter
    {
        CONST_VTBL struct ParameterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Parameter_get_Value(This,inFrame,pVal)	\
    (This)->lpVtbl -> get_Value(This,inFrame,pVal)

#define Parameter_put_Value(This,inFrame,in_val)	\
    (This)->lpVtbl -> put_Value(This,inFrame,in_val)

#define Parameter_get_Capabilities(This,out_pVal)	\
    (This)->lpVtbl -> get_Capabilities(This,out_pVal)

#define Parameter_get_Marked(This,pVal)	\
    (This)->lpVtbl -> get_Marked(This,pVal)

#define Parameter_put_Marked(This,in_val)	\
    (This)->lpVtbl -> put_Marked(This,in_val)

#define Parameter_get_Parameters(This,pVal)	\
    (This)->lpVtbl -> get_Parameters(This,pVal)

#define Parameter_get_Source(This,out_ppVal)	\
    (This)->lpVtbl -> get_Source(This,out_ppVal)

#define Parameter_putref_Source(This,in_pVal)	\
    (This)->lpVtbl -> putref_Source(This,in_pVal)

#define Parameter_get_ScriptName(This,out_pVal)	\
    (This)->lpVtbl -> get_ScriptName(This,out_pVal)

#define Parameter_FindAttrib(This,__MIDL_0133,pVal)	\
    (This)->lpVtbl -> FindAttrib(This,__MIDL_0133,pVal)

#define Parameter_AddFCurve(This,in_Type,in_Interpolation,in_Extrapolation,in_KeyDataArray,out_ppFCurve)	\
    (This)->lpVtbl -> AddFCurve(This,in_Type,in_Interpolation,in_Extrapolation,in_KeyDataArray,out_ppFCurve)

#define Parameter_AddFCurve2(This,in_KeyValueArray,in_Type,out_ppFCurve)	\
    (This)->lpVtbl -> AddFCurve2(This,in_KeyValueArray,in_Type,out_ppFCurve)

#define Parameter_ConnectFromPreset(This,in_PresetName,in_PresetFamily,out_pvPrevDataSource,out_ppDataSource)	\
    (This)->lpVtbl -> ConnectFromPreset(This,in_PresetName,in_PresetFamily,out_pvPrevDataSource,out_ppDataSource)

#define Parameter_ConnectFromFile(This,in_FileName,out_pvPrevDataSource,out_ppDataSource)	\
    (This)->lpVtbl -> ConnectFromFile(This,in_FileName,out_pvPrevDataSource,out_ppDataSource)

#define Parameter_ConnectFromProgID(This,in_ProgID,out_pvPrevDataSource,out_ppDataSource)	\
    (This)->lpVtbl -> ConnectFromProgID(This,in_ProgID,out_pvPrevDataSource,out_ppDataSource)

#define Parameter_Connect(This,in_pDataSource,out_ppPrevDataSource)	\
    (This)->lpVtbl -> Connect(This,in_pDataSource,out_ppPrevDataSource)

#define Parameter_Disconnect(This,out_ppPrevDataSource)	\
    (This)->lpVtbl -> Disconnect(This,out_ppPrevDataSource)

#define Parameter_get_Description(This,out_pVal)	\
    (This)->lpVtbl -> get_Description(This,out_pVal)

#define Parameter_get_ValueType(This,out_pVal)	\
    (This)->lpVtbl -> get_ValueType(This,out_pVal)

#define Parameter_get_Min(This,pVal)	\
    (This)->lpVtbl -> get_Min(This,pVal)

#define Parameter_get_Max(This,pVal)	\
    (This)->lpVtbl -> get_Max(This,pVal)

#define Parameter_get_SuggestedMin(This,pVal)	\
    (This)->lpVtbl -> get_SuggestedMin(This,pVal)

#define Parameter_get_SuggestedMax(This,pVal)	\
    (This)->lpVtbl -> get_SuggestedMax(This,pVal)

#define Parameter_get_Default(This,pVal)	\
    (This)->lpVtbl -> get_Default(This,pVal)

#define Parameter_IsAnimated(This,__MIDL_0134,__MIDL_0135)	\
    (This)->lpVtbl -> IsAnimated(This,__MIDL_0134,__MIDL_0135)

#define Parameter_AnimatedParameters(This,__MIDL_0136,__MIDL_0137)	\
    (This)->lpVtbl -> AnimatedParameters(This,__MIDL_0136,__MIDL_0137)

#define Parameter_get_Animatable(This,out_pVal)	\
    (This)->lpVtbl -> get_Animatable(This,out_pVal)

#define Parameter_put_Animatable(This,in_Val)	\
    (This)->lpVtbl -> put_Animatable(This,in_Val)

#define Parameter_get_ReadOnly(This,out_pVal)	\
    (This)->lpVtbl -> get_ReadOnly(This,out_pVal)

#define Parameter_put_ReadOnly(This,in_Val)	\
    (This)->lpVtbl -> put_ReadOnly(This,in_Val)

#define Parameter_SetCapabilityFlag(This,in_Flag,in_bEnable)	\
    (This)->lpVtbl -> SetCapabilityFlag(This,in_Flag,in_bEnable)

#define Parameter_Enable(This,in_bEnable)	\
    (This)->lpVtbl -> Enable(This,in_bEnable)

#define Parameter_Show(This,in_bShow)	\
    (This)->lpVtbl -> Show(This,in_bShow)

#define Parameter_get_LockType(This,__MIDL_0138)	\
    (This)->lpVtbl -> get_LockType(This,__MIDL_0138)

#define Parameter_get_LockLevel(This,__MIDL_0139)	\
    (This)->lpVtbl -> get_LockLevel(This,__MIDL_0139)

#define Parameter_IsLocked(This,__MIDL_0140)	\
    (This)->lpVtbl -> IsLocked(This,__MIDL_0140)

#define Parameter_SetLock(This,in_LockLevel)	\
    (This)->lpVtbl -> SetLock(This,in_LockLevel)

#define Parameter_UnSetLock(This,in_LockLevel,in_Password)	\
    (This)->lpVtbl -> UnSetLock(This,in_LockLevel,in_Password)

#define Parameter_get_Tags(This,out_pVal)	\
    (This)->lpVtbl -> get_Tags(This,out_pVal)

#define Parameter_put_Tags(This,in_Val)	\
    (This)->lpVtbl -> put_Tags(This,in_Val)

#define Parameter_AddScriptedOp(This,bszCode,vInputs,bszName,bszLanguage,ppCOP)	\
    (This)->lpVtbl -> AddScriptedOp(This,bszCode,vInputs,bszName,bszLanguage,ppCOP)

#define Parameter_AddScriptedOpFromFile(This,bszFileName,vInputs,bszName,bszLanguage,ppCOP)	\
    (This)->lpVtbl -> AddScriptedOpFromFile(This,bszFileName,vInputs,bszName,bszLanguage,ppCOP)

#define Parameter_get_Model(This,__MIDL_0141)	\
    (This)->lpVtbl -> get_Model(This,__MIDL_0141)

#define Parameter_get_Parent3DObject(This,__MIDL_0142)	\
    (This)->lpVtbl -> get_Parent3DObject(This,__MIDL_0142)

#define Parameter_get_HasInstanceValue(This,__MIDL_0143)	\
    (This)->lpVtbl -> get_HasInstanceValue(This,__MIDL_0143)

#define Parameter_IsSupportedInstanceValue(This,in_obj,__MIDL_0144,__MIDL_0145)	\
    (This)->lpVtbl -> IsSupportedInstanceValue(This,in_obj,__MIDL_0144,__MIDL_0145)

#define Parameter_GetInstanceValue(This,in_obj,__MIDL_0146,__MIDL_0147)	\
    (This)->lpVtbl -> GetInstanceValue(This,in_obj,__MIDL_0146,__MIDL_0147)

#define Parameter_SetInstanceValue(This,in_obj,__MIDL_0148,__MIDL_0149,__MIDL_0150)	\
    (This)->lpVtbl -> SetInstanceValue(This,in_obj,__MIDL_0148,__MIDL_0149,__MIDL_0150)

#define Parameter_get_Keyable(This,out_pVal)	\
    (This)->lpVtbl -> get_Keyable(This,out_pVal)

#define Parameter_put_Keyable(This,in_Val)	\
    (This)->lpVtbl -> put_Keyable(This,in_Val)

#define Parameter_AddExpression(This,in_strExpr,out_NewExpression)	\
    (This)->lpVtbl -> AddExpression(This,in_strExpr,out_NewExpression)

#define Parameter_AddCustomOp(This,bszType,vInputs,bszName,ppCOP)	\
    (This)->lpVtbl -> AddCustomOp(This,bszType,vInputs,bszName,ppCOP)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Value_Proxy( 
    Parameter * This,
    /* [optional][in] */ VARIANT inFrame,
    /* [retval][out] */ LPVARIANT pVal);


void __RPC_STUB Parameter_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Parameter_put_Value_Proxy( 
    Parameter * This,
    /* [optional][in] */ VARIANT inFrame,
    /* [in] */ VARIANT in_val);


void __RPC_STUB Parameter_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Capabilities_Proxy( 
    Parameter * This,
    /* [retval][out] */ LONG *out_pVal);


void __RPC_STUB Parameter_get_Capabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Marked_Proxy( 
    Parameter * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB Parameter_get_Marked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Parameter_put_Marked_Proxy( 
    Parameter * This,
    /* [in] */ VARIANT_BOOL in_val);


void __RPC_STUB Parameter_put_Marked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Parameters_Proxy( 
    Parameter * This,
    /* [retval][out] */ ParameterCollection **pVal);


void __RPC_STUB Parameter_get_Parameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Source_Proxy( 
    Parameter * This,
    /* [retval][out] */ DataSource **out_ppVal);


void __RPC_STUB Parameter_get_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE Parameter_putref_Source_Proxy( 
    Parameter * This,
    /* [in] */ DataSource *in_pVal);


void __RPC_STUB Parameter_putref_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_ScriptName_Proxy( 
    Parameter * This,
    /* [retval][out] */ BSTR *out_pVal);


void __RPC_STUB Parameter_get_ScriptName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE Parameter_FindAttrib_Proxy( 
    Parameter * This,
    BSTR __MIDL_0133,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB Parameter_FindAttrib_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_AddFCurve_Proxy( 
    Parameter * This,
    /* [optional][in] */ VARIANT in_Type,
    /* [optional][in] */ VARIANT in_Interpolation,
    /* [optional][in] */ VARIANT in_Extrapolation,
    /* [optional][in] */ VARIANT in_KeyDataArray,
    /* [retval][out] */ FCurve **out_ppFCurve);


void __RPC_STUB Parameter_AddFCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_AddFCurve2_Proxy( 
    Parameter * This,
    /* [optional][in] */ VARIANT in_KeyValueArray,
    /* [optional][in] */ VARIANT in_Type,
    /* [retval][out] */ FCurve **out_ppFCurve);


void __RPC_STUB Parameter_AddFCurve2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_ConnectFromPreset_Proxy( 
    Parameter * This,
    /* [in] */ BSTR in_PresetName,
    /* [in] */ BSTR in_PresetFamily,
    /* [optional][out] */ VARIANT *out_pvPrevDataSource,
    /* [retval][out] */ DataSource **out_ppDataSource);


void __RPC_STUB Parameter_ConnectFromPreset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_ConnectFromFile_Proxy( 
    Parameter * This,
    /* [in] */ BSTR in_FileName,
    /* [optional][out] */ VARIANT *out_pvPrevDataSource,
    /* [retval][out] */ DataSource **out_ppDataSource);


void __RPC_STUB Parameter_ConnectFromFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_ConnectFromProgID_Proxy( 
    Parameter * This,
    /* [in] */ BSTR in_ProgID,
    /* [optional][out] */ VARIANT *out_pvPrevDataSource,
    /* [retval][out] */ DataSource **out_ppDataSource);


void __RPC_STUB Parameter_ConnectFromProgID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_Connect_Proxy( 
    Parameter * This,
    /* [in] */ DataSource *in_pDataSource,
    /* [retval][out] */ DataSource **out_ppPrevDataSource);


void __RPC_STUB Parameter_Connect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_Disconnect_Proxy( 
    Parameter * This,
    /* [retval][out] */ DataSource **out_ppPrevDataSource);


void __RPC_STUB Parameter_Disconnect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Description_Proxy( 
    Parameter * This,
    /* [retval][out] */ BSTR *out_pVal);


void __RPC_STUB Parameter_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_ValueType_Proxy( 
    Parameter * This,
    /* [retval][out] */ siVariantType *out_pVal);


void __RPC_STUB Parameter_get_ValueType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Min_Proxy( 
    Parameter * This,
    /* [retval][out] */ LPVARIANT pVal);


void __RPC_STUB Parameter_get_Min_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Max_Proxy( 
    Parameter * This,
    /* [retval][out] */ LPVARIANT pVal);


void __RPC_STUB Parameter_get_Max_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_SuggestedMin_Proxy( 
    Parameter * This,
    /* [retval][out] */ LPVARIANT pVal);


void __RPC_STUB Parameter_get_SuggestedMin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_SuggestedMax_Proxy( 
    Parameter * This,
    /* [retval][out] */ LPVARIANT pVal);


void __RPC_STUB Parameter_get_SuggestedMax_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Default_Proxy( 
    Parameter * This,
    /* [retval][out] */ LPVARIANT pVal);


void __RPC_STUB Parameter_get_Default_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_IsAnimated_Proxy( 
    Parameter * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0134,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0135);


void __RPC_STUB Parameter_IsAnimated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_AnimatedParameters_Proxy( 
    Parameter * This,
    /* [defaultvalue][in] */ siSourceType __MIDL_0136,
    /* [retval][out] */ ParameterCollection **__MIDL_0137);


void __RPC_STUB Parameter_AnimatedParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Animatable_Proxy( 
    Parameter * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB Parameter_get_Animatable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Parameter_put_Animatable_Proxy( 
    Parameter * This,
    /* [in] */ VARIANT_BOOL in_Val);


void __RPC_STUB Parameter_put_Animatable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_ReadOnly_Proxy( 
    Parameter * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB Parameter_get_ReadOnly_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Parameter_put_ReadOnly_Proxy( 
    Parameter * This,
    /* [in] */ VARIANT_BOOL in_Val);


void __RPC_STUB Parameter_put_ReadOnly_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Parameter_SetCapabilityFlag_Proxy( 
    Parameter * This,
    /* [in] */ LONG in_Flag,
    /* [in] */ VARIANT_BOOL in_bEnable);


void __RPC_STUB Parameter_SetCapabilityFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Parameter_Enable_Proxy( 
    Parameter * This,
    BOOL in_bEnable);


void __RPC_STUB Parameter_Enable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Parameter_Show_Proxy( 
    Parameter * This,
    BOOL in_bShow);


void __RPC_STUB Parameter_Show_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_LockType_Proxy( 
    Parameter * This,
    /* [retval][out] */ siLockType *__MIDL_0138);


void __RPC_STUB Parameter_get_LockType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_LockLevel_Proxy( 
    Parameter * This,
    /* [retval][out] */ siLockLevel *__MIDL_0139);


void __RPC_STUB Parameter_get_LockLevel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_IsLocked_Proxy( 
    Parameter * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0140);


void __RPC_STUB Parameter_IsLocked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_SetLock_Proxy( 
    Parameter * This,
    /* [defaultvalue][in] */ siLockLevel in_LockLevel);


void __RPC_STUB Parameter_SetLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_UnSetLock_Proxy( 
    Parameter * This,
    /* [defaultvalue][in] */ siLockLevel in_LockLevel,
    /* [defaultvalue][in] */ BSTR in_Password);


void __RPC_STUB Parameter_UnSetLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Tags_Proxy( 
    Parameter * This,
    /* [retval][out] */ siTags *out_pVal);


void __RPC_STUB Parameter_get_Tags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Parameter_put_Tags_Proxy( 
    Parameter * This,
    /* [in] */ siTags in_Val);


void __RPC_STUB Parameter_put_Tags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Parameter_AddScriptedOp_Proxy( 
    Parameter * This,
    /* [defaultvalue][in] */ BSTR bszCode,
    /* [optional][in] */ VARIANT vInputs,
    /* [defaultvalue][in] */ BSTR bszName,
    /* [defaultvalue][in] */ BSTR bszLanguage,
    /* [retval][out] */ CustomOperator **ppCOP);


void __RPC_STUB Parameter_AddScriptedOp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Parameter_AddScriptedOpFromFile_Proxy( 
    Parameter * This,
    /* [defaultvalue][in] */ BSTR bszFileName,
    /* [optional][in] */ VARIANT vInputs,
    /* [defaultvalue][in] */ BSTR bszName,
    /* [defaultvalue][in] */ BSTR bszLanguage,
    /* [retval][out] */ CustomOperator **ppCOP);


void __RPC_STUB Parameter_AddScriptedOpFromFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Model_Proxy( 
    Parameter * This,
    /* [retval][out] */ Model **__MIDL_0141);


void __RPC_STUB Parameter_get_Model_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Parent3DObject_Proxy( 
    Parameter * This,
    /* [retval][out] */ X3DObject **__MIDL_0142);


void __RPC_STUB Parameter_get_Parent3DObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_HasInstanceValue_Proxy( 
    Parameter * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0143);


void __RPC_STUB Parameter_get_HasInstanceValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_IsSupportedInstanceValue_Proxy( 
    Parameter * This,
    /* [in] */ IDispatch *in_obj,
    /* [in] */ VARIANT __MIDL_0144,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0145);


void __RPC_STUB Parameter_IsSupportedInstanceValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_GetInstanceValue_Proxy( 
    Parameter * This,
    /* [in] */ IDispatch *in_obj,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0146,
    /* [retval][out] */ VARIANT *__MIDL_0147);


void __RPC_STUB Parameter_GetInstanceValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_SetInstanceValue_Proxy( 
    Parameter * This,
    /* [in] */ IDispatch *in_obj,
    /* [in] */ VARIANT __MIDL_0148,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0149,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0150);


void __RPC_STUB Parameter_SetInstanceValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Parameter_get_Keyable_Proxy( 
    Parameter * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB Parameter_get_Keyable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Parameter_put_Keyable_Proxy( 
    Parameter * This,
    /* [in] */ VARIANT_BOOL in_Val);


void __RPC_STUB Parameter_put_Keyable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Parameter_AddExpression_Proxy( 
    Parameter * This,
    /* [in] */ BSTR in_strExpr,
    /* [retval][out] */ Expression **out_NewExpression);


void __RPC_STUB Parameter_AddExpression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Parameter_AddCustomOp_Proxy( 
    Parameter * This,
    /* [in] */ BSTR bszType,
    /* [optional][in] */ VARIANT vInputs,
    /* [defaultvalue][in] */ BSTR bszName,
    /* [retval][out] */ CustomOperator **ppCOP);


void __RPC_STUB Parameter_AddCustomOp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Parameter_INTERFACE_DEFINED__ */


#ifndef __ProxyParameter_INTERFACE_DEFINED__
#define __ProxyParameter_INTERFACE_DEFINED__

/* interface ProxyParameter */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ProxyParameter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("157FB533-7C8A-42a5-8A84-8CE79F0574D3")
    ProxyParameter : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MasterParameter( 
            /* [retval][out] */ Parameter **out_ppVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ProxyParameterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ProxyParameter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ProxyParameter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ProxyParameter * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ProxyParameter * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ProxyParameter * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ProxyParameter * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ProxyParameter * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MasterParameter )( 
            ProxyParameter * This,
            /* [retval][out] */ Parameter **out_ppVal);
        
        END_INTERFACE
    } ProxyParameterVtbl;

    interface ProxyParameter
    {
        CONST_VTBL struct ProxyParameterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ProxyParameter_get_MasterParameter(This,out_ppVal)	\
    (This)->lpVtbl -> get_MasterParameter(This,out_ppVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProxyParameter_get_MasterParameter_Proxy( 
    ProxyParameter * This,
    /* [retval][out] */ Parameter **out_ppVal);


void __RPC_STUB ProxyParameter_get_MasterParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ProxyParameter_INTERFACE_DEFINED__ */


#ifndef __ArrayParameter_INTERFACE_DEFINED__
#define __ArrayParameter_INTERFACE_DEFINED__

/* interface ArrayParameter */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ArrayParameter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2F3809B4-0B71-4AC1-9271-F7C38577D4FD")
    ArrayParameter : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [retval][out] */ Parameter **out_ppParameter) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove( 
            /* [in] */ VARIANT *in_param) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *out_pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Move( 
            /* [in] */ VARIANT *in_param,
            /* [in] */ LONG in_upDown) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddValue( 
            /* [in] */ VARIANT in_value,
            /* [retval][out] */ Parameter **out_ppParameter) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ArrayParameterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ArrayParameter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ArrayParameter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ArrayParameter * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ArrayParameter * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ArrayParameter * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ArrayParameter * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ArrayParameter * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            ArrayParameter * This,
            /* [retval][out] */ Parameter **out_ppParameter);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( 
            ArrayParameter * This,
            /* [in] */ VARIANT *in_param);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ArrayParameter * This,
            /* [retval][out] */ LONG *out_pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            ArrayParameter * This,
            /* [in] */ VARIANT *in_param,
            /* [in] */ LONG in_upDown);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddValue )( 
            ArrayParameter * This,
            /* [in] */ VARIANT in_value,
            /* [retval][out] */ Parameter **out_ppParameter);
        
        END_INTERFACE
    } ArrayParameterVtbl;

    interface ArrayParameter
    {
        CONST_VTBL struct ArrayParameterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ArrayParameter_Add(This,out_ppParameter)	\
    (This)->lpVtbl -> Add(This,out_ppParameter)

#define ArrayParameter_Remove(This,in_param)	\
    (This)->lpVtbl -> Remove(This,in_param)

#define ArrayParameter_get_Count(This,out_pCount)	\
    (This)->lpVtbl -> get_Count(This,out_pCount)

#define ArrayParameter_Move(This,in_param,in_upDown)	\
    (This)->lpVtbl -> Move(This,in_param,in_upDown)

#define ArrayParameter_AddValue(This,in_value,out_ppParameter)	\
    (This)->lpVtbl -> AddValue(This,in_value,out_ppParameter)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArrayParameter_Add_Proxy( 
    ArrayParameter * This,
    /* [retval][out] */ Parameter **out_ppParameter);


void __RPC_STUB ArrayParameter_Add_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArrayParameter_Remove_Proxy( 
    ArrayParameter * This,
    /* [in] */ VARIANT *in_param);


void __RPC_STUB ArrayParameter_Remove_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ArrayParameter_get_Count_Proxy( 
    ArrayParameter * This,
    /* [retval][out] */ LONG *out_pCount);


void __RPC_STUB ArrayParameter_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArrayParameter_Move_Proxy( 
    ArrayParameter * This,
    /* [in] */ VARIANT *in_param,
    /* [in] */ LONG in_upDown);


void __RPC_STUB ArrayParameter_Move_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArrayParameter_AddValue_Proxy( 
    ArrayParameter * This,
    /* [in] */ VARIANT in_value,
    /* [retval][out] */ Parameter **out_ppParameter);


void __RPC_STUB ArrayParameter_AddValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ArrayParameter_INTERFACE_DEFINED__ */


#ifndef __SimulationEnvironment_INTERFACE_DEFINED__
#define __SimulationEnvironment_INTERFACE_DEFINED__

/* interface SimulationEnvironment */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_SimulationEnvironment;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("347db2d7-7f4b-4a96-8bcb-3b5262069eab")
    SimulationEnvironment : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Containers( 
            /* [retval][out] */ ProjectItemCollection **__MIDL_0169) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Caches( 
            /* [retval][out] */ ActionSourceCollection **__MIDL_0170) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Operators( 
            /* [retval][out] */ OperatorCollection **__MIDL_0171) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SimulationTimeControl( 
            /* [retval][out] */ Property **__MIDL_0172) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindCacheForModel( 
            /* [in] */ Model *__MIDL_0173,
            /* [retval][out] */ ActionSource **__MIDL_0174) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SimulationEnvironmentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SimulationEnvironment * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SimulationEnvironment * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SimulationEnvironment * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SimulationEnvironment * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SimulationEnvironment * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SimulationEnvironment * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SimulationEnvironment * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Containers )( 
            SimulationEnvironment * This,
            /* [retval][out] */ ProjectItemCollection **__MIDL_0169);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caches )( 
            SimulationEnvironment * This,
            /* [retval][out] */ ActionSourceCollection **__MIDL_0170);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Operators )( 
            SimulationEnvironment * This,
            /* [retval][out] */ OperatorCollection **__MIDL_0171);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SimulationTimeControl )( 
            SimulationEnvironment * This,
            /* [retval][out] */ Property **__MIDL_0172);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindCacheForModel )( 
            SimulationEnvironment * This,
            /* [in] */ Model *__MIDL_0173,
            /* [retval][out] */ ActionSource **__MIDL_0174);
        
        END_INTERFACE
    } SimulationEnvironmentVtbl;

    interface SimulationEnvironment
    {
        CONST_VTBL struct SimulationEnvironmentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SimulationEnvironment_get_Containers(This,__MIDL_0169)	\
    (This)->lpVtbl -> get_Containers(This,__MIDL_0169)

#define SimulationEnvironment_get_Caches(This,__MIDL_0170)	\
    (This)->lpVtbl -> get_Caches(This,__MIDL_0170)

#define SimulationEnvironment_get_Operators(This,__MIDL_0171)	\
    (This)->lpVtbl -> get_Operators(This,__MIDL_0171)

#define SimulationEnvironment_get_SimulationTimeControl(This,__MIDL_0172)	\
    (This)->lpVtbl -> get_SimulationTimeControl(This,__MIDL_0172)

#define SimulationEnvironment_FindCacheForModel(This,__MIDL_0173,__MIDL_0174)	\
    (This)->lpVtbl -> FindCacheForModel(This,__MIDL_0173,__MIDL_0174)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SimulationEnvironment_get_Containers_Proxy( 
    SimulationEnvironment * This,
    /* [retval][out] */ ProjectItemCollection **__MIDL_0169);


void __RPC_STUB SimulationEnvironment_get_Containers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SimulationEnvironment_get_Caches_Proxy( 
    SimulationEnvironment * This,
    /* [retval][out] */ ActionSourceCollection **__MIDL_0170);


void __RPC_STUB SimulationEnvironment_get_Caches_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SimulationEnvironment_get_Operators_Proxy( 
    SimulationEnvironment * This,
    /* [retval][out] */ OperatorCollection **__MIDL_0171);


void __RPC_STUB SimulationEnvironment_get_Operators_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SimulationEnvironment_get_SimulationTimeControl_Proxy( 
    SimulationEnvironment * This,
    /* [retval][out] */ Property **__MIDL_0172);


void __RPC_STUB SimulationEnvironment_get_SimulationTimeControl_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SimulationEnvironment_FindCacheForModel_Proxy( 
    SimulationEnvironment * This,
    /* [in] */ Model *__MIDL_0173,
    /* [retval][out] */ ActionSource **__MIDL_0174);


void __RPC_STUB SimulationEnvironment_FindCacheForModel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SimulationEnvironment_INTERFACE_DEFINED__ */


#ifndef __SimulationEnvironmentCollection_INTERFACE_DEFINED__
#define __SimulationEnvironmentCollection_INTERFACE_DEFINED__

/* interface SimulationEnvironmentCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SimulationEnvironmentCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("94afeb52-6f01-4025-bd75-92acbcf1c5e9")
    SimulationEnvironmentCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ SimulationEnvironment **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SimulationEnvironmentCollection **__MIDL_0551) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ SimulationEnvironment **__MIDL_0552) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0553) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SimulationEnvironmentCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SimulationEnvironmentCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SimulationEnvironmentCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SimulationEnvironmentCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SimulationEnvironmentCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SimulationEnvironmentCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SimulationEnvironmentCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SimulationEnvironmentCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            SimulationEnvironmentCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ SimulationEnvironment **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            SimulationEnvironmentCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            SimulationEnvironmentCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            SimulationEnvironmentCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SimulationEnvironmentCollection **__MIDL_0551);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            SimulationEnvironmentCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ SimulationEnvironment **__MIDL_0552);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            SimulationEnvironmentCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0553);
        
        END_INTERFACE
    } SimulationEnvironmentCollectionVtbl;

    interface SimulationEnvironmentCollection
    {
        CONST_VTBL struct SimulationEnvironmentCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SimulationEnvironmentCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define SimulationEnvironmentCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define SimulationEnvironmentCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define SimulationEnvironmentCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0551)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0551)

#define SimulationEnvironmentCollection_Find(This,in_filter,__MIDL_0552)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0552)

#define SimulationEnvironmentCollection_GetAsText(This,__MIDL_0553)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0553)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE SimulationEnvironmentCollection_get_Item_Proxy( 
    SimulationEnvironmentCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ SimulationEnvironment **out_pParam);


void __RPC_STUB SimulationEnvironmentCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE SimulationEnvironmentCollection_get_Count_Proxy( 
    SimulationEnvironmentCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB SimulationEnvironmentCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SimulationEnvironmentCollection_get__NewEnum_Proxy( 
    SimulationEnvironmentCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SimulationEnvironmentCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SimulationEnvironmentCollection_Filter_Proxy( 
    SimulationEnvironmentCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ SimulationEnvironmentCollection **__MIDL_0551);


void __RPC_STUB SimulationEnvironmentCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SimulationEnvironmentCollection_Find_Proxy( 
    SimulationEnvironmentCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ SimulationEnvironment **__MIDL_0552);


void __RPC_STUB SimulationEnvironmentCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SimulationEnvironmentCollection_GetAsText_Proxy( 
    SimulationEnvironmentCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0553);


void __RPC_STUB SimulationEnvironmentCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SimulationEnvironmentCollection_INTERFACE_DEFINED__ */


#ifndef __FileReference_INTERFACE_DEFINED__
#define __FileReference_INTERFACE_DEFINED__

/* interface FileReference */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_FileReference;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3516B270-81CA-11d3-B964-00A024C78EE3")
    FileReference : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Path( 
            /* [in] */ BSTR in_newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileType( 
            /* [retval][out] */ BSTR *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ResolvedPath( 
            /* [retval][out] */ BSTR *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FileExists( 
            /* [retval][out] */ BOOL *out_pRes) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UNCPath( 
            /* [retval][out] */ BSTR *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_GUID( 
            /* [retval][out] */ BSTR *out_pGUID) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Owners( 
            /* [retval][out] */ XSICollection **__MIDL_0397) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfFilesInSequence( 
            /* [retval][out] */ ULONG *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFileInSequence( 
            /* [in] */ ULONG in_iIndex,
            /* [retval][out] */ BSTR *out_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FileReferenceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FileReference * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FileReference * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FileReference * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FileReference * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FileReference * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FileReference * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FileReference * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            FileReference * This,
            /* [retval][out] */ BSTR *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            FileReference * This,
            /* [in] */ BSTR in_newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileType )( 
            FileReference * This,
            /* [retval][out] */ BSTR *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ResolvedPath )( 
            FileReference * This,
            /* [retval][out] */ BSTR *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FileExists )( 
            FileReference * This,
            /* [retval][out] */ BOOL *out_pRes);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UNCPath )( 
            FileReference * This,
            /* [retval][out] */ BSTR *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( 
            FileReference * This,
            /* [retval][out] */ BSTR *out_pGUID);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Owners )( 
            FileReference * This,
            /* [retval][out] */ XSICollection **__MIDL_0397);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfFilesInSequence )( 
            FileReference * This,
            /* [retval][out] */ ULONG *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFileInSequence )( 
            FileReference * This,
            /* [in] */ ULONG in_iIndex,
            /* [retval][out] */ BSTR *out_pVal);
        
        END_INTERFACE
    } FileReferenceVtbl;

    interface FileReference
    {
        CONST_VTBL struct FileReferenceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define FileReference_get_Path(This,out_pVal)	\
    (This)->lpVtbl -> get_Path(This,out_pVal)

#define FileReference_put_Path(This,in_newVal)	\
    (This)->lpVtbl -> put_Path(This,in_newVal)

#define FileReference_get_FileType(This,out_pVal)	\
    (This)->lpVtbl -> get_FileType(This,out_pVal)

#define FileReference_get_ResolvedPath(This,out_pVal)	\
    (This)->lpVtbl -> get_ResolvedPath(This,out_pVal)

#define FileReference_FileExists(This,out_pRes)	\
    (This)->lpVtbl -> FileExists(This,out_pRes)

#define FileReference_get_UNCPath(This,out_pVal)	\
    (This)->lpVtbl -> get_UNCPath(This,out_pVal)

#define FileReference_get_GUID(This,out_pGUID)	\
    (This)->lpVtbl -> get_GUID(This,out_pGUID)

#define FileReference_get_Owners(This,__MIDL_0397)	\
    (This)->lpVtbl -> get_Owners(This,__MIDL_0397)

#define FileReference_get_NumberOfFilesInSequence(This,out_pVal)	\
    (This)->lpVtbl -> get_NumberOfFilesInSequence(This,out_pVal)

#define FileReference_GetFileInSequence(This,in_iIndex,out_pVal)	\
    (This)->lpVtbl -> GetFileInSequence(This,in_iIndex,out_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileReference_get_Path_Proxy( 
    FileReference * This,
    /* [retval][out] */ BSTR *out_pVal);


void __RPC_STUB FileReference_get_Path_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FileReference_put_Path_Proxy( 
    FileReference * This,
    /* [in] */ BSTR in_newVal);


void __RPC_STUB FileReference_put_Path_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileReference_get_FileType_Proxy( 
    FileReference * This,
    /* [retval][out] */ BSTR *out_pVal);


void __RPC_STUB FileReference_get_FileType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileReference_get_ResolvedPath_Proxy( 
    FileReference * This,
    /* [retval][out] */ BSTR *out_pVal);


void __RPC_STUB FileReference_get_ResolvedPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FileReference_FileExists_Proxy( 
    FileReference * This,
    /* [retval][out] */ BOOL *out_pRes);


void __RPC_STUB FileReference_FileExists_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileReference_get_UNCPath_Proxy( 
    FileReference * This,
    /* [retval][out] */ BSTR *out_pVal);


void __RPC_STUB FileReference_get_UNCPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileReference_get_GUID_Proxy( 
    FileReference * This,
    /* [retval][out] */ BSTR *out_pGUID);


void __RPC_STUB FileReference_get_GUID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileReference_get_Owners_Proxy( 
    FileReference * This,
    /* [retval][out] */ XSICollection **__MIDL_0397);


void __RPC_STUB FileReference_get_Owners_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileReference_get_NumberOfFilesInSequence_Proxy( 
    FileReference * This,
    /* [retval][out] */ ULONG *out_pVal);


void __RPC_STUB FileReference_get_NumberOfFilesInSequence_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FileReference_GetFileInSequence_Proxy( 
    FileReference * This,
    /* [in] */ ULONG in_iIndex,
    /* [retval][out] */ BSTR *out_pVal);


void __RPC_STUB FileReference_GetFileInSequence_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FileReference_INTERFACE_DEFINED__ */


#ifndef __FileReferenceCollection_INTERFACE_DEFINED__
#define __FileReferenceCollection_INTERFACE_DEFINED__

/* interface FileReferenceCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_FileReferenceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("41A025C4-6794-4681-9754-169DEF04BB02")
    FileReferenceCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FileReference **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FileReferenceCollection **__MIDL_0554) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FileReference **__MIDL_0555) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0556) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FileReferenceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FileReferenceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FileReferenceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FileReferenceCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FileReferenceCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FileReferenceCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FileReferenceCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FileReferenceCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            FileReferenceCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FileReference **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            FileReferenceCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            FileReferenceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            FileReferenceCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FileReferenceCollection **__MIDL_0554);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            FileReferenceCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FileReference **__MIDL_0555);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            FileReferenceCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0556);
        
        END_INTERFACE
    } FileReferenceCollectionVtbl;

    interface FileReferenceCollection
    {
        CONST_VTBL struct FileReferenceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define FileReferenceCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define FileReferenceCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define FileReferenceCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define FileReferenceCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0554)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0554)

#define FileReferenceCollection_Find(This,in_filter,__MIDL_0555)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0555)

#define FileReferenceCollection_GetAsText(This,__MIDL_0556)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0556)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE FileReferenceCollection_get_Item_Proxy( 
    FileReferenceCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ FileReference **out_pParam);


void __RPC_STUB FileReferenceCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE FileReferenceCollection_get_Count_Proxy( 
    FileReferenceCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB FileReferenceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FileReferenceCollection_get__NewEnum_Proxy( 
    FileReferenceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FileReferenceCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FileReferenceCollection_Filter_Proxy( 
    FileReferenceCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ FileReferenceCollection **__MIDL_0554);


void __RPC_STUB FileReferenceCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FileReferenceCollection_Find_Proxy( 
    FileReferenceCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ FileReference **__MIDL_0555);


void __RPC_STUB FileReferenceCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FileReferenceCollection_GetAsText_Proxy( 
    FileReferenceCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0556);


void __RPC_STUB FileReferenceCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FileReferenceCollection_INTERFACE_DEFINED__ */


#ifndef __HairPrimitive_INTERFACE_DEFINED__
#define __HairPrimitive_INTERFACE_DEFINED__

/* interface HairPrimitive */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_HairPrimitive;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3C22D9B9-BD23-4c94-A976-F7AE3DC6389D")
    HairPrimitive : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct HairPrimitiveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            HairPrimitive * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            HairPrimitive * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            HairPrimitive * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            HairPrimitive * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            HairPrimitive * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            HairPrimitive * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            HairPrimitive * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } HairPrimitiveVtbl;

    interface HairPrimitive
    {
        CONST_VTBL struct HairPrimitiveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __HairPrimitive_INTERFACE_DEFINED__ */


#ifndef __DataSource_INTERFACE_DEFINED__
#define __DataSource_INTERFACE_DEFINED__

/* interface DataSource */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_DataSource;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7EBBC751-47D3-11d4-ACDB-0090275802BF")
    DataSource : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct DataSourceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            DataSource * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            DataSource * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            DataSource * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            DataSource * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            DataSource * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            DataSource * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            DataSource * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } DataSourceVtbl;

    interface DataSource
    {
        CONST_VTBL struct DataSourceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __DataSource_INTERFACE_DEFINED__ */


#ifndef __AnimationSource_INTERFACE_DEFINED__
#define __AnimationSource_INTERFACE_DEFINED__

/* interface AnimationSource */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_AnimationSource;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7EBBC752-47D3-11d4-ACDB-0090275802BF")
    AnimationSource : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct AnimationSourceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            AnimationSource * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            AnimationSource * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            AnimationSource * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            AnimationSource * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            AnimationSource * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            AnimationSource * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            AnimationSource * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } AnimationSourceVtbl;

    interface AnimationSource
    {
        CONST_VTBL struct AnimationSourceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __AnimationSource_INTERFACE_DEFINED__ */


#ifndef __FCurve_INTERFACE_DEFINED__
#define __FCurve_INTERFACE_DEFINED__

/* interface FCurve */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_FCurve;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F5346151-47CE-11d4-ACDB-0090275802BF")
    FCurve : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ siFCurveType *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ siFCurveType in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NoKeyValue( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_NoKeyValue( 
            /* [in] */ VARIANT in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Keys( 
            /* [retval][out] */ FCurveKeyCollection **out_ppVal) = 0;
        
        virtual /* [hidden][helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Keys( 
            /* [in] */ FCurveKeyCollection *in_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Extrapolation( 
            /* [retval][out] */ siFCurveExtrapolation *out_ppVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Extrapolation( 
            /* [in] */ siFCurveExtrapolation in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Interpolation( 
            /* [retval][out] */ siFCurveInterpolation *out_ppVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Interpolation( 
            /* [in] */ siFCurveInterpolation in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LowClamp( 
            /* [retval][out] */ VARIANT *out_ppVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LowClamp( 
            /* [in] */ VARIANT in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_HighClamp( 
            /* [retval][out] */ VARIANT *out_ppVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_HighClamp( 
            /* [in] */ VARIANT in_val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Eval( 
            /* [in] */ VARIANT in_Frame,
            /* [retval][out] */ LPVARIANT out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetKeys( 
            /* [in] */ VARIANT in_vsaKeys) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetKeyTangents( 
            /* [in] */ VARIANT in_vsaTangents) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Locked( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Locked( 
            /* [in] */ VARIANT_BOOL in_Val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddKey( 
            /* [optional][in] */ VARIANT in_Frame,
            /* [optional][in] */ VARIANT in_Value,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Overwrite,
            /* [retval][out] */ LONG *out_pIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Resample( 
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ double in_Step = 1,
            /* [defaultvalue][in] */ VARIANT_BOOL in_KeepExistingKeys = 0,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveKey( 
            /* [optional][in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance = -1,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveKeyAtIndex( 
            /* [in] */ LONG in_Index,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveKeysAtIndex( 
            /* [in] */ LONG in_StartIndex,
            /* [in] */ LONG in_Count,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveKeys( 
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock,
            /* [retval][out] */ LONG *out_pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE KeyExists( 
            /* [in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [retval][out] */ VARIANT_BOOL *out_pExists) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetKey( 
            /* [in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [retval][out] */ FCurveKey **out_pKey) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumKeys( 
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [retval][out] */ LONG *out_pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetKeyAtIndex( 
            /* [in] */ LONG in_Index,
            /* [retval][out] */ FCurveKey **out_pKey) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetKeyIndex( 
            /* [in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [retval][out] */ LONG *out_pIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetKeyFrame( 
            /* [in] */ LONG in_Index,
            /* [retval][out] */ double *out_pFrame) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetKeyValue( 
            /* [in] */ LONG in_Index,
            /* [retval][out] */ VARIANT *out_pValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetKey( 
            /* [in] */ LONG in_Index,
            /* [in] */ VARIANT in_Frame,
            /* [in] */ VARIANT in_Value,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE BeginEdit( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EndEdit( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UndoEdit( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsEditing( 
            /* [retval][out] */ VARIANT_BOOL *out_pValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SI3DStyle( 
            /* [retval][out] */ VARIANT_BOOL *out_pValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SI3DStyle( 
            /* [in] */ VARIANT_BOOL in_Value) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DependsOnFrameRate( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DependsOnFrameRate( 
            /* [in] */ VARIANT_BOOL in_Val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Smooth( 
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ double in_dFilterSize = 5,
            /* [defaultvalue][in] */ double in_dSamplingStep = 1,
            /* [defaultvalue][in] */ siFCurveSmoothFilterType in_filterType = siFCurveAverageFilterType,
            /* [defaultvalue][in] */ double in_dGaussianVariance = 1) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Fit( 
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ double in_dFittingTolerance = 0.1) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ FCurve *in_fcurve) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FCurveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FCurve * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FCurve * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FCurve * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FCurve * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FCurve * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FCurve * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FCurve * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            FCurve * This,
            /* [retval][out] */ siFCurveType *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            FCurve * This,
            /* [in] */ siFCurveType in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NoKeyValue )( 
            FCurve * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_NoKeyValue )( 
            FCurve * This,
            /* [in] */ VARIANT in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Keys )( 
            FCurve * This,
            /* [retval][out] */ FCurveKeyCollection **out_ppVal);
        
        /* [hidden][helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Keys )( 
            FCurve * This,
            /* [in] */ FCurveKeyCollection *in_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Extrapolation )( 
            FCurve * This,
            /* [retval][out] */ siFCurveExtrapolation *out_ppVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Extrapolation )( 
            FCurve * This,
            /* [in] */ siFCurveExtrapolation in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Interpolation )( 
            FCurve * This,
            /* [retval][out] */ siFCurveInterpolation *out_ppVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Interpolation )( 
            FCurve * This,
            /* [in] */ siFCurveInterpolation in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LowClamp )( 
            FCurve * This,
            /* [retval][out] */ VARIANT *out_ppVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LowClamp )( 
            FCurve * This,
            /* [in] */ VARIANT in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HighClamp )( 
            FCurve * This,
            /* [retval][out] */ VARIANT *out_ppVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HighClamp )( 
            FCurve * This,
            /* [in] */ VARIANT in_val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Eval )( 
            FCurve * This,
            /* [in] */ VARIANT in_Frame,
            /* [retval][out] */ LPVARIANT out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetKeys )( 
            FCurve * This,
            /* [in] */ VARIANT in_vsaKeys);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetKeyTangents )( 
            FCurve * This,
            /* [in] */ VARIANT in_vsaTangents);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Locked )( 
            FCurve * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Locked )( 
            FCurve * This,
            /* [in] */ VARIANT_BOOL in_Val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddKey )( 
            FCurve * This,
            /* [optional][in] */ VARIANT in_Frame,
            /* [optional][in] */ VARIANT in_Value,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Overwrite,
            /* [retval][out] */ LONG *out_pIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Resample )( 
            FCurve * This,
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ double in_Step,
            /* [defaultvalue][in] */ VARIANT_BOOL in_KeepExistingKeys,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveKey )( 
            FCurve * This,
            /* [optional][in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveKeyAtIndex )( 
            FCurve * This,
            /* [in] */ LONG in_Index,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveKeysAtIndex )( 
            FCurve * This,
            /* [in] */ LONG in_StartIndex,
            /* [in] */ LONG in_Count,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveKeys )( 
            FCurve * This,
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock,
            /* [retval][out] */ LONG *out_pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *KeyExists )( 
            FCurve * This,
            /* [in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [retval][out] */ VARIANT_BOOL *out_pExists);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetKey )( 
            FCurve * This,
            /* [in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [retval][out] */ FCurveKey **out_pKey);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumKeys )( 
            FCurve * This,
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [retval][out] */ LONG *out_pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetKeyAtIndex )( 
            FCurve * This,
            /* [in] */ LONG in_Index,
            /* [retval][out] */ FCurveKey **out_pKey);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetKeyIndex )( 
            FCurve * This,
            /* [in] */ VARIANT in_Frame,
            /* [defaultvalue][in] */ double in_Tolerance,
            /* [retval][out] */ LONG *out_pIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetKeyFrame )( 
            FCurve * This,
            /* [in] */ LONG in_Index,
            /* [retval][out] */ double *out_pFrame);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetKeyValue )( 
            FCurve * This,
            /* [in] */ LONG in_Index,
            /* [retval][out] */ VARIANT *out_pValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetKey )( 
            FCurve * This,
            /* [in] */ LONG in_Index,
            /* [in] */ VARIANT in_Frame,
            /* [in] */ VARIANT in_Value,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *BeginEdit )( 
            FCurve * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EndEdit )( 
            FCurve * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UndoEdit )( 
            FCurve * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsEditing )( 
            FCurve * This,
            /* [retval][out] */ VARIANT_BOOL *out_pValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SI3DStyle )( 
            FCurve * This,
            /* [retval][out] */ VARIANT_BOOL *out_pValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SI3DStyle )( 
            FCurve * This,
            /* [in] */ VARIANT_BOOL in_Value);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DependsOnFrameRate )( 
            FCurve * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DependsOnFrameRate )( 
            FCurve * This,
            /* [in] */ VARIANT_BOOL in_Val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Smooth )( 
            FCurve * This,
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ double in_dFilterSize,
            /* [defaultvalue][in] */ double in_dSamplingStep,
            /* [defaultvalue][in] */ siFCurveSmoothFilterType in_filterType,
            /* [defaultvalue][in] */ double in_dGaussianVariance);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Fit )( 
            FCurve * This,
            /* [optional][in] */ VARIANT in_StartFrame,
            /* [optional][in] */ VARIANT in_EndFrame,
            /* [defaultvalue][in] */ double in_dFittingTolerance);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Set )( 
            FCurve * This,
            /* [in] */ FCurve *in_fcurve);
        
        END_INTERFACE
    } FCurveVtbl;

    interface FCurve
    {
        CONST_VTBL struct FCurveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define FCurve_get_Type(This,out_pVal)	\
    (This)->lpVtbl -> get_Type(This,out_pVal)

#define FCurve_put_Type(This,in_val)	\
    (This)->lpVtbl -> put_Type(This,in_val)

#define FCurve_get_NoKeyValue(This,out_pVal)	\
    (This)->lpVtbl -> get_NoKeyValue(This,out_pVal)

#define FCurve_put_NoKeyValue(This,in_val)	\
    (This)->lpVtbl -> put_NoKeyValue(This,in_val)

#define FCurve_get_Keys(This,out_ppVal)	\
    (This)->lpVtbl -> get_Keys(This,out_ppVal)

#define FCurve_put_Keys(This,in_pVal)	\
    (This)->lpVtbl -> put_Keys(This,in_pVal)

#define FCurve_get_Extrapolation(This,out_ppVal)	\
    (This)->lpVtbl -> get_Extrapolation(This,out_ppVal)

#define FCurve_put_Extrapolation(This,in_val)	\
    (This)->lpVtbl -> put_Extrapolation(This,in_val)

#define FCurve_get_Interpolation(This,out_ppVal)	\
    (This)->lpVtbl -> get_Interpolation(This,out_ppVal)

#define FCurve_put_Interpolation(This,in_val)	\
    (This)->lpVtbl -> put_Interpolation(This,in_val)

#define FCurve_get_LowClamp(This,out_ppVal)	\
    (This)->lpVtbl -> get_LowClamp(This,out_ppVal)

#define FCurve_put_LowClamp(This,in_val)	\
    (This)->lpVtbl -> put_LowClamp(This,in_val)

#define FCurve_get_HighClamp(This,out_ppVal)	\
    (This)->lpVtbl -> get_HighClamp(This,out_ppVal)

#define FCurve_put_HighClamp(This,in_val)	\
    (This)->lpVtbl -> put_HighClamp(This,in_val)

#define FCurve_Eval(This,in_Frame,out_pVal)	\
    (This)->lpVtbl -> Eval(This,in_Frame,out_pVal)

#define FCurve_SetKeys(This,in_vsaKeys)	\
    (This)->lpVtbl -> SetKeys(This,in_vsaKeys)

#define FCurve_SetKeyTangents(This,in_vsaTangents)	\
    (This)->lpVtbl -> SetKeyTangents(This,in_vsaTangents)

#define FCurve_get_Locked(This,out_pVal)	\
    (This)->lpVtbl -> get_Locked(This,out_pVal)

#define FCurve_put_Locked(This,in_Val)	\
    (This)->lpVtbl -> put_Locked(This,in_Val)

#define FCurve_AddKey(This,in_Frame,in_Value,in_Tolerance,in_Overwrite,out_pIndex)	\
    (This)->lpVtbl -> AddKey(This,in_Frame,in_Value,in_Tolerance,in_Overwrite,out_pIndex)

#define FCurve_Resample(This,in_StartFrame,in_EndFrame,in_Step,in_KeepExistingKeys,in_OverrideKeyLock)	\
    (This)->lpVtbl -> Resample(This,in_StartFrame,in_EndFrame,in_Step,in_KeepExistingKeys,in_OverrideKeyLock)

#define FCurve_RemoveKey(This,in_Frame,in_Tolerance,in_OverrideKeyLock)	\
    (This)->lpVtbl -> RemoveKey(This,in_Frame,in_Tolerance,in_OverrideKeyLock)

#define FCurve_RemoveKeyAtIndex(This,in_Index,in_OverrideKeyLock)	\
    (This)->lpVtbl -> RemoveKeyAtIndex(This,in_Index,in_OverrideKeyLock)

#define FCurve_RemoveKeysAtIndex(This,in_StartIndex,in_Count,in_OverrideKeyLock)	\
    (This)->lpVtbl -> RemoveKeysAtIndex(This,in_StartIndex,in_Count,in_OverrideKeyLock)

#define FCurve_RemoveKeys(This,in_StartFrame,in_EndFrame,in_OverrideKeyLock,out_pCount)	\
    (This)->lpVtbl -> RemoveKeys(This,in_StartFrame,in_EndFrame,in_OverrideKeyLock,out_pCount)

#define FCurve_KeyExists(This,in_Frame,in_Tolerance,out_pExists)	\
    (This)->lpVtbl -> KeyExists(This,in_Frame,in_Tolerance,out_pExists)

#define FCurve_GetKey(This,in_Frame,in_Tolerance,out_pKey)	\
    (This)->lpVtbl -> GetKey(This,in_Frame,in_Tolerance,out_pKey)

#define FCurve_GetNumKeys(This,in_StartFrame,in_EndFrame,out_pCount)	\
    (This)->lpVtbl -> GetNumKeys(This,in_StartFrame,in_EndFrame,out_pCount)

#define FCurve_GetKeyAtIndex(This,in_Index,out_pKey)	\
    (This)->lpVtbl -> GetKeyAtIndex(This,in_Index,out_pKey)

#define FCurve_GetKeyIndex(This,in_Frame,in_Tolerance,out_pIndex)	\
    (This)->lpVtbl -> GetKeyIndex(This,in_Frame,in_Tolerance,out_pIndex)

#define FCurve_GetKeyFrame(This,in_Index,out_pFrame)	\
    (This)->lpVtbl -> GetKeyFrame(This,in_Index,out_pFrame)

#define FCurve_GetKeyValue(This,in_Index,out_pValue)	\
    (This)->lpVtbl -> GetKeyValue(This,in_Index,out_pValue)

#define FCurve_SetKey(This,in_Index,in_Frame,in_Value,in_OverrideKeyLock)	\
    (This)->lpVtbl -> SetKey(This,in_Index,in_Frame,in_Value,in_OverrideKeyLock)

#define FCurve_BeginEdit(This)	\
    (This)->lpVtbl -> BeginEdit(This)

#define FCurve_EndEdit(This)	\
    (This)->lpVtbl -> EndEdit(This)

#define FCurve_UndoEdit(This)	\
    (This)->lpVtbl -> UndoEdit(This)

#define FCurve_IsEditing(This,out_pValue)	\
    (This)->lpVtbl -> IsEditing(This,out_pValue)

#define FCurve_get_SI3DStyle(This,out_pValue)	\
    (This)->lpVtbl -> get_SI3DStyle(This,out_pValue)

#define FCurve_put_SI3DStyle(This,in_Value)	\
    (This)->lpVtbl -> put_SI3DStyle(This,in_Value)

#define FCurve_get_DependsOnFrameRate(This,out_pVal)	\
    (This)->lpVtbl -> get_DependsOnFrameRate(This,out_pVal)

#define FCurve_put_DependsOnFrameRate(This,in_Val)	\
    (This)->lpVtbl -> put_DependsOnFrameRate(This,in_Val)

#define FCurve_Smooth(This,in_StartFrame,in_EndFrame,in_dFilterSize,in_dSamplingStep,in_filterType,in_dGaussianVariance)	\
    (This)->lpVtbl -> Smooth(This,in_StartFrame,in_EndFrame,in_dFilterSize,in_dSamplingStep,in_filterType,in_dGaussianVariance)

#define FCurve_Fit(This,in_StartFrame,in_EndFrame,in_dFittingTolerance)	\
    (This)->lpVtbl -> Fit(This,in_StartFrame,in_EndFrame,in_dFittingTolerance)

#define FCurve_Set(This,in_fcurve)	\
    (This)->lpVtbl -> Set(This,in_fcurve)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_Type_Proxy( 
    FCurve * This,
    /* [retval][out] */ siFCurveType *out_pVal);


void __RPC_STUB FCurve_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_Type_Proxy( 
    FCurve * This,
    /* [in] */ siFCurveType in_val);


void __RPC_STUB FCurve_put_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_NoKeyValue_Proxy( 
    FCurve * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurve_get_NoKeyValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_NoKeyValue_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_val);


void __RPC_STUB FCurve_put_NoKeyValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_Keys_Proxy( 
    FCurve * This,
    /* [retval][out] */ FCurveKeyCollection **out_ppVal);


void __RPC_STUB FCurve_get_Keys_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [hidden][helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_Keys_Proxy( 
    FCurve * This,
    /* [in] */ FCurveKeyCollection *in_pVal);


void __RPC_STUB FCurve_put_Keys_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_Extrapolation_Proxy( 
    FCurve * This,
    /* [retval][out] */ siFCurveExtrapolation *out_ppVal);


void __RPC_STUB FCurve_get_Extrapolation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_Extrapolation_Proxy( 
    FCurve * This,
    /* [in] */ siFCurveExtrapolation in_val);


void __RPC_STUB FCurve_put_Extrapolation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_Interpolation_Proxy( 
    FCurve * This,
    /* [retval][out] */ siFCurveInterpolation *out_ppVal);


void __RPC_STUB FCurve_get_Interpolation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_Interpolation_Proxy( 
    FCurve * This,
    /* [in] */ siFCurveInterpolation in_val);


void __RPC_STUB FCurve_put_Interpolation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_LowClamp_Proxy( 
    FCurve * This,
    /* [retval][out] */ VARIANT *out_ppVal);


void __RPC_STUB FCurve_get_LowClamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_LowClamp_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_val);


void __RPC_STUB FCurve_put_LowClamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_HighClamp_Proxy( 
    FCurve * This,
    /* [retval][out] */ VARIANT *out_ppVal);


void __RPC_STUB FCurve_get_HighClamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_HighClamp_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_val);


void __RPC_STUB FCurve_put_HighClamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_Eval_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_Frame,
    /* [retval][out] */ LPVARIANT out_pVal);


void __RPC_STUB FCurve_Eval_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_SetKeys_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_vsaKeys);


void __RPC_STUB FCurve_SetKeys_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_SetKeyTangents_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_vsaTangents);


void __RPC_STUB FCurve_SetKeyTangents_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_Locked_Proxy( 
    FCurve * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FCurve_get_Locked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_Locked_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT_BOOL in_Val);


void __RPC_STUB FCurve_put_Locked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_AddKey_Proxy( 
    FCurve * This,
    /* [optional][in] */ VARIANT in_Frame,
    /* [optional][in] */ VARIANT in_Value,
    /* [defaultvalue][in] */ double in_Tolerance,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Overwrite,
    /* [retval][out] */ LONG *out_pIndex);


void __RPC_STUB FCurve_AddKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_Resample_Proxy( 
    FCurve * This,
    /* [optional][in] */ VARIANT in_StartFrame,
    /* [optional][in] */ VARIANT in_EndFrame,
    /* [defaultvalue][in] */ double in_Step,
    /* [defaultvalue][in] */ VARIANT_BOOL in_KeepExistingKeys,
    /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);


void __RPC_STUB FCurve_Resample_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_RemoveKey_Proxy( 
    FCurve * This,
    /* [optional][in] */ VARIANT in_Frame,
    /* [defaultvalue][in] */ double in_Tolerance,
    /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);


void __RPC_STUB FCurve_RemoveKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_RemoveKeyAtIndex_Proxy( 
    FCurve * This,
    /* [in] */ LONG in_Index,
    /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);


void __RPC_STUB FCurve_RemoveKeyAtIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_RemoveKeysAtIndex_Proxy( 
    FCurve * This,
    /* [in] */ LONG in_StartIndex,
    /* [in] */ LONG in_Count,
    /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);


void __RPC_STUB FCurve_RemoveKeysAtIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_RemoveKeys_Proxy( 
    FCurve * This,
    /* [optional][in] */ VARIANT in_StartFrame,
    /* [optional][in] */ VARIANT in_EndFrame,
    /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock,
    /* [retval][out] */ LONG *out_pCount);


void __RPC_STUB FCurve_RemoveKeys_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_KeyExists_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_Frame,
    /* [defaultvalue][in] */ double in_Tolerance,
    /* [retval][out] */ VARIANT_BOOL *out_pExists);


void __RPC_STUB FCurve_KeyExists_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_GetKey_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_Frame,
    /* [defaultvalue][in] */ double in_Tolerance,
    /* [retval][out] */ FCurveKey **out_pKey);


void __RPC_STUB FCurve_GetKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_GetNumKeys_Proxy( 
    FCurve * This,
    /* [optional][in] */ VARIANT in_StartFrame,
    /* [optional][in] */ VARIANT in_EndFrame,
    /* [retval][out] */ LONG *out_pCount);


void __RPC_STUB FCurve_GetNumKeys_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_GetKeyAtIndex_Proxy( 
    FCurve * This,
    /* [in] */ LONG in_Index,
    /* [retval][out] */ FCurveKey **out_pKey);


void __RPC_STUB FCurve_GetKeyAtIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_GetKeyIndex_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT in_Frame,
    /* [defaultvalue][in] */ double in_Tolerance,
    /* [retval][out] */ LONG *out_pIndex);


void __RPC_STUB FCurve_GetKeyIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_GetKeyFrame_Proxy( 
    FCurve * This,
    /* [in] */ LONG in_Index,
    /* [retval][out] */ double *out_pFrame);


void __RPC_STUB FCurve_GetKeyFrame_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_GetKeyValue_Proxy( 
    FCurve * This,
    /* [in] */ LONG in_Index,
    /* [retval][out] */ VARIANT *out_pValue);


void __RPC_STUB FCurve_GetKeyValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_SetKey_Proxy( 
    FCurve * This,
    /* [in] */ LONG in_Index,
    /* [in] */ VARIANT in_Frame,
    /* [in] */ VARIANT in_Value,
    /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideKeyLock);


void __RPC_STUB FCurve_SetKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_BeginEdit_Proxy( 
    FCurve * This);


void __RPC_STUB FCurve_BeginEdit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_EndEdit_Proxy( 
    FCurve * This);


void __RPC_STUB FCurve_EndEdit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_UndoEdit_Proxy( 
    FCurve * This);


void __RPC_STUB FCurve_UndoEdit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_IsEditing_Proxy( 
    FCurve * This,
    /* [retval][out] */ VARIANT_BOOL *out_pValue);


void __RPC_STUB FCurve_IsEditing_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_SI3DStyle_Proxy( 
    FCurve * This,
    /* [retval][out] */ VARIANT_BOOL *out_pValue);


void __RPC_STUB FCurve_get_SI3DStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_SI3DStyle_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT_BOOL in_Value);


void __RPC_STUB FCurve_put_SI3DStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurve_get_DependsOnFrameRate_Proxy( 
    FCurve * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FCurve_get_DependsOnFrameRate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurve_put_DependsOnFrameRate_Proxy( 
    FCurve * This,
    /* [in] */ VARIANT_BOOL in_Val);


void __RPC_STUB FCurve_put_DependsOnFrameRate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_Smooth_Proxy( 
    FCurve * This,
    /* [optional][in] */ VARIANT in_StartFrame,
    /* [optional][in] */ VARIANT in_EndFrame,
    /* [defaultvalue][in] */ double in_dFilterSize,
    /* [defaultvalue][in] */ double in_dSamplingStep,
    /* [defaultvalue][in] */ siFCurveSmoothFilterType in_filterType,
    /* [defaultvalue][in] */ double in_dGaussianVariance);


void __RPC_STUB FCurve_Smooth_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_Fit_Proxy( 
    FCurve * This,
    /* [optional][in] */ VARIANT in_StartFrame,
    /* [optional][in] */ VARIANT in_EndFrame,
    /* [defaultvalue][in] */ double in_dFittingTolerance);


void __RPC_STUB FCurve_Fit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurve_Set_Proxy( 
    FCurve * This,
    /* [in] */ FCurve *in_fcurve);


void __RPC_STUB FCurve_Set_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FCurve_INTERFACE_DEFINED__ */


#ifndef __StaticSource_INTERFACE_DEFINED__
#define __StaticSource_INTERFACE_DEFINED__

/* interface StaticSource */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_StaticSource;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0F9786E4-C0CA-11d4-80D3-0090275AE734")
    StaticSource : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ VARIANT *out_pvValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT in_vValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct StaticSourceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            StaticSource * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            StaticSource * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            StaticSource * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            StaticSource * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            StaticSource * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            StaticSource * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            StaticSource * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            StaticSource * This,
            /* [retval][out] */ VARIANT *out_pvValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            StaticSource * This,
            /* [in] */ VARIANT in_vValue);
        
        END_INTERFACE
    } StaticSourceVtbl;

    interface StaticSource
    {
        CONST_VTBL struct StaticSourceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define StaticSource_get_Value(This,out_pvValue)	\
    (This)->lpVtbl -> get_Value(This,out_pvValue)

#define StaticSource_put_Value(This,in_vValue)	\
    (This)->lpVtbl -> put_Value(This,in_vValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE StaticSource_get_Value_Proxy( 
    StaticSource * This,
    /* [retval][out] */ VARIANT *out_pvValue);


void __RPC_STUB StaticSource_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE StaticSource_put_Value_Proxy( 
    StaticSource * This,
    /* [in] */ VARIANT in_vValue);


void __RPC_STUB StaticSource_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __StaticSource_INTERFACE_DEFINED__ */


#ifndef __FCurveKey_INTERFACE_DEFINED__
#define __FCurveKey_INTERFACE_DEFINED__

/* interface FCurveKey */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_FCurveKey;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F5346152-47CE-11d4-ACDB-0090275802BF")
    FCurveKey : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Locked( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Locked( 
            /* [in] */ VARIANT_BOOL in_Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Left( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Right( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LeftTanY( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RightTanY( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LeftTanX( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RightTanX( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Interpolation( 
            /* [retval][out] */ siFCurveKeyInterpolation *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Flags( 
            /* [retval][out] */ siFCurveKeyFlags *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Time( 
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Left( 
            /* [in] */ VARIANT in_Val) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Right( 
            /* [in] */ VARIANT in_Val) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LeftTanY( 
            /* [in] */ VARIANT in_Val) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RightTanY( 
            /* [in] */ VARIANT in_Val) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LeftTanX( 
            /* [in] */ VARIANT in_Val) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RightTanX( 
            /* [in] */ VARIANT in_Val) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Interpolation( 
            /* [in] */ siFCurveKeyInterpolation in_Val) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Time( 
            /* [in] */ VARIANT in_Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Constraint( 
            /* [in] */ siFCurveKeyConstraint in_eConstraint,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Constraint( 
            /* [in] */ siFCurveKeyConstraint in_eConstraint,
            /* [in] */ VARIANT_BOOL in_Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ VARIANT in_Frame,
            /* [in] */ VARIANT in_Value,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideLock = 0) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FCurveKeyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FCurveKey * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FCurveKey * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FCurveKey * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FCurveKey * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FCurveKey * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FCurveKey * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FCurveKey * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Locked )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Locked )( 
            FCurveKey * This,
            /* [in] */ VARIANT_BOOL in_Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Left )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Right )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LeftTanY )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RightTanY )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LeftTanX )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RightTanX )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Interpolation )( 
            FCurveKey * This,
            /* [retval][out] */ siFCurveKeyInterpolation *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Flags )( 
            FCurveKey * This,
            /* [retval][out] */ siFCurveKeyFlags *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Time )( 
            FCurveKey * This,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Left )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Val);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Right )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Val);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LeftTanY )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Val);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RightTanY )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Val);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LeftTanX )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Val);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RightTanX )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Val);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Interpolation )( 
            FCurveKey * This,
            /* [in] */ siFCurveKeyInterpolation in_Val);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Time )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Constraint )( 
            FCurveKey * This,
            /* [in] */ siFCurveKeyConstraint in_eConstraint,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Constraint )( 
            FCurveKey * This,
            /* [in] */ siFCurveKeyConstraint in_eConstraint,
            /* [in] */ VARIANT_BOOL in_Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            FCurveKey * This,
            /* [retval][out] */ LONG *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Set )( 
            FCurveKey * This,
            /* [in] */ VARIANT in_Frame,
            /* [in] */ VARIANT in_Value,
            /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideLock);
        
        END_INTERFACE
    } FCurveKeyVtbl;

    interface FCurveKey
    {
        CONST_VTBL struct FCurveKeyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define FCurveKey_get_Value(This,out_pVal)	\
    (This)->lpVtbl -> get_Value(This,out_pVal)

#define FCurveKey_put_Value(This,in_val)	\
    (This)->lpVtbl -> put_Value(This,in_val)

#define FCurveKey_get_Locked(This,out_pVal)	\
    (This)->lpVtbl -> get_Locked(This,out_pVal)

#define FCurveKey_put_Locked(This,in_Val)	\
    (This)->lpVtbl -> put_Locked(This,in_Val)

#define FCurveKey_get_Left(This,out_pVal)	\
    (This)->lpVtbl -> get_Left(This,out_pVal)

#define FCurveKey_get_Right(This,out_pVal)	\
    (This)->lpVtbl -> get_Right(This,out_pVal)

#define FCurveKey_get_LeftTanY(This,out_pVal)	\
    (This)->lpVtbl -> get_LeftTanY(This,out_pVal)

#define FCurveKey_get_RightTanY(This,out_pVal)	\
    (This)->lpVtbl -> get_RightTanY(This,out_pVal)

#define FCurveKey_get_LeftTanX(This,out_pVal)	\
    (This)->lpVtbl -> get_LeftTanX(This,out_pVal)

#define FCurveKey_get_RightTanX(This,out_pVal)	\
    (This)->lpVtbl -> get_RightTanX(This,out_pVal)

#define FCurveKey_get_Interpolation(This,out_pVal)	\
    (This)->lpVtbl -> get_Interpolation(This,out_pVal)

#define FCurveKey_get_Flags(This,out_pVal)	\
    (This)->lpVtbl -> get_Flags(This,out_pVal)

#define FCurveKey_get_Time(This,out_pVal)	\
    (This)->lpVtbl -> get_Time(This,out_pVal)

#define FCurveKey_put_Left(This,in_Val)	\
    (This)->lpVtbl -> put_Left(This,in_Val)

#define FCurveKey_put_Right(This,in_Val)	\
    (This)->lpVtbl -> put_Right(This,in_Val)

#define FCurveKey_put_LeftTanY(This,in_Val)	\
    (This)->lpVtbl -> put_LeftTanY(This,in_Val)

#define FCurveKey_put_RightTanY(This,in_Val)	\
    (This)->lpVtbl -> put_RightTanY(This,in_Val)

#define FCurveKey_put_LeftTanX(This,in_Val)	\
    (This)->lpVtbl -> put_LeftTanX(This,in_Val)

#define FCurveKey_put_RightTanX(This,in_Val)	\
    (This)->lpVtbl -> put_RightTanX(This,in_Val)

#define FCurveKey_put_Interpolation(This,in_Val)	\
    (This)->lpVtbl -> put_Interpolation(This,in_Val)

#define FCurveKey_put_Time(This,in_Val)	\
    (This)->lpVtbl -> put_Time(This,in_Val)

#define FCurveKey_get_Constraint(This,in_eConstraint,out_pVal)	\
    (This)->lpVtbl -> get_Constraint(This,in_eConstraint,out_pVal)

#define FCurveKey_put_Constraint(This,in_eConstraint,in_Val)	\
    (This)->lpVtbl -> put_Constraint(This,in_eConstraint,in_Val)

#define FCurveKey_get_Index(This,out_pVal)	\
    (This)->lpVtbl -> get_Index(This,out_pVal)

#define FCurveKey_Set(This,in_Frame,in_Value,in_OverrideLock)	\
    (This)->lpVtbl -> Set(This,in_Frame,in_Value,in_OverrideLock)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Value_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_Value_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_val);


void __RPC_STUB FCurveKey_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Locked_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FCurveKey_get_Locked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_Locked_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT_BOOL in_Val);


void __RPC_STUB FCurveKey_put_Locked_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Left_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_Left_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Right_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_Right_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_LeftTanY_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_LeftTanY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_RightTanY_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_RightTanY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_LeftTanX_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_LeftTanX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_RightTanX_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_RightTanX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Interpolation_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ siFCurveKeyInterpolation *out_pVal);


void __RPC_STUB FCurveKey_get_Interpolation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Flags_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ siFCurveKeyFlags *out_pVal);


void __RPC_STUB FCurveKey_get_Flags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Time_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB FCurveKey_get_Time_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_Left_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Val);


void __RPC_STUB FCurveKey_put_Left_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_Right_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Val);


void __RPC_STUB FCurveKey_put_Right_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_LeftTanY_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Val);


void __RPC_STUB FCurveKey_put_LeftTanY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_RightTanY_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Val);


void __RPC_STUB FCurveKey_put_RightTanY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_LeftTanX_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Val);


void __RPC_STUB FCurveKey_put_LeftTanX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_RightTanX_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Val);


void __RPC_STUB FCurveKey_put_RightTanX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_Interpolation_Proxy( 
    FCurveKey * This,
    /* [in] */ siFCurveKeyInterpolation in_Val);


void __RPC_STUB FCurveKey_put_Interpolation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_Time_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Val);


void __RPC_STUB FCurveKey_put_Time_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Constraint_Proxy( 
    FCurveKey * This,
    /* [in] */ siFCurveKeyConstraint in_eConstraint,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB FCurveKey_get_Constraint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FCurveKey_put_Constraint_Proxy( 
    FCurveKey * This,
    /* [in] */ siFCurveKeyConstraint in_eConstraint,
    /* [in] */ VARIANT_BOOL in_Val);


void __RPC_STUB FCurveKey_put_Constraint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKey_get_Index_Proxy( 
    FCurveKey * This,
    /* [retval][out] */ LONG *out_pVal);


void __RPC_STUB FCurveKey_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FCurveKey_Set_Proxy( 
    FCurveKey * This,
    /* [in] */ VARIANT in_Frame,
    /* [in] */ VARIANT in_Value,
    /* [defaultvalue][in] */ VARIANT_BOOL in_OverrideLock);


void __RPC_STUB FCurveKey_Set_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FCurveKey_INTERFACE_DEFINED__ */


#ifndef __ImageClip_INTERFACE_DEFINED__
#define __ImageClip_INTERFACE_DEFINED__

/* interface ImageClip */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ImageClip;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("21F97A9C-4C9B-11D5-8170-00A0C9AC19A9")
    ImageClip : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetImage( 
            /* [optional][in] */ VARIANT in_vFrame,
            /* [retval][out] */ Image **out_ppVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetScaledDownImage( 
            /* [in] */ siImageRatio in_Ratio,
            /* [optional][in] */ VARIANT in_vFrame,
            /* [retval][out] */ Image **out_ppVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImageClipVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ImageClip * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ImageClip * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ImageClip * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ImageClip * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ImageClip * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ImageClip * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ImageClip * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetImage )( 
            ImageClip * This,
            /* [optional][in] */ VARIANT in_vFrame,
            /* [retval][out] */ Image **out_ppVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetScaledDownImage )( 
            ImageClip * This,
            /* [in] */ siImageRatio in_Ratio,
            /* [optional][in] */ VARIANT in_vFrame,
            /* [retval][out] */ Image **out_ppVal);
        
        END_INTERFACE
    } ImageClipVtbl;

    interface ImageClip
    {
        CONST_VTBL struct ImageClipVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ImageClip_GetImage(This,in_vFrame,out_ppVal)	\
    (This)->lpVtbl -> GetImage(This,in_vFrame,out_ppVal)

#define ImageClip_GetScaledDownImage(This,in_Ratio,in_vFrame,out_ppVal)	\
    (This)->lpVtbl -> GetScaledDownImage(This,in_Ratio,in_vFrame,out_ppVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ImageClip_GetImage_Proxy( 
    ImageClip * This,
    /* [optional][in] */ VARIANT in_vFrame,
    /* [retval][out] */ Image **out_ppVal);


void __RPC_STUB ImageClip_GetImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ImageClip_GetScaledDownImage_Proxy( 
    ImageClip * This,
    /* [in] */ siImageRatio in_Ratio,
    /* [optional][in] */ VARIANT in_vFrame,
    /* [retval][out] */ Image **out_ppVal);


void __RPC_STUB ImageClip_GetScaledDownImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ImageClip_INTERFACE_DEFINED__ */


#ifndef __Expression_INTERFACE_DEFINED__
#define __Expression_INTERFACE_DEFINED__

/* interface Expression */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Expression;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("94499FE4-6048-11D5-8176-00A0C9AC19A9")
    Expression : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct ExpressionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Expression * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Expression * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Expression * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Expression * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Expression * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Expression * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Expression * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } ExpressionVtbl;

    interface Expression
    {
        CONST_VTBL struct ExpressionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __Expression_INTERFACE_DEFINED__ */


#ifndef __ChainElement_INTERFACE_DEFINED__
#define __ChainElement_INTERFACE_DEFINED__

/* interface ChainElement */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ChainElement;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("49167FE1-5E8C-11d4-ACE2-0090275802BF")
    ChainElement : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Root( 
            /* [retval][out] */ ChainRoot **__MIDL_0074) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Effector( 
            /* [retval][out] */ ChainEffector **__MIDL_0075) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ChainElementVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ChainElement * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ChainElement * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ChainElement * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ChainElement * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ChainElement * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ChainElement * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ChainElement * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Root )( 
            ChainElement * This,
            /* [retval][out] */ ChainRoot **__MIDL_0074);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Effector )( 
            ChainElement * This,
            /* [retval][out] */ ChainEffector **__MIDL_0075);
        
        END_INTERFACE
    } ChainElementVtbl;

    interface ChainElement
    {
        CONST_VTBL struct ChainElementVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ChainElement_get_Root(This,__MIDL_0074)	\
    (This)->lpVtbl -> get_Root(This,__MIDL_0074)

#define ChainElement_get_Effector(This,__MIDL_0075)	\
    (This)->lpVtbl -> get_Effector(This,__MIDL_0075)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ChainElement_get_Root_Proxy( 
    ChainElement * This,
    /* [retval][out] */ ChainRoot **__MIDL_0074);


void __RPC_STUB ChainElement_get_Root_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ChainElement_get_Effector_Proxy( 
    ChainElement * This,
    /* [retval][out] */ ChainEffector **__MIDL_0075);


void __RPC_STUB ChainElement_get_Effector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ChainElement_INTERFACE_DEFINED__ */


#ifndef __ChainRoot_INTERFACE_DEFINED__
#define __ChainRoot_INTERFACE_DEFINED__

/* interface ChainRoot */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ChainRoot;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("49167FE2-5E8C-11d4-ACE2-0090275802BF")
    ChainRoot : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Bones( 
            /* [retval][out] */ ChainBoneCollection **__MIDL_0076) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddBone( 
            /* [in] */ VARIANT in_pNewEffPos,
            /* [defaultvalue][in] */ siChainBoneType in_boneType,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ChainBone **out_ppBone) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ChainRootVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ChainRoot * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ChainRoot * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ChainRoot * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ChainRoot * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ChainRoot * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ChainRoot * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ChainRoot * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Bones )( 
            ChainRoot * This,
            /* [retval][out] */ ChainBoneCollection **__MIDL_0076);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddBone )( 
            ChainRoot * This,
            /* [in] */ VARIANT in_pNewEffPos,
            /* [defaultvalue][in] */ siChainBoneType in_boneType,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ChainBone **out_ppBone);
        
        END_INTERFACE
    } ChainRootVtbl;

    interface ChainRoot
    {
        CONST_VTBL struct ChainRootVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ChainRoot_get_Bones(This,__MIDL_0076)	\
    (This)->lpVtbl -> get_Bones(This,__MIDL_0076)

#define ChainRoot_AddBone(This,in_pNewEffPos,in_boneType,in_bstrName,out_ppBone)	\
    (This)->lpVtbl -> AddBone(This,in_pNewEffPos,in_boneType,in_bstrName,out_ppBone)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ChainRoot_get_Bones_Proxy( 
    ChainRoot * This,
    /* [retval][out] */ ChainBoneCollection **__MIDL_0076);


void __RPC_STUB ChainRoot_get_Bones_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ChainRoot_AddBone_Proxy( 
    ChainRoot * This,
    /* [in] */ VARIANT in_pNewEffPos,
    /* [defaultvalue][in] */ siChainBoneType in_boneType,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ ChainBone **out_ppBone);


void __RPC_STUB ChainRoot_AddBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ChainRoot_INTERFACE_DEFINED__ */


#ifndef __ChainBone_INTERFACE_DEFINED__
#define __ChainBone_INTERFACE_DEFINED__

/* interface ChainBone */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ChainBone;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("49167FE3-5E8C-11d4-ACE2-0090275802BF")
    ChainBone : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *__MIDL_0077) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Joint( 
            /* [retval][out] */ Joint **__MIDL_0078) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ChainBoneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ChainBone * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ChainBone * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ChainBone * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ChainBone * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ChainBone * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ChainBone * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ChainBone * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            ChainBone * This,
            /* [retval][out] */ LONG *__MIDL_0077);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Joint )( 
            ChainBone * This,
            /* [retval][out] */ Joint **__MIDL_0078);
        
        END_INTERFACE
    } ChainBoneVtbl;

    interface ChainBone
    {
        CONST_VTBL struct ChainBoneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ChainBone_get_Index(This,__MIDL_0077)	\
    (This)->lpVtbl -> get_Index(This,__MIDL_0077)

#define ChainBone_get_Joint(This,__MIDL_0078)	\
    (This)->lpVtbl -> get_Joint(This,__MIDL_0078)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ChainBone_get_Index_Proxy( 
    ChainBone * This,
    /* [retval][out] */ LONG *__MIDL_0077);


void __RPC_STUB ChainBone_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ChainBone_get_Joint_Proxy( 
    ChainBone * This,
    /* [retval][out] */ Joint **__MIDL_0078);


void __RPC_STUB ChainBone_get_Joint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ChainBone_INTERFACE_DEFINED__ */


#ifndef __ChainEffector_INTERFACE_DEFINED__
#define __ChainEffector_INTERFACE_DEFINED__

/* interface ChainEffector */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ChainEffector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("49167FE4-5E8C-11d4-ACE2-0090275802BF")
    ChainEffector : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Joint( 
            /* [retval][out] */ Joint **__MIDL_0079) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ChainEffectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ChainEffector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ChainEffector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ChainEffector * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ChainEffector * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ChainEffector * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ChainEffector * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ChainEffector * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Joint )( 
            ChainEffector * This,
            /* [retval][out] */ Joint **__MIDL_0079);
        
        END_INTERFACE
    } ChainEffectorVtbl;

    interface ChainEffector
    {
        CONST_VTBL struct ChainEffectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ChainEffector_get_Joint(This,__MIDL_0079)	\
    (This)->lpVtbl -> get_Joint(This,__MIDL_0079)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ChainEffector_get_Joint_Proxy( 
    ChainEffector * This,
    /* [retval][out] */ Joint **__MIDL_0079);


void __RPC_STUB ChainEffector_get_Joint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ChainEffector_INTERFACE_DEFINED__ */


#ifndef __UpdateContext_INTERFACE_DEFINED__
#define __UpdateContext_INTERFACE_DEFINED__

/* interface UpdateContext */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UpdateContext;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("81B88102-0EAD-11D5-8163-00A0C9AC19A9")
    UpdateContext : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Operator( 
            /* [retval][out] */ Operator **out_ppOperator) = 0;
        
        virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parameters( 
            /* [retval][out] */ ParameterCollection **pVal) = 0;
        
        virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Port( 
            /* [in] */ BSTR in_bstrPortName,
            /* [in] */ BSTR in_bstrPortGroupName,
            /* [in] */ LONG in_lInstanceIndex,
            /* [retval][out] */ Port **out_ppPort) = 0;
        
        virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InputPorts( 
            /* [retval][out] */ InputPortCollection **out_ppInputPortCollection) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentFrame( 
            /* [retval][out] */ double *out_pdCurrentFrame) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UserData( 
            /* [retval][out] */ VARIANT *out_pvUserData) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UserData( 
            /* [in] */ VARIANT in_vUserData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct UpdateContextVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UpdateContext * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UpdateContext * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UpdateContext * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UpdateContext * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UpdateContext * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UpdateContext * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UpdateContext * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Operator )( 
            UpdateContext * This,
            /* [retval][out] */ Operator **out_ppOperator);
        
        /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parameters )( 
            UpdateContext * This,
            /* [retval][out] */ ParameterCollection **pVal);
        
        /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            UpdateContext * This,
            /* [in] */ BSTR in_bstrPortName,
            /* [in] */ BSTR in_bstrPortGroupName,
            /* [in] */ LONG in_lInstanceIndex,
            /* [retval][out] */ Port **out_ppPort);
        
        /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputPorts )( 
            UpdateContext * This,
            /* [retval][out] */ InputPortCollection **out_ppInputPortCollection);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentFrame )( 
            UpdateContext * This,
            /* [retval][out] */ double *out_pdCurrentFrame);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UserData )( 
            UpdateContext * This,
            /* [retval][out] */ VARIANT *out_pvUserData);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UserData )( 
            UpdateContext * This,
            /* [in] */ VARIANT in_vUserData);
        
        END_INTERFACE
    } UpdateContextVtbl;

    interface UpdateContext
    {
        CONST_VTBL struct UpdateContextVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define UpdateContext_get_Operator(This,out_ppOperator)	\
    (This)->lpVtbl -> get_Operator(This,out_ppOperator)

#define UpdateContext_get_Parameters(This,pVal)	\
    (This)->lpVtbl -> get_Parameters(This,pVal)

#define UpdateContext_get_Port(This,in_bstrPortName,in_bstrPortGroupName,in_lInstanceIndex,out_ppPort)	\
    (This)->lpVtbl -> get_Port(This,in_bstrPortName,in_bstrPortGroupName,in_lInstanceIndex,out_ppPort)

#define UpdateContext_get_InputPorts(This,out_ppInputPortCollection)	\
    (This)->lpVtbl -> get_InputPorts(This,out_ppInputPortCollection)

#define UpdateContext_get_CurrentFrame(This,out_pdCurrentFrame)	\
    (This)->lpVtbl -> get_CurrentFrame(This,out_pdCurrentFrame)

#define UpdateContext_get_UserData(This,out_pvUserData)	\
    (This)->lpVtbl -> get_UserData(This,out_pvUserData)

#define UpdateContext_put_UserData(This,in_vUserData)	\
    (This)->lpVtbl -> put_UserData(This,in_vUserData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UpdateContext_get_Operator_Proxy( 
    UpdateContext * This,
    /* [retval][out] */ Operator **out_ppOperator);


void __RPC_STUB UpdateContext_get_Operator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UpdateContext_get_Parameters_Proxy( 
    UpdateContext * This,
    /* [retval][out] */ ParameterCollection **pVal);


void __RPC_STUB UpdateContext_get_Parameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UpdateContext_get_Port_Proxy( 
    UpdateContext * This,
    /* [in] */ BSTR in_bstrPortName,
    /* [in] */ BSTR in_bstrPortGroupName,
    /* [in] */ LONG in_lInstanceIndex,
    /* [retval][out] */ Port **out_ppPort);


void __RPC_STUB UpdateContext_get_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UpdateContext_get_InputPorts_Proxy( 
    UpdateContext * This,
    /* [retval][out] */ InputPortCollection **out_ppInputPortCollection);


void __RPC_STUB UpdateContext_get_InputPorts_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UpdateContext_get_CurrentFrame_Proxy( 
    UpdateContext * This,
    /* [retval][out] */ double *out_pdCurrentFrame);


void __RPC_STUB UpdateContext_get_CurrentFrame_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UpdateContext_get_UserData_Proxy( 
    UpdateContext * This,
    /* [retval][out] */ VARIANT *out_pvUserData);


void __RPC_STUB UpdateContext_get_UserData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE UpdateContext_put_UserData_Proxy( 
    UpdateContext * This,
    /* [in] */ VARIANT in_vUserData);


void __RPC_STUB UpdateContext_put_UserData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __UpdateContext_INTERFACE_DEFINED__ */


#ifndef __Operator_INTERFACE_DEFINED__
#define __Operator_INTERFACE_DEFINED__

/* interface Operator */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Operator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0064D56D-3B20-11d4-87A3-00A0C983050D")
    Operator : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Port( 
            /* [in] */ BSTR in_bstrPort,
            /* [defaultvalue][in] */ BSTR in_bstrPortGroup,
            /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ Port **out_ppPort) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InputPorts( 
            /* [retval][out] */ InputPortCollection **out_ppCollection) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OutputPorts( 
            /* [retval][out] */ OutputPortCollection **out_ppCollection) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PortAt( 
            /* [in] */ LONG in_lPortIndex,
            /* [in] */ LONG in_lPortGroupIndex,
            /* [in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ Port **out_ppPort) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumPortGroups( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumPortsInGroup( 
            /* [in] */ LONG in_lPortGroupIndex,
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumInstancesInGroup( 
            /* [in] */ LONG in_lPortGroupIndex,
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mute( 
            /* [retval][out] */ VARIANT_BOOL *out_pbMute) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Mute( 
            /* [in] */ VARIANT_BOOL in_bMute) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Connect( 
            /* [optional][in] */ VARIANT in_connections,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode = siConstructionModeDefault) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Disconnect( 
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0151 = 0) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PortGroups( 
            /* [retval][out] */ PortGroupCollection **in_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsConnected( 
            /* [retval][out] */ VARIANT_BOOL *in_pRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SupportsBranchGroup( 
            /* [defaultvalue][in] */ LONG in_portgroup,
            /* [defaultvalue][in] */ LONG in_port,
            /* [retval][out] */ VARIANT_BOOL *in_pRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConnectToGroup( 
            /* [in] */ LONG in_group,
            /* [in] */ IDispatch *in_obj,
            /* [retval][out] */ LONG *out_pinstance) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DisconnectGroup( 
            /* [in] */ LONG in_group,
            /* [in] */ LONG in_instance,
            /* [defaultvalue][in] */ VARIANT_BOOL in_force = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Copy( 
            /* [retval][out] */ Operator **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetInputValue( 
            /* [in] */ VARIANT in_vPortIndexOrName,
            /* [optional][in] */ VARIANT in_vPortGroupIndexOrName,
            /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ VARIANT *out_pPortValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OperatorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Operator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Operator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Operator * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Operator * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Operator * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Operator * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Operator * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            Operator * This,
            /* [in] */ BSTR in_bstrPort,
            /* [defaultvalue][in] */ BSTR in_bstrPortGroup,
            /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ Port **out_ppPort);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputPorts )( 
            Operator * This,
            /* [retval][out] */ InputPortCollection **out_ppCollection);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OutputPorts )( 
            Operator * This,
            /* [retval][out] */ OutputPortCollection **out_ppCollection);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PortAt )( 
            Operator * This,
            /* [in] */ LONG in_lPortIndex,
            /* [in] */ LONG in_lPortGroupIndex,
            /* [in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ Port **out_ppPort);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumPortGroups )( 
            Operator * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumPortsInGroup )( 
            Operator * This,
            /* [in] */ LONG in_lPortGroupIndex,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumInstancesInGroup )( 
            Operator * This,
            /* [in] */ LONG in_lPortGroupIndex,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mute )( 
            Operator * This,
            /* [retval][out] */ VARIANT_BOOL *out_pbMute);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mute )( 
            Operator * This,
            /* [in] */ VARIANT_BOOL in_bMute);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( 
            Operator * This,
            /* [optional][in] */ VARIANT in_connections,
            /* [defaultvalue][in] */ siConstructionMode in_constructionmode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
            Operator * This,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0151);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortGroups )( 
            Operator * This,
            /* [retval][out] */ PortGroupCollection **in_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsConnected )( 
            Operator * This,
            /* [retval][out] */ VARIANT_BOOL *in_pRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SupportsBranchGroup )( 
            Operator * This,
            /* [defaultvalue][in] */ LONG in_portgroup,
            /* [defaultvalue][in] */ LONG in_port,
            /* [retval][out] */ VARIANT_BOOL *in_pRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConnectToGroup )( 
            Operator * This,
            /* [in] */ LONG in_group,
            /* [in] */ IDispatch *in_obj,
            /* [retval][out] */ LONG *out_pinstance);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DisconnectGroup )( 
            Operator * This,
            /* [in] */ LONG in_group,
            /* [in] */ LONG in_instance,
            /* [defaultvalue][in] */ VARIANT_BOOL in_force);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( 
            Operator * This,
            /* [retval][out] */ Operator **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInputValue )( 
            Operator * This,
            /* [in] */ VARIANT in_vPortIndexOrName,
            /* [optional][in] */ VARIANT in_vPortGroupIndexOrName,
            /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ VARIANT *out_pPortValue);
        
        END_INTERFACE
    } OperatorVtbl;

    interface Operator
    {
        CONST_VTBL struct OperatorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Operator_get_Port(This,in_bstrPort,in_bstrPortGroup,in_lPortGroupInstance,out_ppPort)	\
    (This)->lpVtbl -> get_Port(This,in_bstrPort,in_bstrPortGroup,in_lPortGroupInstance,out_ppPort)

#define Operator_get_InputPorts(This,out_ppCollection)	\
    (This)->lpVtbl -> get_InputPorts(This,out_ppCollection)

#define Operator_get_OutputPorts(This,out_ppCollection)	\
    (This)->lpVtbl -> get_OutputPorts(This,out_ppCollection)

#define Operator_PortAt(This,in_lPortIndex,in_lPortGroupIndex,in_lPortGroupInstance,out_ppPort)	\
    (This)->lpVtbl -> PortAt(This,in_lPortIndex,in_lPortGroupIndex,in_lPortGroupInstance,out_ppPort)

#define Operator_GetNumPortGroups(This,pVal)	\
    (This)->lpVtbl -> GetNumPortGroups(This,pVal)

#define Operator_GetNumPortsInGroup(This,in_lPortGroupIndex,pVal)	\
    (This)->lpVtbl -> GetNumPortsInGroup(This,in_lPortGroupIndex,pVal)

#define Operator_GetNumInstancesInGroup(This,in_lPortGroupIndex,pVal)	\
    (This)->lpVtbl -> GetNumInstancesInGroup(This,in_lPortGroupIndex,pVal)

#define Operator_get_Mute(This,out_pbMute)	\
    (This)->lpVtbl -> get_Mute(This,out_pbMute)

#define Operator_put_Mute(This,in_bMute)	\
    (This)->lpVtbl -> put_Mute(This,in_bMute)

#define Operator_Connect(This,in_connections,in_constructionmode)	\
    (This)->lpVtbl -> Connect(This,in_connections,in_constructionmode)

#define Operator_Disconnect(This,__MIDL_0151)	\
    (This)->lpVtbl -> Disconnect(This,__MIDL_0151)

#define Operator_get_PortGroups(This,in_ppRetVal)	\
    (This)->lpVtbl -> get_PortGroups(This,in_ppRetVal)

#define Operator_get_IsConnected(This,in_pRetVal)	\
    (This)->lpVtbl -> get_IsConnected(This,in_pRetVal)

#define Operator_SupportsBranchGroup(This,in_portgroup,in_port,in_pRetVal)	\
    (This)->lpVtbl -> SupportsBranchGroup(This,in_portgroup,in_port,in_pRetVal)

#define Operator_ConnectToGroup(This,in_group,in_obj,out_pinstance)	\
    (This)->lpVtbl -> ConnectToGroup(This,in_group,in_obj,out_pinstance)

#define Operator_DisconnectGroup(This,in_group,in_instance,in_force)	\
    (This)->lpVtbl -> DisconnectGroup(This,in_group,in_instance,in_force)

#define Operator_Copy(This,out_ppObj)	\
    (This)->lpVtbl -> Copy(This,out_ppObj)

#define Operator_GetInputValue(This,in_vPortIndexOrName,in_vPortGroupIndexOrName,in_lPortGroupInstance,out_pPortValue)	\
    (This)->lpVtbl -> GetInputValue(This,in_vPortIndexOrName,in_vPortGroupIndexOrName,in_lPortGroupInstance,out_pPortValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Operator_get_Port_Proxy( 
    Operator * This,
    /* [in] */ BSTR in_bstrPort,
    /* [defaultvalue][in] */ BSTR in_bstrPortGroup,
    /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
    /* [retval][out] */ Port **out_ppPort);


void __RPC_STUB Operator_get_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Operator_get_InputPorts_Proxy( 
    Operator * This,
    /* [retval][out] */ InputPortCollection **out_ppCollection);


void __RPC_STUB Operator_get_InputPorts_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Operator_get_OutputPorts_Proxy( 
    Operator * This,
    /* [retval][out] */ OutputPortCollection **out_ppCollection);


void __RPC_STUB Operator_get_OutputPorts_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_PortAt_Proxy( 
    Operator * This,
    /* [in] */ LONG in_lPortIndex,
    /* [in] */ LONG in_lPortGroupIndex,
    /* [in] */ LONG in_lPortGroupInstance,
    /* [retval][out] */ Port **out_ppPort);


void __RPC_STUB Operator_PortAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_GetNumPortGroups_Proxy( 
    Operator * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB Operator_GetNumPortGroups_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_GetNumPortsInGroup_Proxy( 
    Operator * This,
    /* [in] */ LONG in_lPortGroupIndex,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB Operator_GetNumPortsInGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_GetNumInstancesInGroup_Proxy( 
    Operator * This,
    /* [in] */ LONG in_lPortGroupIndex,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB Operator_GetNumInstancesInGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Operator_get_Mute_Proxy( 
    Operator * This,
    /* [retval][out] */ VARIANT_BOOL *out_pbMute);


void __RPC_STUB Operator_get_Mute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Operator_put_Mute_Proxy( 
    Operator * This,
    /* [in] */ VARIANT_BOOL in_bMute);


void __RPC_STUB Operator_put_Mute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_Connect_Proxy( 
    Operator * This,
    /* [optional][in] */ VARIANT in_connections,
    /* [defaultvalue][in] */ siConstructionMode in_constructionmode);


void __RPC_STUB Operator_Connect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_Disconnect_Proxy( 
    Operator * This,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0151);


void __RPC_STUB Operator_Disconnect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Operator_get_PortGroups_Proxy( 
    Operator * This,
    /* [retval][out] */ PortGroupCollection **in_ppRetVal);


void __RPC_STUB Operator_get_PortGroups_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Operator_get_IsConnected_Proxy( 
    Operator * This,
    /* [retval][out] */ VARIANT_BOOL *in_pRetVal);


void __RPC_STUB Operator_get_IsConnected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_SupportsBranchGroup_Proxy( 
    Operator * This,
    /* [defaultvalue][in] */ LONG in_portgroup,
    /* [defaultvalue][in] */ LONG in_port,
    /* [retval][out] */ VARIANT_BOOL *in_pRetVal);


void __RPC_STUB Operator_SupportsBranchGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_ConnectToGroup_Proxy( 
    Operator * This,
    /* [in] */ LONG in_group,
    /* [in] */ IDispatch *in_obj,
    /* [retval][out] */ LONG *out_pinstance);


void __RPC_STUB Operator_ConnectToGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_DisconnectGroup_Proxy( 
    Operator * This,
    /* [in] */ LONG in_group,
    /* [in] */ LONG in_instance,
    /* [defaultvalue][in] */ VARIANT_BOOL in_force);


void __RPC_STUB Operator_DisconnectGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_Copy_Proxy( 
    Operator * This,
    /* [retval][out] */ Operator **out_ppObj);


void __RPC_STUB Operator_Copy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Operator_GetInputValue_Proxy( 
    Operator * This,
    /* [in] */ VARIANT in_vPortIndexOrName,
    /* [optional][in] */ VARIANT in_vPortGroupIndexOrName,
    /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
    /* [retval][out] */ VARIANT *out_pPortValue);


void __RPC_STUB Operator_GetInputValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Operator_INTERFACE_DEFINED__ */


#ifndef __Envelope_INTERFACE_DEFINED__
#define __Envelope_INTERFACE_DEFINED__

/* interface Envelope */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_Envelope;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9E474360-5370-11d4-812E-00A0C9AC19A9")
    Envelope : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Deformers( 
            /* [retval][out] */ X3DObjectCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Weights( 
            /* [optional][in] */ VARIANT __MIDL_0152,
            /* [retval][out] */ ClusterElementCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Elements( 
            /* [optional][in] */ VARIANT __MIDL_0153,
            /* [retval][out] */ ClusterElementCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDeformerWeights( 
            /* [in] */ X3DObject *__MIDL_0154,
            /* [in] */ VARIANT __MIDL_0155) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDeformerWeights( 
            /* [in] */ X3DObject *__MIDL_0156,
            /* [optional][in] */ VARIANT __MIDL_0157,
            /* [retval][out] */ VARIANT *out_pRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDeformerColor( 
            /* [in] */ X3DObject *__MIDL_0158,
            /* [retval][out] */ Color **out_ppColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDeformerColor( 
            /* [in] */ X3DObject *__MIDL_0159,
            /* [in] */ Color *in_pColor) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EnvelopeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Envelope * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Envelope * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Envelope * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Envelope * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Envelope * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Envelope * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Envelope * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Deformers )( 
            Envelope * This,
            /* [retval][out] */ X3DObjectCollection **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Weights )( 
            Envelope * This,
            /* [optional][in] */ VARIANT __MIDL_0152,
            /* [retval][out] */ ClusterElementCollection **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Elements )( 
            Envelope * This,
            /* [optional][in] */ VARIANT __MIDL_0153,
            /* [retval][out] */ ClusterElementCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDeformerWeights )( 
            Envelope * This,
            /* [in] */ X3DObject *__MIDL_0154,
            /* [in] */ VARIANT __MIDL_0155);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDeformerWeights )( 
            Envelope * This,
            /* [in] */ X3DObject *__MIDL_0156,
            /* [optional][in] */ VARIANT __MIDL_0157,
            /* [retval][out] */ VARIANT *out_pRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDeformerColor )( 
            Envelope * This,
            /* [in] */ X3DObject *__MIDL_0158,
            /* [retval][out] */ Color **out_ppColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDeformerColor )( 
            Envelope * This,
            /* [in] */ X3DObject *__MIDL_0159,
            /* [in] */ Color *in_pColor);
        
        END_INTERFACE
    } EnvelopeVtbl;

    interface Envelope
    {
        CONST_VTBL struct EnvelopeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Envelope_get_Deformers(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Deformers(This,out_ppRetVal)

#define Envelope_get_Weights(This,__MIDL_0152,out_ppRetVal)	\
    (This)->lpVtbl -> get_Weights(This,__MIDL_0152,out_ppRetVal)

#define Envelope_get_Elements(This,__MIDL_0153,out_ppRetVal)	\
    (This)->lpVtbl -> get_Elements(This,__MIDL_0153,out_ppRetVal)

#define Envelope_SetDeformerWeights(This,__MIDL_0154,__MIDL_0155)	\
    (This)->lpVtbl -> SetDeformerWeights(This,__MIDL_0154,__MIDL_0155)

#define Envelope_GetDeformerWeights(This,__MIDL_0156,__MIDL_0157,out_pRetVal)	\
    (This)->lpVtbl -> GetDeformerWeights(This,__MIDL_0156,__MIDL_0157,out_pRetVal)

#define Envelope_GetDeformerColor(This,__MIDL_0158,out_ppColor)	\
    (This)->lpVtbl -> GetDeformerColor(This,__MIDL_0158,out_ppColor)

#define Envelope_SetDeformerColor(This,__MIDL_0159,in_pColor)	\
    (This)->lpVtbl -> SetDeformerColor(This,__MIDL_0159,in_pColor)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Envelope_get_Deformers_Proxy( 
    Envelope * This,
    /* [retval][out] */ X3DObjectCollection **out_ppRetVal);


void __RPC_STUB Envelope_get_Deformers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Envelope_get_Weights_Proxy( 
    Envelope * This,
    /* [optional][in] */ VARIANT __MIDL_0152,
    /* [retval][out] */ ClusterElementCollection **out_ppRetVal);


void __RPC_STUB Envelope_get_Weights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Envelope_get_Elements_Proxy( 
    Envelope * This,
    /* [optional][in] */ VARIANT __MIDL_0153,
    /* [retval][out] */ ClusterElementCollection **out_ppRetVal);


void __RPC_STUB Envelope_get_Elements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Envelope_SetDeformerWeights_Proxy( 
    Envelope * This,
    /* [in] */ X3DObject *__MIDL_0154,
    /* [in] */ VARIANT __MIDL_0155);


void __RPC_STUB Envelope_SetDeformerWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Envelope_GetDeformerWeights_Proxy( 
    Envelope * This,
    /* [in] */ X3DObject *__MIDL_0156,
    /* [optional][in] */ VARIANT __MIDL_0157,
    /* [retval][out] */ VARIANT *out_pRetVal);


void __RPC_STUB Envelope_GetDeformerWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Envelope_GetDeformerColor_Proxy( 
    Envelope * This,
    /* [in] */ X3DObject *__MIDL_0158,
    /* [retval][out] */ Color **out_ppColor);


void __RPC_STUB Envelope_GetDeformerColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Envelope_SetDeformerColor_Proxy( 
    Envelope * This,
    /* [in] */ X3DObject *__MIDL_0159,
    /* [in] */ Color *in_pColor);


void __RPC_STUB Envelope_SetDeformerColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Envelope_INTERFACE_DEFINED__ */


#ifndef __PortGroup_INTERFACE_DEFINED__
#define __PortGroup_INTERFACE_DEFINED__

/* interface PortGroup */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PortGroup;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FFD03FC8-18F7-454e-8F2F-632AF2EDA27A")
    PortGroup : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Min( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Min( 
            /* [in] */ LONG lVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Max( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Max( 
            /* [in] */ LONG lVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Flags( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Flags( 
            /* [in] */ LONG lVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PickPrompt( 
            /* [retval][out] */ BSTR *pStr) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PickPrompt( 
            /* [in] */ BSTR Str) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Filter( 
            /* [retval][out] */ BSTR *__MIDL_0162) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Filter( 
            /* [in] */ BSTR __MIDL_0163) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsOptional( 
            /* [defaultvalue][in] */ LONG in_port,
            /* [retval][out] */ VARIANT_BOOL *out_pbVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Ports( 
            /* [retval][out] */ PortCollection **__MIDL_0164) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SupportsBranchGroup( 
            /* [defaultvalue][in] */ LONG in_port,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0165) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InstanceCount( 
            /* [retval][out] */ LONG *__MIDL_0166) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PortGroupVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PortGroup * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PortGroup * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PortGroup * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PortGroup * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PortGroup * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PortGroup * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PortGroup * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Min )( 
            PortGroup * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Min )( 
            PortGroup * This,
            /* [in] */ LONG lVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Max )( 
            PortGroup * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Max )( 
            PortGroup * This,
            /* [in] */ LONG lVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            PortGroup * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Flags )( 
            PortGroup * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Flags )( 
            PortGroup * This,
            /* [in] */ LONG lVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PickPrompt )( 
            PortGroup * This,
            /* [retval][out] */ BSTR *pStr);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PickPrompt )( 
            PortGroup * This,
            /* [in] */ BSTR Str);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Filter )( 
            PortGroup * This,
            /* [retval][out] */ BSTR *__MIDL_0162);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Filter )( 
            PortGroup * This,
            /* [in] */ BSTR __MIDL_0163);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsOptional )( 
            PortGroup * This,
            /* [defaultvalue][in] */ LONG in_port,
            /* [retval][out] */ VARIANT_BOOL *out_pbVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ports )( 
            PortGroup * This,
            /* [retval][out] */ PortCollection **__MIDL_0164);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SupportsBranchGroup )( 
            PortGroup * This,
            /* [defaultvalue][in] */ LONG in_port,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0165);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InstanceCount )( 
            PortGroup * This,
            /* [retval][out] */ LONG *__MIDL_0166);
        
        END_INTERFACE
    } PortGroupVtbl;

    interface PortGroup
    {
        CONST_VTBL struct PortGroupVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PortGroup_get_Min(This,pVal)	\
    (This)->lpVtbl -> get_Min(This,pVal)

#define PortGroup_put_Min(This,lVal)	\
    (This)->lpVtbl -> put_Min(This,lVal)

#define PortGroup_get_Max(This,pVal)	\
    (This)->lpVtbl -> get_Max(This,pVal)

#define PortGroup_put_Max(This,lVal)	\
    (This)->lpVtbl -> put_Max(This,lVal)

#define PortGroup_get_Index(This,pVal)	\
    (This)->lpVtbl -> get_Index(This,pVal)

#define PortGroup_get_Flags(This,pVal)	\
    (This)->lpVtbl -> get_Flags(This,pVal)

#define PortGroup_put_Flags(This,lVal)	\
    (This)->lpVtbl -> put_Flags(This,lVal)

#define PortGroup_get_PickPrompt(This,pStr)	\
    (This)->lpVtbl -> get_PickPrompt(This,pStr)

#define PortGroup_put_PickPrompt(This,Str)	\
    (This)->lpVtbl -> put_PickPrompt(This,Str)

#define PortGroup_get_Filter(This,__MIDL_0162)	\
    (This)->lpVtbl -> get_Filter(This,__MIDL_0162)

#define PortGroup_put_Filter(This,__MIDL_0163)	\
    (This)->lpVtbl -> put_Filter(This,__MIDL_0163)

#define PortGroup_IsOptional(This,in_port,out_pbVal)	\
    (This)->lpVtbl -> IsOptional(This,in_port,out_pbVal)

#define PortGroup_get_Ports(This,__MIDL_0164)	\
    (This)->lpVtbl -> get_Ports(This,__MIDL_0164)

#define PortGroup_SupportsBranchGroup(This,in_port,__MIDL_0165)	\
    (This)->lpVtbl -> SupportsBranchGroup(This,in_port,__MIDL_0165)

#define PortGroup_get_InstanceCount(This,__MIDL_0166)	\
    (This)->lpVtbl -> get_InstanceCount(This,__MIDL_0166)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_Min_Proxy( 
    PortGroup * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB PortGroup_get_Min_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PortGroup_put_Min_Proxy( 
    PortGroup * This,
    /* [in] */ LONG lVal);


void __RPC_STUB PortGroup_put_Min_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_Max_Proxy( 
    PortGroup * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB PortGroup_get_Max_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PortGroup_put_Max_Proxy( 
    PortGroup * This,
    /* [in] */ LONG lVal);


void __RPC_STUB PortGroup_put_Max_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_Index_Proxy( 
    PortGroup * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB PortGroup_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_Flags_Proxy( 
    PortGroup * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB PortGroup_get_Flags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PortGroup_put_Flags_Proxy( 
    PortGroup * This,
    /* [in] */ LONG lVal);


void __RPC_STUB PortGroup_put_Flags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_PickPrompt_Proxy( 
    PortGroup * This,
    /* [retval][out] */ BSTR *pStr);


void __RPC_STUB PortGroup_get_PickPrompt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PortGroup_put_PickPrompt_Proxy( 
    PortGroup * This,
    /* [in] */ BSTR Str);


void __RPC_STUB PortGroup_put_PickPrompt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_Filter_Proxy( 
    PortGroup * This,
    /* [retval][out] */ BSTR *__MIDL_0162);


void __RPC_STUB PortGroup_get_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PortGroup_put_Filter_Proxy( 
    PortGroup * This,
    /* [in] */ BSTR __MIDL_0163);


void __RPC_STUB PortGroup_put_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PortGroup_IsOptional_Proxy( 
    PortGroup * This,
    /* [defaultvalue][in] */ LONG in_port,
    /* [retval][out] */ VARIANT_BOOL *out_pbVal);


void __RPC_STUB PortGroup_IsOptional_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_Ports_Proxy( 
    PortGroup * This,
    /* [retval][out] */ PortCollection **__MIDL_0164);


void __RPC_STUB PortGroup_get_Ports_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PortGroup_SupportsBranchGroup_Proxy( 
    PortGroup * This,
    /* [defaultvalue][in] */ LONG in_port,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0165);


void __RPC_STUB PortGroup_SupportsBranchGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PortGroup_get_InstanceCount_Proxy( 
    PortGroup * This,
    /* [retval][out] */ LONG *__MIDL_0166);


void __RPC_STUB PortGroup_get_InstanceCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PortGroup_INTERFACE_DEFINED__ */


#ifndef __Port_INTERFACE_DEFINED__
#define __Port_INTERFACE_DEFINED__

/* interface Port */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Port;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F46F92EF-30CD-11d4-87A1-00A0C983050D")
    Port : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsConnected( 
            /* [retval][out] */ VARIANT_BOOL *out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PortType( 
            /* [retval][out] */ siPortType *out_pval) = 0;
        
        virtual /* [id][propget][hidden] */ HRESULT STDMETHODCALLTYPE get__Obsolete1( 
            /* [retval][out] */ LONG *__MIDL_0160) = 0;
        
        virtual /* [id][propget][hidden] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ ProjectItem **__MIDL_0161) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Target2( 
            /* [retval][out] */ IDispatch **out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_GroupIndex( 
            /* [retval][out] */ LONG *out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_GroupName( 
            /* [retval][out] */ BSTR *out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_GroupInstance( 
            /* [retval][out] */ LONG *out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Flags( 
            /* [retval][out] */ siPortFlags *out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BranchGroup( 
            /* [retval][out] */ VARIANT_BOOL *out_pval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TargetPath( 
            /* [retval][out] */ BSTR *out_pval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PortVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Port * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Port * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Port * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Port * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Port * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Port * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Port * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsConnected )( 
            Port * This,
            /* [retval][out] */ VARIANT_BOOL *out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortType )( 
            Port * This,
            /* [retval][out] */ siPortType *out_pval);
        
        /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get__Obsolete1 )( 
            Port * This,
            /* [retval][out] */ LONG *__MIDL_0160);
        
        /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            Port * This,
            /* [retval][out] */ ProjectItem **__MIDL_0161);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target2 )( 
            Port * This,
            /* [retval][out] */ IDispatch **out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GroupIndex )( 
            Port * This,
            /* [retval][out] */ LONG *out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GroupName )( 
            Port * This,
            /* [retval][out] */ BSTR *out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GroupInstance )( 
            Port * This,
            /* [retval][out] */ LONG *out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            Port * This,
            /* [retval][out] */ LONG *out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Flags )( 
            Port * This,
            /* [retval][out] */ siPortFlags *out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BranchGroup )( 
            Port * This,
            /* [retval][out] */ VARIANT_BOOL *out_pval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TargetPath )( 
            Port * This,
            /* [retval][out] */ BSTR *out_pval);
        
        END_INTERFACE
    } PortVtbl;

    interface Port
    {
        CONST_VTBL struct PortVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Port_get_IsConnected(This,out_pval)	\
    (This)->lpVtbl -> get_IsConnected(This,out_pval)

#define Port_get_PortType(This,out_pval)	\
    (This)->lpVtbl -> get_PortType(This,out_pval)

#define Port_get__Obsolete1(This,__MIDL_0160)	\
    (This)->lpVtbl -> get__Obsolete1(This,__MIDL_0160)

#define Port_get_Target(This,__MIDL_0161)	\
    (This)->lpVtbl -> get_Target(This,__MIDL_0161)

#define Port_get_Target2(This,out_pval)	\
    (This)->lpVtbl -> get_Target2(This,out_pval)

#define Port_get_GroupIndex(This,out_pval)	\
    (This)->lpVtbl -> get_GroupIndex(This,out_pval)

#define Port_get_GroupName(This,out_pval)	\
    (This)->lpVtbl -> get_GroupName(This,out_pval)

#define Port_get_GroupInstance(This,out_pval)	\
    (This)->lpVtbl -> get_GroupInstance(This,out_pval)

#define Port_get_Index(This,out_pval)	\
    (This)->lpVtbl -> get_Index(This,out_pval)

#define Port_get_Flags(This,out_pval)	\
    (This)->lpVtbl -> get_Flags(This,out_pval)

#define Port_get_BranchGroup(This,out_pval)	\
    (This)->lpVtbl -> get_BranchGroup(This,out_pval)

#define Port_get_TargetPath(This,out_pval)	\
    (This)->lpVtbl -> get_TargetPath(This,out_pval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_IsConnected_Proxy( 
    Port * This,
    /* [retval][out] */ VARIANT_BOOL *out_pval);


void __RPC_STUB Port_get_IsConnected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_PortType_Proxy( 
    Port * This,
    /* [retval][out] */ siPortType *out_pval);


void __RPC_STUB Port_get_PortType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget][hidden] */ HRESULT STDMETHODCALLTYPE Port_get__Obsolete1_Proxy( 
    Port * This,
    /* [retval][out] */ LONG *__MIDL_0160);


void __RPC_STUB Port_get__Obsolete1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget][hidden] */ HRESULT STDMETHODCALLTYPE Port_get_Target_Proxy( 
    Port * This,
    /* [retval][out] */ ProjectItem **__MIDL_0161);


void __RPC_STUB Port_get_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_Target2_Proxy( 
    Port * This,
    /* [retval][out] */ IDispatch **out_pval);


void __RPC_STUB Port_get_Target2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_GroupIndex_Proxy( 
    Port * This,
    /* [retval][out] */ LONG *out_pval);


void __RPC_STUB Port_get_GroupIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_GroupName_Proxy( 
    Port * This,
    /* [retval][out] */ BSTR *out_pval);


void __RPC_STUB Port_get_GroupName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_GroupInstance_Proxy( 
    Port * This,
    /* [retval][out] */ LONG *out_pval);


void __RPC_STUB Port_get_GroupInstance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_Index_Proxy( 
    Port * This,
    /* [retval][out] */ LONG *out_pval);


void __RPC_STUB Port_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_Flags_Proxy( 
    Port * This,
    /* [retval][out] */ siPortFlags *out_pval);


void __RPC_STUB Port_get_Flags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_BranchGroup_Proxy( 
    Port * This,
    /* [retval][out] */ VARIANT_BOOL *out_pval);


void __RPC_STUB Port_get_BranchGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Port_get_TargetPath_Proxy( 
    Port * This,
    /* [retval][out] */ BSTR *out_pval);


void __RPC_STUB Port_get_TargetPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Port_INTERFACE_DEFINED__ */


#ifndef __InputPort_INTERFACE_DEFINED__
#define __InputPort_INTERFACE_DEFINED__

/* interface InputPort */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_InputPort;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9B485231-3269-11d4-87A1-00A0C983050D")
    InputPort : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ LPVARIANT out_pVar) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Evaluate( 
            /* [in] */ double in_dTime,
            /* [defaultvalue][in] */ siVariantType in_vtValType,
            /* [retval][out] */ LPVARIANT out_pVar) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Optional( 
            /* [retval][out] */ VARIANT_BOOL *out_pval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct InputPortVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            InputPort * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            InputPort * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            InputPort * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            InputPort * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            InputPort * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            InputPort * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            InputPort * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            InputPort * This,
            /* [retval][out] */ LPVARIANT out_pVar);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Evaluate )( 
            InputPort * This,
            /* [in] */ double in_dTime,
            /* [defaultvalue][in] */ siVariantType in_vtValType,
            /* [retval][out] */ LPVARIANT out_pVar);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Optional )( 
            InputPort * This,
            /* [retval][out] */ VARIANT_BOOL *out_pval);
        
        END_INTERFACE
    } InputPortVtbl;

    interface InputPort
    {
        CONST_VTBL struct InputPortVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define InputPort_get_Value(This,out_pVar)	\
    (This)->lpVtbl -> get_Value(This,out_pVar)

#define InputPort_Evaluate(This,in_dTime,in_vtValType,out_pVar)	\
    (This)->lpVtbl -> Evaluate(This,in_dTime,in_vtValType,out_pVar)

#define InputPort_get_Optional(This,out_pval)	\
    (This)->lpVtbl -> get_Optional(This,out_pval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE InputPort_get_Value_Proxy( 
    InputPort * This,
    /* [retval][out] */ LPVARIANT out_pVar);


void __RPC_STUB InputPort_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InputPort_Evaluate_Proxy( 
    InputPort * This,
    /* [in] */ double in_dTime,
    /* [defaultvalue][in] */ siVariantType in_vtValType,
    /* [retval][out] */ LPVARIANT out_pVar);


void __RPC_STUB InputPort_Evaluate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE InputPort_get_Optional_Proxy( 
    InputPort * This,
    /* [retval][out] */ VARIANT_BOOL *out_pval);


void __RPC_STUB InputPort_get_Optional_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __InputPort_INTERFACE_DEFINED__ */


#ifndef __OutputPort_INTERFACE_DEFINED__
#define __OutputPort_INTERFACE_DEFINED__

/* interface OutputPort */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_OutputPort;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A5B2F5E3-37D0-11d4-87A3-00A0C983050D")
    OutputPort : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ LPVARIANT out_pVar) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT in_Var) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Created( 
            /* [retval][out] */ VARIANT_BOOL *out_pval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OutputPortVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            OutputPort * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            OutputPort * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            OutputPort * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            OutputPort * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            OutputPort * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            OutputPort * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            OutputPort * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            OutputPort * This,
            /* [retval][out] */ LPVARIANT out_pVar);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            OutputPort * This,
            /* [in] */ VARIANT in_Var);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Created )( 
            OutputPort * This,
            /* [retval][out] */ VARIANT_BOOL *out_pval);
        
        END_INTERFACE
    } OutputPortVtbl;

    interface OutputPort
    {
        CONST_VTBL struct OutputPortVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define OutputPort_get_Value(This,out_pVar)	\
    (This)->lpVtbl -> get_Value(This,out_pVar)

#define OutputPort_put_Value(This,in_Var)	\
    (This)->lpVtbl -> put_Value(This,in_Var)

#define OutputPort_get_Created(This,out_pval)	\
    (This)->lpVtbl -> get_Created(This,out_pval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OutputPort_get_Value_Proxy( 
    OutputPort * This,
    /* [retval][out] */ LPVARIANT out_pVar);


void __RPC_STUB OutputPort_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE OutputPort_put_Value_Proxy( 
    OutputPort * This,
    /* [in] */ VARIANT in_Var);


void __RPC_STUB OutputPort_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OutputPort_get_Created_Proxy( 
    OutputPort * This,
    /* [retval][out] */ VARIANT_BOOL *out_pval);


void __RPC_STUB OutputPort_get_Created_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __OutputPort_INTERFACE_DEFINED__ */


#ifndef __CustomOperator_INTERFACE_DEFINED__
#define __CustomOperator_INTERFACE_DEFINED__

/* interface CustomOperator */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_CustomOperator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("28B44CCD-4E3B-454f-A416-D069B46A5373")
    CustomOperator : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileName( 
            /* [retval][out] */ BSTR *out_pbsz) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Language( 
            /* [retval][out] */ BSTR *out_pbsz) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Code( 
            /* [retval][out] */ BSTR *out_pbsz) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Code( 
            /* [in] */ BSTR in_bsz) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AlwaysEvaluate( 
            /* [retval][out] */ VARIANT_BOOL *out_pval) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AlwaysEvaluate( 
            /* [in] */ VARIANT_BOOL in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Debug( 
            /* [retval][out] */ long *out_pval) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Debug( 
            /* [in] */ long in_val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddParameter( 
            /* [in] */ ParamDef *in_ParamDef,
            /* [retval][out] */ Parameter **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveParameter( 
            /* [in] */ Parameter *in_pParam) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddInputPort( 
            /* [in] */ VARIANT in_PortTarget,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ InputPort **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddOutputPort( 
            /* [in] */ VARIANT in_PortTarget,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ OutputPort **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddIOPort( 
            /* [in] */ VARIANT in_PortTarget,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ PortCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPortGroup( 
            /* [in] */ BSTR name,
            /* [defaultvalue][in] */ long groupmin,
            /* [defaultvalue][in] */ long groupmax,
            /* [defaultvalue][in] */ BSTR filterid,
            /* [defaultvalue][in] */ BSTR pickprompt,
            /* [defaultvalue][in] */ long flags,
            /* [retval][out] */ PortGroup **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Validate( 
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddInputPortByClassID( 
            /* [in] */ siClassID in_TargetClassID,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ InputPort **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddOutputPortByClassID( 
            /* [in] */ siClassID in_TargetClassID,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ OutputPort **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddIOPortByClassID( 
            /* [in] */ siClassID in_TargetClassID,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ PortCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddInputPortByVariantType( 
            /* [in] */ siVariantType in_TargetVariantType,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ InputPort **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddOutputPortByVariantType( 
            /* [in] */ siVariantType in_TargetVariantType,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ OutputPort **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddIOPortByVariantType( 
            /* [in] */ siVariantType in_TargetVariantType,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ PortCollection **out_ppRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CustomOperatorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            CustomOperator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            CustomOperator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            CustomOperator * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            CustomOperator * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            CustomOperator * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            CustomOperator * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            CustomOperator * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileName )( 
            CustomOperator * This,
            /* [retval][out] */ BSTR *out_pbsz);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Language )( 
            CustomOperator * This,
            /* [retval][out] */ BSTR *out_pbsz);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Code )( 
            CustomOperator * This,
            /* [retval][out] */ BSTR *out_pbsz);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Code )( 
            CustomOperator * This,
            /* [in] */ BSTR in_bsz);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlwaysEvaluate )( 
            CustomOperator * This,
            /* [retval][out] */ VARIANT_BOOL *out_pval);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AlwaysEvaluate )( 
            CustomOperator * This,
            /* [in] */ VARIANT_BOOL in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Debug )( 
            CustomOperator * This,
            /* [retval][out] */ long *out_pval);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Debug )( 
            CustomOperator * This,
            /* [in] */ long in_val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddParameter )( 
            CustomOperator * This,
            /* [in] */ ParamDef *in_ParamDef,
            /* [retval][out] */ Parameter **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveParameter )( 
            CustomOperator * This,
            /* [in] */ Parameter *in_pParam);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddInputPort )( 
            CustomOperator * This,
            /* [in] */ VARIANT in_PortTarget,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ InputPort **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddOutputPort )( 
            CustomOperator * This,
            /* [in] */ VARIANT in_PortTarget,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ OutputPort **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddIOPort )( 
            CustomOperator * This,
            /* [in] */ VARIANT in_PortTarget,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ PortCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPortGroup )( 
            CustomOperator * This,
            /* [in] */ BSTR name,
            /* [defaultvalue][in] */ long groupmin,
            /* [defaultvalue][in] */ long groupmax,
            /* [defaultvalue][in] */ BSTR filterid,
            /* [defaultvalue][in] */ BSTR pickprompt,
            /* [defaultvalue][in] */ long flags,
            /* [retval][out] */ PortGroup **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Validate )( 
            CustomOperator * This,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddInputPortByClassID )( 
            CustomOperator * This,
            /* [in] */ siClassID in_TargetClassID,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ InputPort **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddOutputPortByClassID )( 
            CustomOperator * This,
            /* [in] */ siClassID in_TargetClassID,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ OutputPort **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddIOPortByClassID )( 
            CustomOperator * This,
            /* [in] */ siClassID in_TargetClassID,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ PortCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddInputPortByVariantType )( 
            CustomOperator * This,
            /* [in] */ siVariantType in_TargetVariantType,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ InputPort **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddOutputPortByVariantType )( 
            CustomOperator * This,
            /* [in] */ siVariantType in_TargetVariantType,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ OutputPort **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddIOPortByVariantType )( 
            CustomOperator * This,
            /* [in] */ siVariantType in_TargetVariantType,
            /* [defaultvalue][in] */ BSTR in_PortName,
            /* [defaultvalue][in] */ long in_PortGroup,
            /* [defaultvalue][in] */ long in_InsertAt,
            /* [defaultvalue][in] */ long in_flags,
            /* [retval][out] */ PortCollection **out_ppRetVal);
        
        END_INTERFACE
    } CustomOperatorVtbl;

    interface CustomOperator
    {
        CONST_VTBL struct CustomOperatorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define CustomOperator_get_FileName(This,out_pbsz)	\
    (This)->lpVtbl -> get_FileName(This,out_pbsz)

#define CustomOperator_get_Language(This,out_pbsz)	\
    (This)->lpVtbl -> get_Language(This,out_pbsz)

#define CustomOperator_get_Code(This,out_pbsz)	\
    (This)->lpVtbl -> get_Code(This,out_pbsz)

#define CustomOperator_put_Code(This,in_bsz)	\
    (This)->lpVtbl -> put_Code(This,in_bsz)

#define CustomOperator_get_AlwaysEvaluate(This,out_pval)	\
    (This)->lpVtbl -> get_AlwaysEvaluate(This,out_pval)

#define CustomOperator_put_AlwaysEvaluate(This,in_val)	\
    (This)->lpVtbl -> put_AlwaysEvaluate(This,in_val)

#define CustomOperator_get_Debug(This,out_pval)	\
    (This)->lpVtbl -> get_Debug(This,out_pval)

#define CustomOperator_put_Debug(This,in_val)	\
    (This)->lpVtbl -> put_Debug(This,in_val)

#define CustomOperator_AddParameter(This,in_ParamDef,out_ppRetVal)	\
    (This)->lpVtbl -> AddParameter(This,in_ParamDef,out_ppRetVal)

#define CustomOperator_RemoveParameter(This,in_pParam)	\
    (This)->lpVtbl -> RemoveParameter(This,in_pParam)

#define CustomOperator_AddInputPort(This,in_PortTarget,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddInputPort(This,in_PortTarget,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)

#define CustomOperator_AddOutputPort(This,in_PortTarget,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddOutputPort(This,in_PortTarget,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)

#define CustomOperator_AddIOPort(This,in_PortTarget,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddIOPort(This,in_PortTarget,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)

#define CustomOperator_AddPortGroup(This,name,groupmin,groupmax,filterid,pickprompt,flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddPortGroup(This,name,groupmin,groupmax,filterid,pickprompt,flags,out_ppRetVal)

#define CustomOperator_Validate(This,out_pVal)	\
    (This)->lpVtbl -> Validate(This,out_pVal)

#define CustomOperator_AddInputPortByClassID(This,in_TargetClassID,in_PortName,in_PortGroup,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddInputPortByClassID(This,in_TargetClassID,in_PortName,in_PortGroup,in_flags,out_ppRetVal)

#define CustomOperator_AddOutputPortByClassID(This,in_TargetClassID,in_PortName,in_PortGroup,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddOutputPortByClassID(This,in_TargetClassID,in_PortName,in_PortGroup,in_flags,out_ppRetVal)

#define CustomOperator_AddIOPortByClassID(This,in_TargetClassID,in_PortName,in_PortGroup,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddIOPortByClassID(This,in_TargetClassID,in_PortName,in_PortGroup,in_flags,out_ppRetVal)

#define CustomOperator_AddInputPortByVariantType(This,in_TargetVariantType,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddInputPortByVariantType(This,in_TargetVariantType,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)

#define CustomOperator_AddOutputPortByVariantType(This,in_TargetVariantType,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddOutputPortByVariantType(This,in_TargetVariantType,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)

#define CustomOperator_AddIOPortByVariantType(This,in_TargetVariantType,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)	\
    (This)->lpVtbl -> AddIOPortByVariantType(This,in_TargetVariantType,in_PortName,in_PortGroup,in_InsertAt,in_flags,out_ppRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CustomOperator_get_FileName_Proxy( 
    CustomOperator * This,
    /* [retval][out] */ BSTR *out_pbsz);


void __RPC_STUB CustomOperator_get_FileName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CustomOperator_get_Language_Proxy( 
    CustomOperator * This,
    /* [retval][out] */ BSTR *out_pbsz);


void __RPC_STUB CustomOperator_get_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CustomOperator_get_Code_Proxy( 
    CustomOperator * This,
    /* [retval][out] */ BSTR *out_pbsz);


void __RPC_STUB CustomOperator_get_Code_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE CustomOperator_put_Code_Proxy( 
    CustomOperator * This,
    /* [in] */ BSTR in_bsz);


void __RPC_STUB CustomOperator_put_Code_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CustomOperator_get_AlwaysEvaluate_Proxy( 
    CustomOperator * This,
    /* [retval][out] */ VARIANT_BOOL *out_pval);


void __RPC_STUB CustomOperator_get_AlwaysEvaluate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE CustomOperator_put_AlwaysEvaluate_Proxy( 
    CustomOperator * This,
    /* [in] */ VARIANT_BOOL in_val);


void __RPC_STUB CustomOperator_put_AlwaysEvaluate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CustomOperator_get_Debug_Proxy( 
    CustomOperator * This,
    /* [retval][out] */ long *out_pval);


void __RPC_STUB CustomOperator_get_Debug_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE CustomOperator_put_Debug_Proxy( 
    CustomOperator * This,
    /* [in] */ long in_val);


void __RPC_STUB CustomOperator_put_Debug_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddParameter_Proxy( 
    CustomOperator * This,
    /* [in] */ ParamDef *in_ParamDef,
    /* [retval][out] */ Parameter **out_ppRetVal);


void __RPC_STUB CustomOperator_AddParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_RemoveParameter_Proxy( 
    CustomOperator * This,
    /* [in] */ Parameter *in_pParam);


void __RPC_STUB CustomOperator_RemoveParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddInputPort_Proxy( 
    CustomOperator * This,
    /* [in] */ VARIANT in_PortTarget,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_InsertAt,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ InputPort **out_ppRetVal);


void __RPC_STUB CustomOperator_AddInputPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddOutputPort_Proxy( 
    CustomOperator * This,
    /* [in] */ VARIANT in_PortTarget,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_InsertAt,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ OutputPort **out_ppRetVal);


void __RPC_STUB CustomOperator_AddOutputPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddIOPort_Proxy( 
    CustomOperator * This,
    /* [in] */ VARIANT in_PortTarget,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_InsertAt,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ PortCollection **out_ppRetVal);


void __RPC_STUB CustomOperator_AddIOPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddPortGroup_Proxy( 
    CustomOperator * This,
    /* [in] */ BSTR name,
    /* [defaultvalue][in] */ long groupmin,
    /* [defaultvalue][in] */ long groupmax,
    /* [defaultvalue][in] */ BSTR filterid,
    /* [defaultvalue][in] */ BSTR pickprompt,
    /* [defaultvalue][in] */ long flags,
    /* [retval][out] */ PortGroup **out_ppRetVal);


void __RPC_STUB CustomOperator_AddPortGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_Validate_Proxy( 
    CustomOperator * This,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB CustomOperator_Validate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddInputPortByClassID_Proxy( 
    CustomOperator * This,
    /* [in] */ siClassID in_TargetClassID,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ InputPort **out_ppRetVal);


void __RPC_STUB CustomOperator_AddInputPortByClassID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddOutputPortByClassID_Proxy( 
    CustomOperator * This,
    /* [in] */ siClassID in_TargetClassID,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ OutputPort **out_ppRetVal);


void __RPC_STUB CustomOperator_AddOutputPortByClassID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddIOPortByClassID_Proxy( 
    CustomOperator * This,
    /* [in] */ siClassID in_TargetClassID,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ PortCollection **out_ppRetVal);


void __RPC_STUB CustomOperator_AddIOPortByClassID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddInputPortByVariantType_Proxy( 
    CustomOperator * This,
    /* [in] */ siVariantType in_TargetVariantType,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_InsertAt,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ InputPort **out_ppRetVal);


void __RPC_STUB CustomOperator_AddInputPortByVariantType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddOutputPortByVariantType_Proxy( 
    CustomOperator * This,
    /* [in] */ siVariantType in_TargetVariantType,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_InsertAt,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ OutputPort **out_ppRetVal);


void __RPC_STUB CustomOperator_AddOutputPortByVariantType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomOperator_AddIOPortByVariantType_Proxy( 
    CustomOperator * This,
    /* [in] */ siVariantType in_TargetVariantType,
    /* [defaultvalue][in] */ BSTR in_PortName,
    /* [defaultvalue][in] */ long in_PortGroup,
    /* [defaultvalue][in] */ long in_InsertAt,
    /* [defaultvalue][in] */ long in_flags,
    /* [retval][out] */ PortCollection **out_ppRetVal);


void __RPC_STUB CustomOperator_AddIOPortByVariantType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __CustomOperator_INTERFACE_DEFINED__ */


#ifndef __OperatorContext_INTERFACE_DEFINED__
#define __OperatorContext_INTERFACE_DEFINED__

/* interface OperatorContext */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_OperatorContext;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DA9FE2CC-39BA-436f-B8EC-5DB6C13C4710")
    OperatorContext : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Time( 
            /* [retval][out] */ double *out_dTime) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_OutputTarget( 
            /* [retval][out] */ IDispatch **out_pval) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_OutputPort( 
            /* [retval][out] */ IDispatch **out_pval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetInputValue( 
            /* [in] */ VARIANT in_vPortIndexOrName,
            /* [optional][in] */ VARIANT in_vPortGroupIndexOrName,
            /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ VARIANT *out_pPortValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetParameterValue( 
            /* [in] */ BSTR bszParamName,
            /* [retval][out] */ VARIANT *out_pValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OperatorContextVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            OperatorContext * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            OperatorContext * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            OperatorContext * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            OperatorContext * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            OperatorContext * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            OperatorContext * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            OperatorContext * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Time )( 
            OperatorContext * This,
            /* [retval][out] */ double *out_dTime);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OutputTarget )( 
            OperatorContext * This,
            /* [retval][out] */ IDispatch **out_pval);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OutputPort )( 
            OperatorContext * This,
            /* [retval][out] */ IDispatch **out_pval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInputValue )( 
            OperatorContext * This,
            /* [in] */ VARIANT in_vPortIndexOrName,
            /* [optional][in] */ VARIANT in_vPortGroupIndexOrName,
            /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
            /* [retval][out] */ VARIANT *out_pPortValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetParameterValue )( 
            OperatorContext * This,
            /* [in] */ BSTR bszParamName,
            /* [retval][out] */ VARIANT *out_pValue);
        
        END_INTERFACE
    } OperatorContextVtbl;

    interface OperatorContext
    {
        CONST_VTBL struct OperatorContextVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define OperatorContext_get_Time(This,out_dTime)	\
    (This)->lpVtbl -> get_Time(This,out_dTime)

#define OperatorContext_get_OutputTarget(This,out_pval)	\
    (This)->lpVtbl -> get_OutputTarget(This,out_pval)

#define OperatorContext_get_OutputPort(This,out_pval)	\
    (This)->lpVtbl -> get_OutputPort(This,out_pval)

#define OperatorContext_GetInputValue(This,in_vPortIndexOrName,in_vPortGroupIndexOrName,in_lPortGroupInstance,out_pPortValue)	\
    (This)->lpVtbl -> GetInputValue(This,in_vPortIndexOrName,in_vPortGroupIndexOrName,in_lPortGroupInstance,out_pPortValue)

#define OperatorContext_GetParameterValue(This,bszParamName,out_pValue)	\
    (This)->lpVtbl -> GetParameterValue(This,bszParamName,out_pValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE OperatorContext_get_Time_Proxy( 
    OperatorContext * This,
    /* [retval][out] */ double *out_dTime);


void __RPC_STUB OperatorContext_get_Time_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE OperatorContext_get_OutputTarget_Proxy( 
    OperatorContext * This,
    /* [retval][out] */ IDispatch **out_pval);


void __RPC_STUB OperatorContext_get_OutputTarget_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE OperatorContext_get_OutputPort_Proxy( 
    OperatorContext * This,
    /* [retval][out] */ IDispatch **out_pval);


void __RPC_STUB OperatorContext_get_OutputPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OperatorContext_GetInputValue_Proxy( 
    OperatorContext * This,
    /* [in] */ VARIANT in_vPortIndexOrName,
    /* [optional][in] */ VARIANT in_vPortGroupIndexOrName,
    /* [defaultvalue][in] */ LONG in_lPortGroupInstance,
    /* [retval][out] */ VARIANT *out_pPortValue);


void __RPC_STUB OperatorContext_GetInputValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OperatorContext_GetParameterValue_Proxy( 
    OperatorContext * This,
    /* [in] */ BSTR bszParamName,
    /* [retval][out] */ VARIANT *out_pValue);


void __RPC_STUB OperatorContext_GetParameterValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __OperatorContext_INTERFACE_DEFINED__ */


#ifndef __Property_INTERFACE_DEFINED__
#define __Property_INTERFACE_DEFINED__

/* interface Property */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Property;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D56D7D2-4183-11d4-ACDA-0090275802BF")
    Property : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Singleton( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0088) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Branch( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0089) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Branch( 
            /* [in] */ VARIANT_BOOL __MIDL_0090) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PropertyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Property * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Property * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Property * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Property * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Property * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Property * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Property * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Singleton )( 
            Property * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0088);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Branch )( 
            Property * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0089);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Branch )( 
            Property * This,
            /* [in] */ VARIANT_BOOL __MIDL_0090);
        
        END_INTERFACE
    } PropertyVtbl;

    interface Property
    {
        CONST_VTBL struct PropertyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Property_get_Singleton(This,__MIDL_0088)	\
    (This)->lpVtbl -> get_Singleton(This,__MIDL_0088)

#define Property_get_Branch(This,__MIDL_0089)	\
    (This)->lpVtbl -> get_Branch(This,__MIDL_0089)

#define Property_put_Branch(This,__MIDL_0090)	\
    (This)->lpVtbl -> put_Branch(This,__MIDL_0090)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Property_get_Singleton_Proxy( 
    Property * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0088);


void __RPC_STUB Property_get_Singleton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Property_get_Branch_Proxy( 
    Property * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0089);


void __RPC_STUB Property_get_Branch_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Property_put_Branch_Proxy( 
    Property * This,
    /* [in] */ VARIANT_BOOL __MIDL_0090);


void __RPC_STUB Property_put_Branch_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Property_INTERFACE_DEFINED__ */


#ifndef __Material_INTERFACE_DEFINED__
#define __Material_INTERFACE_DEFINED__

/* interface Material */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Material;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D56D7D1-4183-11d4-ACDA-0090275802BF")
    Material : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget][hidden] */ HRESULT STDMETHODCALLTYPE get_ConnectionPoints( 
            /* [retval][out] */ ConnectionPointCollection **__MIDL_0091) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Shaders( 
            /* [retval][out] */ ShaderCollection **__MIDL_0092) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OGLMaterial( 
            /* [retval][out] */ OGLMaterial **__MIDL_0093) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OGLTexture( 
            /* [retval][out] */ OGLTexture **__MIDL_0094) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentUV( 
            /* [retval][out] */ ClusterProperty **__MIDL_0095) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentImageClip( 
            /* [retval][out] */ ImageClip **__MIDL_0096) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentTexture( 
            /* [retval][out] */ Texture **__MIDL_0097) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateTextureLayer( 
            /* [defaultvalue][in] */ BSTR in_name,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer,
            /* [retval][out] */ TextureLayer **out_ppLayer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSharedTextureLayer( 
            /* [in] */ VARIANT in_varLayerToAdd,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TextureLayers( 
            /* [retval][out] */ TextureLayerCollection **__MIDL_0098) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveTextureLayer( 
            /* [in] */ VARIANT in_varLayerToRemove) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UsedBy( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ImageClips( 
            /* [retval][out] */ ImageClipCollection **__MIDL_0099) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UnresolvedFullname( 
            /* [retval][out] */ BSTR *__MIDL_0100) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsResolved( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0101) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Resolve( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Library( 
            /* [retval][out] */ Library **__MIDL_0102) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddProperty( 
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Properties( 
            /* [retval][out] */ PropertyCollection **out_ppProps) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetShaderInputType( 
            /* [in] */ BSTR Parametername,
            /* [retval][out] */ siShaderParameterType *out_pInputType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE FindShaders( 
            /* [in] */ BSTR filter,
            /* [retval][out] */ ShaderCollection **out_ppShaders) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct MaterialVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Material * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Material * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Material * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Material * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Material * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Material * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Material * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionPoints )( 
            Material * This,
            /* [retval][out] */ ConnectionPointCollection **__MIDL_0091);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Shaders )( 
            Material * This,
            /* [retval][out] */ ShaderCollection **__MIDL_0092);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OGLMaterial )( 
            Material * This,
            /* [retval][out] */ OGLMaterial **__MIDL_0093);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OGLTexture )( 
            Material * This,
            /* [retval][out] */ OGLTexture **__MIDL_0094);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentUV )( 
            Material * This,
            /* [retval][out] */ ClusterProperty **__MIDL_0095);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentImageClip )( 
            Material * This,
            /* [retval][out] */ ImageClip **__MIDL_0096);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentTexture )( 
            Material * This,
            /* [retval][out] */ Texture **__MIDL_0097);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateTextureLayer )( 
            Material * This,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer,
            /* [retval][out] */ TextureLayer **out_ppLayer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSharedTextureLayer )( 
            Material * This,
            /* [in] */ VARIANT in_varLayerToAdd,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TextureLayers )( 
            Material * This,
            /* [retval][out] */ TextureLayerCollection **__MIDL_0098);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveTextureLayer )( 
            Material * This,
            /* [in] */ VARIANT in_varLayerToRemove);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsedBy )( 
            Material * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ImageClips )( 
            Material * This,
            /* [retval][out] */ ImageClipCollection **__MIDL_0099);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UnresolvedFullname )( 
            Material * This,
            /* [retval][out] */ BSTR *__MIDL_0100);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsResolved )( 
            Material * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0101);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Resolve )( 
            Material * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Library )( 
            Material * This,
            /* [retval][out] */ Library **__MIDL_0102);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddProperty )( 
            Material * This,
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )( 
            Material * This,
            /* [retval][out] */ PropertyCollection **out_ppProps);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetShaderInputType )( 
            Material * This,
            /* [in] */ BSTR Parametername,
            /* [retval][out] */ siShaderParameterType *out_pInputType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *FindShaders )( 
            Material * This,
            /* [in] */ BSTR filter,
            /* [retval][out] */ ShaderCollection **out_ppShaders);
        
        END_INTERFACE
    } MaterialVtbl;

    interface Material
    {
        CONST_VTBL struct MaterialVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Material_get_ConnectionPoints(This,__MIDL_0091)	\
    (This)->lpVtbl -> get_ConnectionPoints(This,__MIDL_0091)

#define Material_get_Shaders(This,__MIDL_0092)	\
    (This)->lpVtbl -> get_Shaders(This,__MIDL_0092)

#define Material_get_OGLMaterial(This,__MIDL_0093)	\
    (This)->lpVtbl -> get_OGLMaterial(This,__MIDL_0093)

#define Material_get_OGLTexture(This,__MIDL_0094)	\
    (This)->lpVtbl -> get_OGLTexture(This,__MIDL_0094)

#define Material_get_CurrentUV(This,__MIDL_0095)	\
    (This)->lpVtbl -> get_CurrentUV(This,__MIDL_0095)

#define Material_get_CurrentImageClip(This,__MIDL_0096)	\
    (This)->lpVtbl -> get_CurrentImageClip(This,__MIDL_0096)

#define Material_get_CurrentTexture(This,__MIDL_0097)	\
    (This)->lpVtbl -> get_CurrentTexture(This,__MIDL_0097)

#define Material_CreateTextureLayer(This,in_name,in_bAfter,in_varRefLayer,out_ppLayer)	\
    (This)->lpVtbl -> CreateTextureLayer(This,in_name,in_bAfter,in_varRefLayer,out_ppLayer)

#define Material_AddSharedTextureLayer(This,in_varLayerToAdd,in_bAfter,in_varRefLayer)	\
    (This)->lpVtbl -> AddSharedTextureLayer(This,in_varLayerToAdd,in_bAfter,in_varRefLayer)

#define Material_get_TextureLayers(This,__MIDL_0098)	\
    (This)->lpVtbl -> get_TextureLayers(This,__MIDL_0098)

#define Material_RemoveTextureLayer(This,in_varLayerToRemove)	\
    (This)->lpVtbl -> RemoveTextureLayer(This,in_varLayerToRemove)

#define Material_get_UsedBy(This,pVal)	\
    (This)->lpVtbl -> get_UsedBy(This,pVal)

#define Material_get_ImageClips(This,__MIDL_0099)	\
    (This)->lpVtbl -> get_ImageClips(This,__MIDL_0099)

#define Material_get_UnresolvedFullname(This,__MIDL_0100)	\
    (This)->lpVtbl -> get_UnresolvedFullname(This,__MIDL_0100)

#define Material_IsResolved(This,__MIDL_0101)	\
    (This)->lpVtbl -> IsResolved(This,__MIDL_0101)

#define Material_Resolve(This)	\
    (This)->lpVtbl -> Resolve(This)

#define Material_get_Library(This,__MIDL_0102)	\
    (This)->lpVtbl -> get_Library(This,__MIDL_0102)

#define Material_AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)	\
    (This)->lpVtbl -> AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)

#define Material_get_Properties(This,out_ppProps)	\
    (This)->lpVtbl -> get_Properties(This,out_ppProps)

#define Material_GetShaderInputType(This,Parametername,out_pInputType)	\
    (This)->lpVtbl -> GetShaderInputType(This,Parametername,out_pInputType)

#define Material_FindShaders(This,filter,out_ppShaders)	\
    (This)->lpVtbl -> FindShaders(This,filter,out_ppShaders)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget][hidden] */ HRESULT STDMETHODCALLTYPE Material_get_ConnectionPoints_Proxy( 
    Material * This,
    /* [retval][out] */ ConnectionPointCollection **__MIDL_0091);


void __RPC_STUB Material_get_ConnectionPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_Shaders_Proxy( 
    Material * This,
    /* [retval][out] */ ShaderCollection **__MIDL_0092);


void __RPC_STUB Material_get_Shaders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_OGLMaterial_Proxy( 
    Material * This,
    /* [retval][out] */ OGLMaterial **__MIDL_0093);


void __RPC_STUB Material_get_OGLMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_OGLTexture_Proxy( 
    Material * This,
    /* [retval][out] */ OGLTexture **__MIDL_0094);


void __RPC_STUB Material_get_OGLTexture_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_CurrentUV_Proxy( 
    Material * This,
    /* [retval][out] */ ClusterProperty **__MIDL_0095);


void __RPC_STUB Material_get_CurrentUV_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_CurrentImageClip_Proxy( 
    Material * This,
    /* [retval][out] */ ImageClip **__MIDL_0096);


void __RPC_STUB Material_get_CurrentImageClip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_CurrentTexture_Proxy( 
    Material * This,
    /* [retval][out] */ Texture **__MIDL_0097);


void __RPC_STUB Material_get_CurrentTexture_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Material_CreateTextureLayer_Proxy( 
    Material * This,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
    /* [optional][in] */ VARIANT in_varRefLayer,
    /* [retval][out] */ TextureLayer **out_ppLayer);


void __RPC_STUB Material_CreateTextureLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Material_AddSharedTextureLayer_Proxy( 
    Material * This,
    /* [in] */ VARIANT in_varLayerToAdd,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
    /* [optional][in] */ VARIANT in_varRefLayer);


void __RPC_STUB Material_AddSharedTextureLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_TextureLayers_Proxy( 
    Material * This,
    /* [retval][out] */ TextureLayerCollection **__MIDL_0098);


void __RPC_STUB Material_get_TextureLayers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Material_RemoveTextureLayer_Proxy( 
    Material * This,
    /* [in] */ VARIANT in_varLayerToRemove);


void __RPC_STUB Material_RemoveTextureLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_UsedBy_Proxy( 
    Material * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB Material_get_UsedBy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_ImageClips_Proxy( 
    Material * This,
    /* [retval][out] */ ImageClipCollection **__MIDL_0099);


void __RPC_STUB Material_get_ImageClips_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_UnresolvedFullname_Proxy( 
    Material * This,
    /* [retval][out] */ BSTR *__MIDL_0100);


void __RPC_STUB Material_get_UnresolvedFullname_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Material_IsResolved_Proxy( 
    Material * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0101);


void __RPC_STUB Material_IsResolved_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Material_Resolve_Proxy( 
    Material * This);


void __RPC_STUB Material_Resolve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_Library_Proxy( 
    Material * This,
    /* [retval][out] */ Library **__MIDL_0102);


void __RPC_STUB Material_get_Library_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Material_AddProperty_Proxy( 
    Material * This,
    /* [in] */ VARIANT in_Preset,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Property **out_ppProp);


void __RPC_STUB Material_AddProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Material_get_Properties_Proxy( 
    Material * This,
    /* [retval][out] */ PropertyCollection **out_ppProps);


void __RPC_STUB Material_get_Properties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Material_GetShaderInputType_Proxy( 
    Material * This,
    /* [in] */ BSTR Parametername,
    /* [retval][out] */ siShaderParameterType *out_pInputType);


void __RPC_STUB Material_GetShaderInputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Material_FindShaders_Proxy( 
    Material * This,
    /* [in] */ BSTR filter,
    /* [retval][out] */ ShaderCollection **out_ppShaders);


void __RPC_STUB Material_FindShaders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Material_INTERFACE_DEFINED__ */


#ifndef __SoftMaterial_INTERFACE_DEFINED__
#define __SoftMaterial_INTERFACE_DEFINED__

/* interface SoftMaterial */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_SoftMaterial;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8716B911-A529-11d4-ACEB-0090275802BF")
    SoftMaterial : public IDispatch
    {
    public:
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_Textures( 
            /* [retval][out] */ ParameterCollection **__MIDL_0119) = 0;
        
        virtual /* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE AddSoftColor( 
            /* [in] */ BSTR in_image,
            /* [in] */ siTextureProjectionType __MIDL_0120,
            /* [in] */ siUVTextureType __MIDL_0121,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0122,
            /* [retval][out] */ Parameter **__MIDL_0123) = 0;
        
        virtual /* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE AddSoftColor2( 
            /* [in] */ BSTR in_image,
            /* [in] */ siTextureProjectionType __MIDL_0124,
            /* [in] */ siUVTextureType __MIDL_0125,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0126,
            /* [optional][out] */ ParameterCollection **__MIDL_0127,
            /* [retval][out] */ Parameter **__MIDL_0128) = 0;
        
        virtual /* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE AddVertexColor( 
            /* [in] */ VARIANT in_colorArray,
            /* [retval][out] */ Parameter **__MIDL_0129) = 0;
        
        virtual /* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE GetTextureData( 
            /* [in] */ Parameter *in_pTexture,
            /* [out] */ VARIANT *out_pTextureProp,
            /* [out] */ VARIANT *out_pTextureDefProp,
            /* [out] */ VARIANT *out_pTextureSupport) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SoftMaterialVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SoftMaterial * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SoftMaterial * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SoftMaterial * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SoftMaterial * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SoftMaterial * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SoftMaterial * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SoftMaterial * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Textures )( 
            SoftMaterial * This,
            /* [retval][out] */ ParameterCollection **__MIDL_0119);
        
        /* [helpstring][id][hidden] */ HRESULT ( STDMETHODCALLTYPE *AddSoftColor )( 
            SoftMaterial * This,
            /* [in] */ BSTR in_image,
            /* [in] */ siTextureProjectionType __MIDL_0120,
            /* [in] */ siUVTextureType __MIDL_0121,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0122,
            /* [retval][out] */ Parameter **__MIDL_0123);
        
        /* [helpstring][id][hidden] */ HRESULT ( STDMETHODCALLTYPE *AddSoftColor2 )( 
            SoftMaterial * This,
            /* [in] */ BSTR in_image,
            /* [in] */ siTextureProjectionType __MIDL_0124,
            /* [in] */ siUVTextureType __MIDL_0125,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0126,
            /* [optional][out] */ ParameterCollection **__MIDL_0127,
            /* [retval][out] */ Parameter **__MIDL_0128);
        
        /* [helpstring][id][hidden] */ HRESULT ( STDMETHODCALLTYPE *AddVertexColor )( 
            SoftMaterial * This,
            /* [in] */ VARIANT in_colorArray,
            /* [retval][out] */ Parameter **__MIDL_0129);
        
        /* [helpstring][id][hidden] */ HRESULT ( STDMETHODCALLTYPE *GetTextureData )( 
            SoftMaterial * This,
            /* [in] */ Parameter *in_pTexture,
            /* [out] */ VARIANT *out_pTextureProp,
            /* [out] */ VARIANT *out_pTextureDefProp,
            /* [out] */ VARIANT *out_pTextureSupport);
        
        END_INTERFACE
    } SoftMaterialVtbl;

    interface SoftMaterial
    {
        CONST_VTBL struct SoftMaterialVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SoftMaterial_get_Textures(This,__MIDL_0119)	\
    (This)->lpVtbl -> get_Textures(This,__MIDL_0119)

#define SoftMaterial_AddSoftColor(This,in_image,__MIDL_0120,__MIDL_0121,__MIDL_0122,__MIDL_0123)	\
    (This)->lpVtbl -> AddSoftColor(This,in_image,__MIDL_0120,__MIDL_0121,__MIDL_0122,__MIDL_0123)

#define SoftMaterial_AddSoftColor2(This,in_image,__MIDL_0124,__MIDL_0125,__MIDL_0126,__MIDL_0127,__MIDL_0128)	\
    (This)->lpVtbl -> AddSoftColor2(This,in_image,__MIDL_0124,__MIDL_0125,__MIDL_0126,__MIDL_0127,__MIDL_0128)

#define SoftMaterial_AddVertexColor(This,in_colorArray,__MIDL_0129)	\
    (This)->lpVtbl -> AddVertexColor(This,in_colorArray,__MIDL_0129)

#define SoftMaterial_GetTextureData(This,in_pTexture,out_pTextureProp,out_pTextureDefProp,out_pTextureSupport)	\
    (This)->lpVtbl -> GetTextureData(This,in_pTexture,out_pTextureProp,out_pTextureDefProp,out_pTextureSupport)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE SoftMaterial_get_Textures_Proxy( 
    SoftMaterial * This,
    /* [retval][out] */ ParameterCollection **__MIDL_0119);


void __RPC_STUB SoftMaterial_get_Textures_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE SoftMaterial_AddSoftColor_Proxy( 
    SoftMaterial * This,
    /* [in] */ BSTR in_image,
    /* [in] */ siTextureProjectionType __MIDL_0120,
    /* [in] */ siUVTextureType __MIDL_0121,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0122,
    /* [retval][out] */ Parameter **__MIDL_0123);


void __RPC_STUB SoftMaterial_AddSoftColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE SoftMaterial_AddSoftColor2_Proxy( 
    SoftMaterial * This,
    /* [in] */ BSTR in_image,
    /* [in] */ siTextureProjectionType __MIDL_0124,
    /* [in] */ siUVTextureType __MIDL_0125,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0126,
    /* [optional][out] */ ParameterCollection **__MIDL_0127,
    /* [retval][out] */ Parameter **__MIDL_0128);


void __RPC_STUB SoftMaterial_AddSoftColor2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE SoftMaterial_AddVertexColor_Proxy( 
    SoftMaterial * This,
    /* [in] */ VARIANT in_colorArray,
    /* [retval][out] */ Parameter **__MIDL_0129);


void __RPC_STUB SoftMaterial_AddVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden] */ HRESULT STDMETHODCALLTYPE SoftMaterial_GetTextureData_Proxy( 
    SoftMaterial * This,
    /* [in] */ Parameter *in_pTexture,
    /* [out] */ VARIANT *out_pTextureProp,
    /* [out] */ VARIANT *out_pTextureDefProp,
    /* [out] */ VARIANT *out_pTextureSupport);


void __RPC_STUB SoftMaterial_GetTextureData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SoftMaterial_INTERFACE_DEFINED__ */


#ifndef __Constraint_INTERFACE_DEFINED__
#define __Constraint_INTERFACE_DEFINED__

/* interface Constraint */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_Constraint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("38E4867E-574C-11d4-812E-00A0C9AC19A9")
    Constraint : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Constrained( 
            /* [retval][out] */ X3DObject **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Constraining( 
            /* [retval][out] */ X3DObjectCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UpVectorReference( 
            /* [retval][out] */ X3DObject **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_UpVectorReference( 
            /* [in] */ X3DObject *in_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ConstraintVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Constraint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Constraint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Constraint * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Constraint * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Constraint * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Constraint * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Constraint * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Constrained )( 
            Constraint * This,
            /* [retval][out] */ X3DObject **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Constraining )( 
            Constraint * This,
            /* [retval][out] */ X3DObjectCollection **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UpVectorReference )( 
            Constraint * This,
            /* [retval][out] */ X3DObject **out_ppRetVal);
        
        /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_UpVectorReference )( 
            Constraint * This,
            /* [in] */ X3DObject *in_pVal);
        
        END_INTERFACE
    } ConstraintVtbl;

    interface Constraint
    {
        CONST_VTBL struct ConstraintVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Constraint_get_Constrained(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Constrained(This,out_ppRetVal)

#define Constraint_get_Constraining(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Constraining(This,out_ppRetVal)

#define Constraint_get_UpVectorReference(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_UpVectorReference(This,out_ppRetVal)

#define Constraint_putref_UpVectorReference(This,in_pVal)	\
    (This)->lpVtbl -> putref_UpVectorReference(This,in_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Constraint_get_Constrained_Proxy( 
    Constraint * This,
    /* [retval][out] */ X3DObject **out_ppRetVal);


void __RPC_STUB Constraint_get_Constrained_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Constraint_get_Constraining_Proxy( 
    Constraint * This,
    /* [retval][out] */ X3DObjectCollection **out_ppRetVal);


void __RPC_STUB Constraint_get_Constraining_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Constraint_get_UpVectorReference_Proxy( 
    Constraint * This,
    /* [retval][out] */ X3DObject **out_ppRetVal);


void __RPC_STUB Constraint_get_UpVectorReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE Constraint_putref_UpVectorReference_Proxy( 
    Constraint * This,
    /* [in] */ X3DObject *in_pVal);


void __RPC_STUB Constraint_putref_UpVectorReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Constraint_INTERFACE_DEFINED__ */


#ifndef __Kinematics_INTERFACE_DEFINED__
#define __Kinematics_INTERFACE_DEFINED__

/* interface Kinematics */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_Kinematics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DA3BA936-574B-11d4-812E-00A0C9AC19A9")
    Kinematics : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Constraints( 
            /* [retval][out] */ ConstraintCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddConstraint( 
            /* [in] */ VARIANT in_cnsPreset,
            /* [in] */ IDispatch *in_cnsning,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bComp,
            /* [optional][in] */ VARIANT in_offsetCnsned,
            /* [optional][in] */ VARIANT in_offsetCnsning,
            /* [retval][out] */ Constraint **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Local( 
            /* [retval][out] */ KinematicState **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Global( 
            /* [retval][out] */ KinematicState **out_ppRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct KinematicsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Kinematics * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Kinematics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Kinematics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Kinematics * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Kinematics * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Kinematics * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Kinematics * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Constraints )( 
            Kinematics * This,
            /* [retval][out] */ ConstraintCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddConstraint )( 
            Kinematics * This,
            /* [in] */ VARIANT in_cnsPreset,
            /* [in] */ IDispatch *in_cnsning,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bComp,
            /* [optional][in] */ VARIANT in_offsetCnsned,
            /* [optional][in] */ VARIANT in_offsetCnsning,
            /* [retval][out] */ Constraint **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Local )( 
            Kinematics * This,
            /* [retval][out] */ KinematicState **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Global )( 
            Kinematics * This,
            /* [retval][out] */ KinematicState **out_ppRetVal);
        
        END_INTERFACE
    } KinematicsVtbl;

    interface Kinematics
    {
        CONST_VTBL struct KinematicsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Kinematics_get_Constraints(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Constraints(This,out_ppRetVal)

#define Kinematics_AddConstraint(This,in_cnsPreset,in_cnsning,in_bComp,in_offsetCnsned,in_offsetCnsning,out_ppRetVal)	\
    (This)->lpVtbl -> AddConstraint(This,in_cnsPreset,in_cnsning,in_bComp,in_offsetCnsned,in_offsetCnsning,out_ppRetVal)

#define Kinematics_get_Local(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Local(This,out_ppRetVal)

#define Kinematics_get_Global(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Global(This,out_ppRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Kinematics_get_Constraints_Proxy( 
    Kinematics * This,
    /* [retval][out] */ ConstraintCollection **out_ppRetVal);


void __RPC_STUB Kinematics_get_Constraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Kinematics_AddConstraint_Proxy( 
    Kinematics * This,
    /* [in] */ VARIANT in_cnsPreset,
    /* [in] */ IDispatch *in_cnsning,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bComp,
    /* [optional][in] */ VARIANT in_offsetCnsned,
    /* [optional][in] */ VARIANT in_offsetCnsning,
    /* [retval][out] */ Constraint **out_ppRetVal);


void __RPC_STUB Kinematics_AddConstraint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Kinematics_get_Local_Proxy( 
    Kinematics * This,
    /* [retval][out] */ KinematicState **out_ppRetVal);


void __RPC_STUB Kinematics_get_Local_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Kinematics_get_Global_Proxy( 
    Kinematics * This,
    /* [retval][out] */ KinematicState **out_ppRetVal);


void __RPC_STUB Kinematics_get_Global_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Kinematics_INTERFACE_DEFINED__ */


#ifndef __KinematicState_INTERFACE_DEFINED__
#define __KinematicState_INTERFACE_DEFINED__

/* interface KinematicState */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_KinematicState;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("99f06b97-5663-44dc-9f12-4d7067b8a5fd")
    KinematicState : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Transform( 
            /* [optional][in] */ VARIANT inFrame,
            /* [retval][out] */ IDispatch **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Transform( 
            /* [optional][in] */ VARIANT inFrame,
            /* [in] */ IDispatch *in_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct KinematicStateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            KinematicState * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            KinematicState * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            KinematicState * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            KinematicState * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            KinematicState * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            KinematicState * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            KinematicState * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Transform )( 
            KinematicState * This,
            /* [optional][in] */ VARIANT inFrame,
            /* [retval][out] */ IDispatch **out_ppRetVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Transform )( 
            KinematicState * This,
            /* [optional][in] */ VARIANT inFrame,
            /* [in] */ IDispatch *in_pVal);
        
        END_INTERFACE
    } KinematicStateVtbl;

    interface KinematicState
    {
        CONST_VTBL struct KinematicStateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define KinematicState_get_Transform(This,inFrame,out_ppRetVal)	\
    (This)->lpVtbl -> get_Transform(This,inFrame,out_ppRetVal)

#define KinematicState_put_Transform(This,inFrame,in_pVal)	\
    (This)->lpVtbl -> put_Transform(This,inFrame,in_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE KinematicState_get_Transform_Proxy( 
    KinematicState * This,
    /* [optional][in] */ VARIANT inFrame,
    /* [retval][out] */ IDispatch **out_ppRetVal);


void __RPC_STUB KinematicState_get_Transform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE KinematicState_put_Transform_Proxy( 
    KinematicState * This,
    /* [optional][in] */ VARIANT inFrame,
    /* [in] */ IDispatch *in_pVal);


void __RPC_STUB KinematicState_put_Transform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __KinematicState_INTERFACE_DEFINED__ */


#ifndef __StaticKinematicState_INTERFACE_DEFINED__
#define __StaticKinematicState_INTERFACE_DEFINED__

/* interface StaticKinematicState */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_StaticKinematicState;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0ac7c4c7-89c4-4d09-901a-e0f92d82119c")
    StaticKinematicState : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Transform( 
            /* [optional][in] */ VARIANT inFrame,
            /* [retval][out] */ IDispatch **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Transform( 
            /* [optional][in] */ VARIANT inFrame,
            /* [in] */ IDispatch *in_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct StaticKinematicStateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            StaticKinematicState * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            StaticKinematicState * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            StaticKinematicState * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            StaticKinematicState * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            StaticKinematicState * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            StaticKinematicState * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            StaticKinematicState * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Transform )( 
            StaticKinematicState * This,
            /* [optional][in] */ VARIANT inFrame,
            /* [retval][out] */ IDispatch **out_ppRetVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Transform )( 
            StaticKinematicState * This,
            /* [optional][in] */ VARIANT inFrame,
            /* [in] */ IDispatch *in_pVal);
        
        END_INTERFACE
    } StaticKinematicStateVtbl;

    interface StaticKinematicState
    {
        CONST_VTBL struct StaticKinematicStateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define StaticKinematicState_get_Transform(This,inFrame,out_ppRetVal)	\
    (This)->lpVtbl -> get_Transform(This,inFrame,out_ppRetVal)

#define StaticKinematicState_put_Transform(This,inFrame,in_pVal)	\
    (This)->lpVtbl -> put_Transform(This,inFrame,in_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE StaticKinematicState_get_Transform_Proxy( 
    StaticKinematicState * This,
    /* [optional][in] */ VARIANT inFrame,
    /* [retval][out] */ IDispatch **out_ppRetVal);


void __RPC_STUB StaticKinematicState_get_Transform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE StaticKinematicState_put_Transform_Proxy( 
    StaticKinematicState * This,
    /* [optional][in] */ VARIANT inFrame,
    /* [in] */ IDispatch *in_pVal);


void __RPC_STUB StaticKinematicState_put_Transform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __StaticKinematicState_INTERFACE_DEFINED__ */


#ifndef __Joint_INTERFACE_DEFINED__
#define __Joint_INTERFACE_DEFINED__

/* interface Joint */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_Joint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BD799C62-A1FC-11d4-8144-00A0C9AC19A9")
    Joint : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UpVectorReference( 
            /* [retval][out] */ X3DObject **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_UpVectorReference( 
            /* [in] */ X3DObject *in_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreferredAxisReference( 
            /* [retval][out] */ X3DObject **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_PreferredAxisReference( 
            /* [in] */ X3DObject *in_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct JointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Joint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Joint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Joint * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Joint * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Joint * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Joint * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Joint * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UpVectorReference )( 
            Joint * This,
            /* [retval][out] */ X3DObject **out_ppRetVal);
        
        /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_UpVectorReference )( 
            Joint * This,
            /* [in] */ X3DObject *in_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreferredAxisReference )( 
            Joint * This,
            /* [retval][out] */ X3DObject **out_ppRetVal);
        
        /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_PreferredAxisReference )( 
            Joint * This,
            /* [in] */ X3DObject *in_pVal);
        
        END_INTERFACE
    } JointVtbl;

    interface Joint
    {
        CONST_VTBL struct JointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Joint_get_UpVectorReference(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_UpVectorReference(This,out_ppRetVal)

#define Joint_putref_UpVectorReference(This,in_pVal)	\
    (This)->lpVtbl -> putref_UpVectorReference(This,in_pVal)

#define Joint_get_PreferredAxisReference(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_PreferredAxisReference(This,out_ppRetVal)

#define Joint_putref_PreferredAxisReference(This,in_pVal)	\
    (This)->lpVtbl -> putref_PreferredAxisReference(This,in_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Joint_get_UpVectorReference_Proxy( 
    Joint * This,
    /* [retval][out] */ X3DObject **out_ppRetVal);


void __RPC_STUB Joint_get_UpVectorReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE Joint_putref_UpVectorReference_Proxy( 
    Joint * This,
    /* [in] */ X3DObject *in_pVal);


void __RPC_STUB Joint_putref_UpVectorReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Joint_get_PreferredAxisReference_Proxy( 
    Joint * This,
    /* [retval][out] */ X3DObject **out_ppRetVal);


void __RPC_STUB Joint_get_PreferredAxisReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE Joint_putref_PreferredAxisReference_Proxy( 
    Joint * This,
    /* [in] */ X3DObject *in_pVal);


void __RPC_STUB Joint_putref_PreferredAxisReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Joint_INTERFACE_DEFINED__ */


#ifndef __ClusterProperty_INTERFACE_DEFINED__
#define __ClusterProperty_INTERFACE_DEFINED__

/* interface ClusterProperty */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ClusterProperty;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FB67D2E0-4861-11D4-812C-00A0C9AC19A9")
    ClusterProperty : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Elements( 
            /* [retval][out] */ ClusterElementCollection **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Elements( 
            /* [in] */ VARIANT newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClusterPropertyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClusterProperty * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClusterProperty * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClusterProperty * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClusterProperty * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClusterProperty * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClusterProperty * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClusterProperty * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Elements )( 
            ClusterProperty * This,
            /* [retval][out] */ ClusterElementCollection **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Elements )( 
            ClusterProperty * This,
            /* [in] */ VARIANT newVal);
        
        END_INTERFACE
    } ClusterPropertyVtbl;

    interface ClusterProperty
    {
        CONST_VTBL struct ClusterPropertyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ClusterProperty_get_Elements(This,pVal)	\
    (This)->lpVtbl -> get_Elements(This,pVal)

#define ClusterProperty_put_Elements(This,newVal)	\
    (This)->lpVtbl -> put_Elements(This,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClusterProperty_get_Elements_Proxy( 
    ClusterProperty * This,
    /* [retval][out] */ ClusterElementCollection **pVal);


void __RPC_STUB ClusterProperty_get_Elements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ClusterProperty_put_Elements_Proxy( 
    ClusterProperty * This,
    /* [in] */ VARIANT newVal);


void __RPC_STUB ClusterProperty_put_Elements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClusterProperty_INTERFACE_DEFINED__ */


#ifndef __ClusterPropertyCollection_INTERFACE_DEFINED__
#define __ClusterPropertyCollection_INTERFACE_DEFINED__

/* interface ClusterPropertyCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ClusterPropertyCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0073C0D2-E0A2-474e-A81C-DEC851B576F0")
    ClusterPropertyCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ClusterProperty **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClusterPropertyCollection **__MIDL_0130) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ClusterProperty **__MIDL_0131) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0132) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClusterPropertyCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClusterPropertyCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClusterPropertyCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClusterPropertyCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClusterPropertyCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClusterPropertyCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClusterPropertyCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClusterPropertyCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ClusterPropertyCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ClusterProperty **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ClusterPropertyCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ClusterPropertyCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ClusterPropertyCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClusterPropertyCollection **__MIDL_0130);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ClusterPropertyCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ClusterProperty **__MIDL_0131);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ClusterPropertyCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ClusterPropertyCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0132);
        
        END_INTERFACE
    } ClusterPropertyCollectionVtbl;

    interface ClusterPropertyCollection
    {
        CONST_VTBL struct ClusterPropertyCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ClusterPropertyCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ClusterPropertyCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ClusterPropertyCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ClusterPropertyCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0130)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0130)

#define ClusterPropertyCollection_Find(This,in_filter,__MIDL_0131)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0131)

#define ClusterPropertyCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ClusterPropertyCollection_GetAsText(This,__MIDL_0132)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0132)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClusterPropertyCollection_get_Item_Proxy( 
    ClusterPropertyCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ClusterProperty **out_pParam);


void __RPC_STUB ClusterPropertyCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClusterPropertyCollection_get_Count_Proxy( 
    ClusterPropertyCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ClusterPropertyCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClusterPropertyCollection_get_NewEnum_Proxy( 
    ClusterPropertyCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClusterPropertyCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClusterPropertyCollection_Filter_Proxy( 
    ClusterPropertyCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ClusterPropertyCollection **__MIDL_0130);


void __RPC_STUB ClusterPropertyCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClusterPropertyCollection_Find_Proxy( 
    ClusterPropertyCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ClusterProperty **__MIDL_0131);


void __RPC_STUB ClusterPropertyCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClusterPropertyCollection_get__NewEnum_Proxy( 
    ClusterPropertyCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClusterPropertyCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClusterPropertyCollection_GetAsText_Proxy( 
    ClusterPropertyCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0132);


void __RPC_STUB ClusterPropertyCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClusterPropertyCollection_INTERFACE_DEFINED__ */


#ifndef __UserDataMap_INTERFACE_DEFINED__
#define __UserDataMap_INTERFACE_DEFINED__

/* interface UserDataMap */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UserDataMap;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5E812E67-B4CB-4404-81C0-8B026228F5D5")
    UserDataMap : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ UserDataItem **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsEmpty( 
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClearItem( 
            /* [in] */ LONG in_ulIndex) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LittleEndian( 
            /* [retval][out] */ VARIANT_BOOL *out_pbLittleEndian) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LittleEndian( 
            /* [in] */ VARIANT_BOOL in_bLittleEndian) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Template( 
            /* [retval][out] */ CustomProperty **out_ppCustomProperty) = 0;
        
        virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_Template( 
            /* [in] */ CustomProperty *out_pCustomProperty) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemValue( 
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ BSTR *out_pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ItemValue( 
            /* [in] */ LONG in_ulIndex,
            /* [in] */ BSTR in_bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemSize( 
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ LONG *out_pSize) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct UserDataMapVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UserDataMap * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UserDataMap * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UserDataMap * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UserDataMap * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UserDataMap * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UserDataMap * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UserDataMap * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            UserDataMap * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            UserDataMap * This,
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ UserDataItem **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsEmpty )( 
            UserDataMap * This,
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            UserDataMap * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClearItem )( 
            UserDataMap * This,
            /* [in] */ LONG in_ulIndex);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LittleEndian )( 
            UserDataMap * This,
            /* [retval][out] */ VARIANT_BOOL *out_pbLittleEndian);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LittleEndian )( 
            UserDataMap * This,
            /* [in] */ VARIANT_BOOL in_bLittleEndian);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Template )( 
            UserDataMap * This,
            /* [retval][out] */ CustomProperty **out_ppCustomProperty);
        
        /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_Template )( 
            UserDataMap * This,
            /* [in] */ CustomProperty *out_pCustomProperty);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemValue )( 
            UserDataMap * This,
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ BSTR *out_pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ItemValue )( 
            UserDataMap * This,
            /* [in] */ LONG in_ulIndex,
            /* [in] */ BSTR in_bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemSize )( 
            UserDataMap * This,
            /* [in] */ LONG in_ulIndex,
            /* [retval][out] */ LONG *out_pSize);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            UserDataMap * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            UserDataMap * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } UserDataMapVtbl;

    interface UserDataMap
    {
        CONST_VTBL struct UserDataMapVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define UserDataMap_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define UserDataMap_get_Item(This,in_ulIndex,pVal)	\
    (This)->lpVtbl -> get_Item(This,in_ulIndex,pVal)

#define UserDataMap_get_IsEmpty(This,in_ulIndex,pVal)	\
    (This)->lpVtbl -> get_IsEmpty(This,in_ulIndex,pVal)

#define UserDataMap_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define UserDataMap_ClearItem(This,in_ulIndex)	\
    (This)->lpVtbl -> ClearItem(This,in_ulIndex)

#define UserDataMap_get_LittleEndian(This,out_pbLittleEndian)	\
    (This)->lpVtbl -> get_LittleEndian(This,out_pbLittleEndian)

#define UserDataMap_put_LittleEndian(This,in_bLittleEndian)	\
    (This)->lpVtbl -> put_LittleEndian(This,in_bLittleEndian)

#define UserDataMap_get_Template(This,out_ppCustomProperty)	\
    (This)->lpVtbl -> get_Template(This,out_ppCustomProperty)

#define UserDataMap_putref_Template(This,out_pCustomProperty)	\
    (This)->lpVtbl -> putref_Template(This,out_pCustomProperty)

#define UserDataMap_get_ItemValue(This,in_ulIndex,out_pbstrVal)	\
    (This)->lpVtbl -> get_ItemValue(This,in_ulIndex,out_pbstrVal)

#define UserDataMap_put_ItemValue(This,in_ulIndex,in_bstrVal)	\
    (This)->lpVtbl -> put_ItemValue(This,in_ulIndex,in_bstrVal)

#define UserDataMap_get_ItemSize(This,in_ulIndex,out_pSize)	\
    (This)->lpVtbl -> get_ItemSize(This,in_ulIndex,out_pSize)

#define UserDataMap_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define UserDataMap_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_Count_Proxy( 
    UserDataMap * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB UserDataMap_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_Item_Proxy( 
    UserDataMap * This,
    /* [in] */ LONG in_ulIndex,
    /* [retval][out] */ UserDataItem **pVal);


void __RPC_STUB UserDataMap_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_IsEmpty_Proxy( 
    UserDataMap * This,
    /* [in] */ LONG in_ulIndex,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB UserDataMap_get_IsEmpty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UserDataMap_Clear_Proxy( 
    UserDataMap * This);


void __RPC_STUB UserDataMap_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UserDataMap_ClearItem_Proxy( 
    UserDataMap * This,
    /* [in] */ LONG in_ulIndex);


void __RPC_STUB UserDataMap_ClearItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_LittleEndian_Proxy( 
    UserDataMap * This,
    /* [retval][out] */ VARIANT_BOOL *out_pbLittleEndian);


void __RPC_STUB UserDataMap_get_LittleEndian_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE UserDataMap_put_LittleEndian_Proxy( 
    UserDataMap * This,
    /* [in] */ VARIANT_BOOL in_bLittleEndian);


void __RPC_STUB UserDataMap_put_LittleEndian_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_Template_Proxy( 
    UserDataMap * This,
    /* [retval][out] */ CustomProperty **out_ppCustomProperty);


void __RPC_STUB UserDataMap_get_Template_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE UserDataMap_putref_Template_Proxy( 
    UserDataMap * This,
    /* [in] */ CustomProperty *out_pCustomProperty);


void __RPC_STUB UserDataMap_putref_Template_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_ItemValue_Proxy( 
    UserDataMap * This,
    /* [in] */ LONG in_ulIndex,
    /* [retval][out] */ BSTR *out_pbstrVal);


void __RPC_STUB UserDataMap_get_ItemValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE UserDataMap_put_ItemValue_Proxy( 
    UserDataMap * This,
    /* [in] */ LONG in_ulIndex,
    /* [in] */ BSTR in_bstrVal);


void __RPC_STUB UserDataMap_put_ItemValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_ItemSize_Proxy( 
    UserDataMap * This,
    /* [in] */ LONG in_ulIndex,
    /* [retval][out] */ LONG *out_pSize);


void __RPC_STUB UserDataMap_get_ItemSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get_NewEnum_Proxy( 
    UserDataMap * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB UserDataMap_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE UserDataMap_get__NewEnum_Proxy( 
    UserDataMap * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB UserDataMap_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __UserDataMap_INTERFACE_DEFINED__ */


#ifndef __UserDataItem_INTERFACE_DEFINED__
#define __UserDataItem_INTERFACE_DEFINED__

/* interface UserDataItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UserDataItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("24659575-ECEA-42db-AD11-A282D9FA578E")
    UserDataItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ BSTR *out_pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ BSTR in_bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsEmpty( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct UserDataItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UserDataItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UserDataItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UserDataItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UserDataItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UserDataItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UserDataItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UserDataItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            UserDataItem * This,
            /* [retval][out] */ BSTR *out_pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            UserDataItem * This,
            /* [in] */ BSTR in_bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            UserDataItem * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsEmpty )( 
            UserDataItem * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        END_INTERFACE
    } UserDataItemVtbl;

    interface UserDataItem
    {
        CONST_VTBL struct UserDataItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define UserDataItem_get_Value(This,out_pbstrVal)	\
    (This)->lpVtbl -> get_Value(This,out_pbstrVal)

#define UserDataItem_put_Value(This,in_bstrVal)	\
    (This)->lpVtbl -> put_Value(This,in_bstrVal)

#define UserDataItem_get_Size(This,vtRetVal)	\
    (This)->lpVtbl -> get_Size(This,vtRetVal)

#define UserDataItem_get_IsEmpty(This,pVal)	\
    (This)->lpVtbl -> get_IsEmpty(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataItem_get_Value_Proxy( 
    UserDataItem * This,
    /* [retval][out] */ BSTR *out_pbstrVal);


void __RPC_STUB UserDataItem_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE UserDataItem_put_Value_Proxy( 
    UserDataItem * This,
    /* [in] */ BSTR in_bstrVal);


void __RPC_STUB UserDataItem_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataItem_get_Size_Proxy( 
    UserDataItem * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB UserDataItem_get_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataItem_get_IsEmpty_Proxy( 
    UserDataItem * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB UserDataItem_get_IsEmpty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __UserDataItem_INTERFACE_DEFINED__ */


#ifndef __UserDataBlob_INTERFACE_DEFINED__
#define __UserDataBlob_INTERFACE_DEFINED__

/* interface UserDataBlob */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UserDataBlob;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("14F058D9-525A-45bc-9412-19AF1572046B")
    UserDataBlob : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ BSTR *out_pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ BSTR in_bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsEmpty( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct UserDataBlobVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UserDataBlob * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UserDataBlob * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UserDataBlob * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UserDataBlob * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UserDataBlob * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UserDataBlob * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UserDataBlob * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            UserDataBlob * This,
            /* [retval][out] */ BSTR *out_pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            UserDataBlob * This,
            /* [in] */ BSTR in_bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            UserDataBlob * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsEmpty )( 
            UserDataBlob * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            UserDataBlob * This);
        
        END_INTERFACE
    } UserDataBlobVtbl;

    interface UserDataBlob
    {
        CONST_VTBL struct UserDataBlobVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define UserDataBlob_get_Value(This,out_pbstrVal)	\
    (This)->lpVtbl -> get_Value(This,out_pbstrVal)

#define UserDataBlob_put_Value(This,in_bstrVal)	\
    (This)->lpVtbl -> put_Value(This,in_bstrVal)

#define UserDataBlob_get_Size(This,vtRetVal)	\
    (This)->lpVtbl -> get_Size(This,vtRetVal)

#define UserDataBlob_get_IsEmpty(This,pVal)	\
    (This)->lpVtbl -> get_IsEmpty(This,pVal)

#define UserDataBlob_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataBlob_get_Value_Proxy( 
    UserDataBlob * This,
    /* [retval][out] */ BSTR *out_pbstrVal);


void __RPC_STUB UserDataBlob_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE UserDataBlob_put_Value_Proxy( 
    UserDataBlob * This,
    /* [in] */ BSTR in_bstrVal);


void __RPC_STUB UserDataBlob_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataBlob_get_Size_Proxy( 
    UserDataBlob * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB UserDataBlob_get_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UserDataBlob_get_IsEmpty_Proxy( 
    UserDataBlob * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB UserDataBlob_get_IsEmpty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UserDataBlob_Clear_Proxy( 
    UserDataBlob * This);


void __RPC_STUB UserDataBlob_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __UserDataBlob_INTERFACE_DEFINED__ */


#ifndef __CustomProperty_INTERFACE_DEFINED__
#define __CustomProperty_INTERFACE_DEFINED__

/* interface CustomProperty */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_CustomProperty;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("81CEB6F1-AF86-11d4-8162-00A024189A69")
    CustomProperty : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddParameter( 
            /* [in] */ BSTR in_ScriptName,
            /* [in] */ siVariantType in_ValueType,
            /* [defaultvalue][in] */ siParamClassification in_Classif,
            /* [defaultvalue][in] */ int in_Caps,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [defaultvalue][in] */ BSTR in_LongName,
            /* [defaultvalue][in] */ BSTR in_Guid,
            /* [optional][in] */ VARIANT in_DefaultValue,
            /* [optional][in] */ VARIANT in_Min,
            /* [optional][in] */ VARIANT in_Max,
            /* [optional][in] */ VARIANT in_SuggestedMin,
            /* [optional][in] */ VARIANT in_SuggestedMax,
            /* [retval][out] */ Parameter **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddParameter2( 
            /* [in] */ BSTR in_ScriptName,
            /* [in] */ siVariantType in_ValueType,
            /* [optional][in] */ VARIANT in_DefaultValue,
            /* [optional][in] */ VARIANT in_Min,
            /* [optional][in] */ VARIANT in_Max,
            /* [optional][in] */ VARIANT in_SuggestedMin,
            /* [optional][in] */ VARIANT in_SuggestedMax,
            /* [defaultvalue][in] */ siParamClassification in_Classif,
            /* [defaultvalue][in] */ int in_Caps,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [defaultvalue][in] */ BSTR in_LongName,
            /* [defaultvalue][in] */ BSTR in_Guid,
            /* [retval][out] */ Parameter **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveParameter( 
            /* [in] */ Parameter *in_Param) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BinaryData( 
            /* [retval][out] */ BSTR *out_pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BinaryData( 
            /* [in] */ BSTR in_bstrVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddParameter3( 
            /* [in] */ BSTR in_ScriptName,
            /* [in] */ siVariantType in_ValueType,
            /* [optional][in] */ VARIANT in_DefaultValue,
            /* [optional][in] */ VARIANT in_Min,
            /* [optional][in] */ VARIANT in_Max,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAnimatable,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bReadOnly,
            /* [retval][out] */ Parameter **out_ppRetVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddFCurveParameter( 
            /* [in] */ BSTR in_ScriptName,
            /* [retval][out] */ Parameter **out_ppRetVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddGridParameter( 
            /* [in] */ BSTR in_ScriptName,
            /* [retval][out] */ Parameter **out_ppRetVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddProxyParameter( 
            /* [in] */ VARIANT in_ProxiedParameter,
            /* [optional][in] */ BSTR in_ScriptName,
            /* [optional][in] */ BSTR in_Name,
            /* [retval][out] */ ProxyParameter **out_ppRetVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddParameterFromDef( 
            /* [in] */ ParamDef *in_pParamDef,
            /* [retval][out] */ Parameter **out_ppRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CustomPropertyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            CustomProperty * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            CustomProperty * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            CustomProperty * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            CustomProperty * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            CustomProperty * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            CustomProperty * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            CustomProperty * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddParameter )( 
            CustomProperty * This,
            /* [in] */ BSTR in_ScriptName,
            /* [in] */ siVariantType in_ValueType,
            /* [defaultvalue][in] */ siParamClassification in_Classif,
            /* [defaultvalue][in] */ int in_Caps,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [defaultvalue][in] */ BSTR in_LongName,
            /* [defaultvalue][in] */ BSTR in_Guid,
            /* [optional][in] */ VARIANT in_DefaultValue,
            /* [optional][in] */ VARIANT in_Min,
            /* [optional][in] */ VARIANT in_Max,
            /* [optional][in] */ VARIANT in_SuggestedMin,
            /* [optional][in] */ VARIANT in_SuggestedMax,
            /* [retval][out] */ Parameter **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddParameter2 )( 
            CustomProperty * This,
            /* [in] */ BSTR in_ScriptName,
            /* [in] */ siVariantType in_ValueType,
            /* [optional][in] */ VARIANT in_DefaultValue,
            /* [optional][in] */ VARIANT in_Min,
            /* [optional][in] */ VARIANT in_Max,
            /* [optional][in] */ VARIANT in_SuggestedMin,
            /* [optional][in] */ VARIANT in_SuggestedMax,
            /* [defaultvalue][in] */ siParamClassification in_Classif,
            /* [defaultvalue][in] */ int in_Caps,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [defaultvalue][in] */ BSTR in_LongName,
            /* [defaultvalue][in] */ BSTR in_Guid,
            /* [retval][out] */ Parameter **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveParameter )( 
            CustomProperty * This,
            /* [in] */ Parameter *in_Param);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryData )( 
            CustomProperty * This,
            /* [retval][out] */ BSTR *out_pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryData )( 
            CustomProperty * This,
            /* [in] */ BSTR in_bstrVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddParameter3 )( 
            CustomProperty * This,
            /* [in] */ BSTR in_ScriptName,
            /* [in] */ siVariantType in_ValueType,
            /* [optional][in] */ VARIANT in_DefaultValue,
            /* [optional][in] */ VARIANT in_Min,
            /* [optional][in] */ VARIANT in_Max,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAnimatable,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bReadOnly,
            /* [retval][out] */ Parameter **out_ppRetVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddFCurveParameter )( 
            CustomProperty * This,
            /* [in] */ BSTR in_ScriptName,
            /* [retval][out] */ Parameter **out_ppRetVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddGridParameter )( 
            CustomProperty * This,
            /* [in] */ BSTR in_ScriptName,
            /* [retval][out] */ Parameter **out_ppRetVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddProxyParameter )( 
            CustomProperty * This,
            /* [in] */ VARIANT in_ProxiedParameter,
            /* [optional][in] */ BSTR in_ScriptName,
            /* [optional][in] */ BSTR in_Name,
            /* [retval][out] */ ProxyParameter **out_ppRetVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddParameterFromDef )( 
            CustomProperty * This,
            /* [in] */ ParamDef *in_pParamDef,
            /* [retval][out] */ Parameter **out_ppRetVal);
        
        END_INTERFACE
    } CustomPropertyVtbl;

    interface CustomProperty
    {
        CONST_VTBL struct CustomPropertyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define CustomProperty_AddParameter(This,in_ScriptName,in_ValueType,in_Classif,in_Caps,in_Name,in_LongName,in_Guid,in_DefaultValue,in_Min,in_Max,in_SuggestedMin,in_SuggestedMax,out_ppRetVal)	\
    (This)->lpVtbl -> AddParameter(This,in_ScriptName,in_ValueType,in_Classif,in_Caps,in_Name,in_LongName,in_Guid,in_DefaultValue,in_Min,in_Max,in_SuggestedMin,in_SuggestedMax,out_ppRetVal)

#define CustomProperty_AddParameter2(This,in_ScriptName,in_ValueType,in_DefaultValue,in_Min,in_Max,in_SuggestedMin,in_SuggestedMax,in_Classif,in_Caps,in_Name,in_LongName,in_Guid,out_ppRetVal)	\
    (This)->lpVtbl -> AddParameter2(This,in_ScriptName,in_ValueType,in_DefaultValue,in_Min,in_Max,in_SuggestedMin,in_SuggestedMax,in_Classif,in_Caps,in_Name,in_LongName,in_Guid,out_ppRetVal)

#define CustomProperty_RemoveParameter(This,in_Param)	\
    (This)->lpVtbl -> RemoveParameter(This,in_Param)

#define CustomProperty_get_BinaryData(This,out_pbstrVal)	\
    (This)->lpVtbl -> get_BinaryData(This,out_pbstrVal)

#define CustomProperty_put_BinaryData(This,in_bstrVal)	\
    (This)->lpVtbl -> put_BinaryData(This,in_bstrVal)

#define CustomProperty_AddParameter3(This,in_ScriptName,in_ValueType,in_DefaultValue,in_Min,in_Max,in_bAnimatable,in_bReadOnly,out_ppRetVal)	\
    (This)->lpVtbl -> AddParameter3(This,in_ScriptName,in_ValueType,in_DefaultValue,in_Min,in_Max,in_bAnimatable,in_bReadOnly,out_ppRetVal)

#define CustomProperty_AddFCurveParameter(This,in_ScriptName,out_ppRetVal)	\
    (This)->lpVtbl -> AddFCurveParameter(This,in_ScriptName,out_ppRetVal)

#define CustomProperty_AddGridParameter(This,in_ScriptName,out_ppRetVal)	\
    (This)->lpVtbl -> AddGridParameter(This,in_ScriptName,out_ppRetVal)

#define CustomProperty_AddProxyParameter(This,in_ProxiedParameter,in_ScriptName,in_Name,out_ppRetVal)	\
    (This)->lpVtbl -> AddProxyParameter(This,in_ProxiedParameter,in_ScriptName,in_Name,out_ppRetVal)

#define CustomProperty_AddParameterFromDef(This,in_pParamDef,out_ppRetVal)	\
    (This)->lpVtbl -> AddParameterFromDef(This,in_pParamDef,out_ppRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomProperty_AddParameter_Proxy( 
    CustomProperty * This,
    /* [in] */ BSTR in_ScriptName,
    /* [in] */ siVariantType in_ValueType,
    /* [defaultvalue][in] */ siParamClassification in_Classif,
    /* [defaultvalue][in] */ int in_Caps,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [defaultvalue][in] */ BSTR in_LongName,
    /* [defaultvalue][in] */ BSTR in_Guid,
    /* [optional][in] */ VARIANT in_DefaultValue,
    /* [optional][in] */ VARIANT in_Min,
    /* [optional][in] */ VARIANT in_Max,
    /* [optional][in] */ VARIANT in_SuggestedMin,
    /* [optional][in] */ VARIANT in_SuggestedMax,
    /* [retval][out] */ Parameter **out_ppRetVal);


void __RPC_STUB CustomProperty_AddParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomProperty_AddParameter2_Proxy( 
    CustomProperty * This,
    /* [in] */ BSTR in_ScriptName,
    /* [in] */ siVariantType in_ValueType,
    /* [optional][in] */ VARIANT in_DefaultValue,
    /* [optional][in] */ VARIANT in_Min,
    /* [optional][in] */ VARIANT in_Max,
    /* [optional][in] */ VARIANT in_SuggestedMin,
    /* [optional][in] */ VARIANT in_SuggestedMax,
    /* [defaultvalue][in] */ siParamClassification in_Classif,
    /* [defaultvalue][in] */ int in_Caps,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [defaultvalue][in] */ BSTR in_LongName,
    /* [defaultvalue][in] */ BSTR in_Guid,
    /* [retval][out] */ Parameter **out_ppRetVal);


void __RPC_STUB CustomProperty_AddParameter2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomProperty_RemoveParameter_Proxy( 
    CustomProperty * This,
    /* [in] */ Parameter *in_Param);


void __RPC_STUB CustomProperty_RemoveParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CustomProperty_get_BinaryData_Proxy( 
    CustomProperty * This,
    /* [retval][out] */ BSTR *out_pbstrVal);


void __RPC_STUB CustomProperty_get_BinaryData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE CustomProperty_put_BinaryData_Proxy( 
    CustomProperty * This,
    /* [in] */ BSTR in_bstrVal);


void __RPC_STUB CustomProperty_put_BinaryData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CustomProperty_AddParameter3_Proxy( 
    CustomProperty * This,
    /* [in] */ BSTR in_ScriptName,
    /* [in] */ siVariantType in_ValueType,
    /* [optional][in] */ VARIANT in_DefaultValue,
    /* [optional][in] */ VARIANT in_Min,
    /* [optional][in] */ VARIANT in_Max,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bAnimatable,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bReadOnly,
    /* [retval][out] */ Parameter **out_ppRetVal);


void __RPC_STUB CustomProperty_AddParameter3_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE CustomProperty_AddFCurveParameter_Proxy( 
    CustomProperty * This,
    /* [in] */ BSTR in_ScriptName,
    /* [retval][out] */ Parameter **out_ppRetVal);


void __RPC_STUB CustomProperty_AddFCurveParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE CustomProperty_AddGridParameter_Proxy( 
    CustomProperty * This,
    /* [in] */ BSTR in_ScriptName,
    /* [retval][out] */ Parameter **out_ppRetVal);


void __RPC_STUB CustomProperty_AddGridParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE CustomProperty_AddProxyParameter_Proxy( 
    CustomProperty * This,
    /* [in] */ VARIANT in_ProxiedParameter,
    /* [optional][in] */ BSTR in_ScriptName,
    /* [optional][in] */ BSTR in_Name,
    /* [retval][out] */ ProxyParameter **out_ppRetVal);


void __RPC_STUB CustomProperty_AddProxyParameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE CustomProperty_AddParameterFromDef_Proxy( 
    CustomProperty * This,
    /* [in] */ ParamDef *in_pParamDef,
    /* [retval][out] */ Parameter **out_ppRetVal);


void __RPC_STUB CustomProperty_AddParameterFromDef_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __CustomProperty_INTERFACE_DEFINED__ */


#ifndef __ParticleType_INTERFACE_DEFINED__
#define __ParticleType_INTERFACE_DEFINED__

/* interface ParticleType */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ParticleType;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("71e38c5d-99c5-4d7b-a515-6d7726fd23ec")
    ParticleType : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ID( 
            /* [retval][out] */ LONG *out_pID) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddAttribute( 
            /* [in] */ BSTR in_strName,
            /* [in] */ siParticleAttributeType in_type) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveAttribute( 
            /* [in] */ BSTR in_strName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttributeNames( 
            /* [retval][out] */ VARIANT *out_astrNames) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttributeType( 
            /* [in] */ BSTR in_strName,
            /* [retval][out] */ siParticleAttributeType *out_aTypes) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleTypeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParticleType * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParticleType * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParticleType * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParticleType * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParticleType * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParticleType * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParticleType * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ID )( 
            ParticleType * This,
            /* [retval][out] */ LONG *out_pID);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
            ParticleType * This,
            /* [in] */ BSTR in_strName,
            /* [in] */ siParticleAttributeType in_type);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveAttribute )( 
            ParticleType * This,
            /* [in] */ BSTR in_strName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttributeNames )( 
            ParticleType * This,
            /* [retval][out] */ VARIANT *out_astrNames);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttributeType )( 
            ParticleType * This,
            /* [in] */ BSTR in_strName,
            /* [retval][out] */ siParticleAttributeType *out_aTypes);
        
        END_INTERFACE
    } ParticleTypeVtbl;

    interface ParticleType
    {
        CONST_VTBL struct ParticleTypeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ParticleType_get_ID(This,out_pID)	\
    (This)->lpVtbl -> get_ID(This,out_pID)

#define ParticleType_AddAttribute(This,in_strName,in_type)	\
    (This)->lpVtbl -> AddAttribute(This,in_strName,in_type)

#define ParticleType_RemoveAttribute(This,in_strName)	\
    (This)->lpVtbl -> RemoveAttribute(This,in_strName)

#define ParticleType_AttributeNames(This,out_astrNames)	\
    (This)->lpVtbl -> AttributeNames(This,out_astrNames)

#define ParticleType_AttributeType(This,in_strName,out_aTypes)	\
    (This)->lpVtbl -> AttributeType(This,in_strName,out_aTypes)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleType_get_ID_Proxy( 
    ParticleType * This,
    /* [retval][out] */ LONG *out_pID);


void __RPC_STUB ParticleType_get_ID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleType_AddAttribute_Proxy( 
    ParticleType * This,
    /* [in] */ BSTR in_strName,
    /* [in] */ siParticleAttributeType in_type);


void __RPC_STUB ParticleType_AddAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleType_RemoveAttribute_Proxy( 
    ParticleType * This,
    /* [in] */ BSTR in_strName);


void __RPC_STUB ParticleType_RemoveAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleType_AttributeNames_Proxy( 
    ParticleType * This,
    /* [retval][out] */ VARIANT *out_astrNames);


void __RPC_STUB ParticleType_AttributeNames_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleType_AttributeType_Proxy( 
    ParticleType * This,
    /* [in] */ BSTR in_strName,
    /* [retval][out] */ siParticleAttributeType *out_aTypes);


void __RPC_STUB ParticleType_AttributeType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParticleType_INTERFACE_DEFINED__ */


#ifndef __EnvelopeWeight_INTERFACE_DEFINED__
#define __EnvelopeWeight_INTERFACE_DEFINED__

/* interface EnvelopeWeight */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_EnvelopeWeight;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("85CB8672-32BF-4b5f-BCB9-F4F4FE231CCB")
    EnvelopeWeight : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Deformers( 
            /* [retval][out] */ X3DObjectCollection **out_ppDefs) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EnvelopeWeightVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            EnvelopeWeight * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            EnvelopeWeight * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            EnvelopeWeight * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            EnvelopeWeight * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            EnvelopeWeight * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            EnvelopeWeight * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            EnvelopeWeight * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Deformers )( 
            EnvelopeWeight * This,
            /* [retval][out] */ X3DObjectCollection **out_ppDefs);
        
        END_INTERFACE
    } EnvelopeWeightVtbl;

    interface EnvelopeWeight
    {
        CONST_VTBL struct EnvelopeWeightVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define EnvelopeWeight_get_Deformers(This,out_ppDefs)	\
    (This)->lpVtbl -> get_Deformers(This,out_ppDefs)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EnvelopeWeight_get_Deformers_Proxy( 
    EnvelopeWeight * This,
    /* [retval][out] */ X3DObjectCollection **out_ppDefs);


void __RPC_STUB EnvelopeWeight_get_Deformers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __EnvelopeWeight_INTERFACE_DEFINED__ */


#ifndef __Geometry_INTERFACE_DEFINED__
#define __Geometry_INTERFACE_DEFINED__

/* interface Geometry */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Geometry;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6E7396C8-3B30-11d4-8129-00A0C9AC19A9")
    Geometry : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Points( 
            /* [retval][out] */ PointCollection **out_ppPointCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Segments( 
            /* [retval][out] */ SegmentCollection **out_ppSegmentCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Facets( 
            /* [retval][out] */ FacetCollection **out_ppFacetCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Clusters( 
            /* [retval][out] */ ClusterCollection **out_ppClusterCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BoundingVolume( 
            /* [defaultvalue][in] */ siBoundingVolume VolumeType,
            /* [retval][out] */ IDispatch **__MIDL_0178) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Triangles( 
            /* [retval][out] */ TriangleCollection **out_ppColl) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCluster( 
            /* [in] */ BSTR in_Type,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [optional][in] */ VARIANT in_Indices,
            /* [retval][out] */ Cluster **out_ppCluster) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveShapeKey( 
            /* [in] */ double in_time,
            /* [defaultvalue][in] */ double in_clipDuration,
            /* [defaultvalue][in] */ siShapeReferenceMode in_refMode,
            /* [defaultvalue][in] */ siShapeInstanceMode in_instMode,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [optional][in] */ VARIANT in_indexArray,
            /* [optional][in] */ VARIANT in_positionArray,
            /* [optional][in] */ VARIANT in_normalArray,
            /* [retval][out] */ ShapeClip **out_pClip) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateSubComponent( 
            /* [in] */ BSTR in_Type,
            /* [optional][in] */ VARIANT in_Indices,
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddEmptyCluster( 
            /* [in] */ BSTR in_Type,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Cluster **out_ppCluster) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Samples( 
            /* [retval][out] */ SampleCollection **__MIDL_0179) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetClosestLocations( 
            /* [in] */ VARIANT in_pPositions,
            /* [retval][out] */ PointLocatorData **out_ppPointLocatorData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetClosestLocationsWithinRadius( 
            /* [in] */ VARIANT in_PositionToSearchFrom,
            /* [in] */ double in_dRadius,
            /* [defaultvalue][in] */ LONG in_lNbToSearch,
            /* [retval][out] */ PointLocatorData **out_ppPointLocatorData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetupClosestLocationQueries( 
            /* [defaultvalue][in] */ LONG in_Method,
            /* [optional][in] */ IDispatch *in_Transfo,
            /* [optional][in] */ VARIANT in_FacetsToRestrictSearch) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSurfacePointLocatorsFromPoints( 
            /* [optional][in] */ VARIANT in_pPoints,
            /* [retval][out] */ PointLocatorData **out_ppPointLocatorData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluatePositions( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pPositions) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluateNormals( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [defaultvalue][in] */ LONG in_ComputationMethod,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pNormals) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluateClusterProperty( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [in] */ Cluster *in_pParentCluster,
            /* [in] */ ClusterProperty *in_pClusterProperty,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoundingBox( 
            /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBBoxSpace,
            /* [retval][out] */ VARIANT *out_pData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoundingSphere( 
            /* [defaultvalue][in] */ siVolumeCenterMethod in_centerMethod,
            /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBSphereSpace,
            /* [retval][out] */ VARIANT *out_pData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoundingCapsule( 
            /* [defaultvalue][in] */ siVolumeCenterMethod in_centerMethod,
            /* [defaultvalue][in] */ siBoundingCapsuleMethod in_axisMethod,
            /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBCapsuleSpace,
            /* [retval][out] */ VARIANT *out_pData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct GeometryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Geometry * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Geometry * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Geometry * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Geometry * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Geometry * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Geometry * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Geometry * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Points )( 
            Geometry * This,
            /* [retval][out] */ PointCollection **out_ppPointCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Segments )( 
            Geometry * This,
            /* [retval][out] */ SegmentCollection **out_ppSegmentCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Facets )( 
            Geometry * This,
            /* [retval][out] */ FacetCollection **out_ppFacetCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Clusters )( 
            Geometry * This,
            /* [retval][out] */ ClusterCollection **out_ppClusterCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BoundingVolume )( 
            Geometry * This,
            /* [defaultvalue][in] */ siBoundingVolume VolumeType,
            /* [retval][out] */ IDispatch **__MIDL_0178);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Triangles )( 
            Geometry * This,
            /* [retval][out] */ TriangleCollection **out_ppColl);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCluster )( 
            Geometry * This,
            /* [in] */ BSTR in_Type,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [optional][in] */ VARIANT in_Indices,
            /* [retval][out] */ Cluster **out_ppCluster);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveShapeKey )( 
            Geometry * This,
            /* [in] */ double in_time,
            /* [defaultvalue][in] */ double in_clipDuration,
            /* [defaultvalue][in] */ siShapeReferenceMode in_refMode,
            /* [defaultvalue][in] */ siShapeInstanceMode in_instMode,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [optional][in] */ VARIANT in_indexArray,
            /* [optional][in] */ VARIANT in_positionArray,
            /* [optional][in] */ VARIANT in_normalArray,
            /* [retval][out] */ ShapeClip **out_pClip);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateSubComponent )( 
            Geometry * This,
            /* [in] */ BSTR in_Type,
            /* [optional][in] */ VARIANT in_Indices,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEmptyCluster )( 
            Geometry * This,
            /* [in] */ BSTR in_Type,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Cluster **out_ppCluster);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Samples )( 
            Geometry * This,
            /* [retval][out] */ SampleCollection **__MIDL_0179);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetClosestLocations )( 
            Geometry * This,
            /* [in] */ VARIANT in_pPositions,
            /* [retval][out] */ PointLocatorData **out_ppPointLocatorData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetClosestLocationsWithinRadius )( 
            Geometry * This,
            /* [in] */ VARIANT in_PositionToSearchFrom,
            /* [in] */ double in_dRadius,
            /* [defaultvalue][in] */ LONG in_lNbToSearch,
            /* [retval][out] */ PointLocatorData **out_ppPointLocatorData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetupClosestLocationQueries )( 
            Geometry * This,
            /* [defaultvalue][in] */ LONG in_Method,
            /* [optional][in] */ IDispatch *in_Transfo,
            /* [optional][in] */ VARIANT in_FacetsToRestrictSearch);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSurfacePointLocatorsFromPoints )( 
            Geometry * This,
            /* [optional][in] */ VARIANT in_pPoints,
            /* [retval][out] */ PointLocatorData **out_ppPointLocatorData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluatePositions )( 
            Geometry * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pPositions);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluateNormals )( 
            Geometry * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [defaultvalue][in] */ LONG in_ComputationMethod,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pNormals);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluateClusterProperty )( 
            Geometry * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [in] */ Cluster *in_pParentCluster,
            /* [in] */ ClusterProperty *in_pClusterProperty,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            Geometry * This,
            /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBBoxSpace,
            /* [retval][out] */ VARIANT *out_pData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingSphere )( 
            Geometry * This,
            /* [defaultvalue][in] */ siVolumeCenterMethod in_centerMethod,
            /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBSphereSpace,
            /* [retval][out] */ VARIANT *out_pData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingCapsule )( 
            Geometry * This,
            /* [defaultvalue][in] */ siVolumeCenterMethod in_centerMethod,
            /* [defaultvalue][in] */ siBoundingCapsuleMethod in_axisMethod,
            /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBCapsuleSpace,
            /* [retval][out] */ VARIANT *out_pData);
        
        END_INTERFACE
    } GeometryVtbl;

    interface Geometry
    {
        CONST_VTBL struct GeometryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Geometry_get_Points(This,out_ppPointCol)	\
    (This)->lpVtbl -> get_Points(This,out_ppPointCol)

#define Geometry_get_Segments(This,out_ppSegmentCol)	\
    (This)->lpVtbl -> get_Segments(This,out_ppSegmentCol)

#define Geometry_get_Facets(This,out_ppFacetCol)	\
    (This)->lpVtbl -> get_Facets(This,out_ppFacetCol)

#define Geometry_get_Clusters(This,out_ppClusterCol)	\
    (This)->lpVtbl -> get_Clusters(This,out_ppClusterCol)

#define Geometry_get_BoundingVolume(This,VolumeType,__MIDL_0178)	\
    (This)->lpVtbl -> get_BoundingVolume(This,VolumeType,__MIDL_0178)

#define Geometry_get_Triangles(This,out_ppColl)	\
    (This)->lpVtbl -> get_Triangles(This,out_ppColl)

#define Geometry_AddCluster(This,in_Type,in_Name,in_Indices,out_ppCluster)	\
    (This)->lpVtbl -> AddCluster(This,in_Type,in_Name,in_Indices,out_ppCluster)

#define Geometry_SaveShapeKey(This,in_time,in_clipDuration,in_refMode,in_instMode,in_name,in_indexArray,in_positionArray,in_normalArray,out_pClip)	\
    (This)->lpVtbl -> SaveShapeKey(This,in_time,in_clipDuration,in_refMode,in_instMode,in_name,in_indexArray,in_positionArray,in_normalArray,out_pClip)

#define Geometry_CreateSubComponent(This,in_Type,in_Indices,out_ppSubComponent)	\
    (This)->lpVtbl -> CreateSubComponent(This,in_Type,in_Indices,out_ppSubComponent)

#define Geometry_AddEmptyCluster(This,in_Type,in_Name,out_ppCluster)	\
    (This)->lpVtbl -> AddEmptyCluster(This,in_Type,in_Name,out_ppCluster)

#define Geometry_get_Samples(This,__MIDL_0179)	\
    (This)->lpVtbl -> get_Samples(This,__MIDL_0179)

#define Geometry_GetClosestLocations(This,in_pPositions,out_ppPointLocatorData)	\
    (This)->lpVtbl -> GetClosestLocations(This,in_pPositions,out_ppPointLocatorData)

#define Geometry_GetClosestLocationsWithinRadius(This,in_PositionToSearchFrom,in_dRadius,in_lNbToSearch,out_ppPointLocatorData)	\
    (This)->lpVtbl -> GetClosestLocationsWithinRadius(This,in_PositionToSearchFrom,in_dRadius,in_lNbToSearch,out_ppPointLocatorData)

#define Geometry_SetupClosestLocationQueries(This,in_Method,in_Transfo,in_FacetsToRestrictSearch)	\
    (This)->lpVtbl -> SetupClosestLocationQueries(This,in_Method,in_Transfo,in_FacetsToRestrictSearch)

#define Geometry_GetSurfacePointLocatorsFromPoints(This,in_pPoints,out_ppPointLocatorData)	\
    (This)->lpVtbl -> GetSurfacePointLocatorsFromPoints(This,in_pPoints,out_ppPointLocatorData)

#define Geometry_EvaluatePositions(This,in_pPtLocators,in_pPointLocatorsIndices,out_pPositions)	\
    (This)->lpVtbl -> EvaluatePositions(This,in_pPtLocators,in_pPointLocatorsIndices,out_pPositions)

#define Geometry_EvaluateNormals(This,in_pPtLocators,in_ComputationMethod,in_pPointLocatorsIndices,out_pNormals)	\
    (This)->lpVtbl -> EvaluateNormals(This,in_pPtLocators,in_ComputationMethod,in_pPointLocatorsIndices,out_pNormals)

#define Geometry_EvaluateClusterProperty(This,in_pPtLocators,in_pParentCluster,in_pClusterProperty,in_pPointLocatorsIndices,out_pData)	\
    (This)->lpVtbl -> EvaluateClusterProperty(This,in_pPtLocators,in_pParentCluster,in_pClusterProperty,in_pPointLocatorsIndices,out_pData)

#define Geometry_GetBoundingBox(This,in_pXfoObjectToBBoxSpace,out_pData)	\
    (This)->lpVtbl -> GetBoundingBox(This,in_pXfoObjectToBBoxSpace,out_pData)

#define Geometry_GetBoundingSphere(This,in_centerMethod,in_pXfoObjectToBSphereSpace,out_pData)	\
    (This)->lpVtbl -> GetBoundingSphere(This,in_centerMethod,in_pXfoObjectToBSphereSpace,out_pData)

#define Geometry_GetBoundingCapsule(This,in_centerMethod,in_axisMethod,in_pXfoObjectToBCapsuleSpace,out_pData)	\
    (This)->lpVtbl -> GetBoundingCapsule(This,in_centerMethod,in_axisMethod,in_pXfoObjectToBCapsuleSpace,out_pData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Geometry_get_Points_Proxy( 
    Geometry * This,
    /* [retval][out] */ PointCollection **out_ppPointCol);


void __RPC_STUB Geometry_get_Points_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Geometry_get_Segments_Proxy( 
    Geometry * This,
    /* [retval][out] */ SegmentCollection **out_ppSegmentCol);


void __RPC_STUB Geometry_get_Segments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Geometry_get_Facets_Proxy( 
    Geometry * This,
    /* [retval][out] */ FacetCollection **out_ppFacetCol);


void __RPC_STUB Geometry_get_Facets_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Geometry_get_Clusters_Proxy( 
    Geometry * This,
    /* [retval][out] */ ClusterCollection **out_ppClusterCol);


void __RPC_STUB Geometry_get_Clusters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Geometry_get_BoundingVolume_Proxy( 
    Geometry * This,
    /* [defaultvalue][in] */ siBoundingVolume VolumeType,
    /* [retval][out] */ IDispatch **__MIDL_0178);


void __RPC_STUB Geometry_get_BoundingVolume_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Geometry_get_Triangles_Proxy( 
    Geometry * This,
    /* [retval][out] */ TriangleCollection **out_ppColl);


void __RPC_STUB Geometry_get_Triangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_AddCluster_Proxy( 
    Geometry * This,
    /* [in] */ BSTR in_Type,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [optional][in] */ VARIANT in_Indices,
    /* [retval][out] */ Cluster **out_ppCluster);


void __RPC_STUB Geometry_AddCluster_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_SaveShapeKey_Proxy( 
    Geometry * This,
    /* [in] */ double in_time,
    /* [defaultvalue][in] */ double in_clipDuration,
    /* [defaultvalue][in] */ siShapeReferenceMode in_refMode,
    /* [defaultvalue][in] */ siShapeInstanceMode in_instMode,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [optional][in] */ VARIANT in_indexArray,
    /* [optional][in] */ VARIANT in_positionArray,
    /* [optional][in] */ VARIANT in_normalArray,
    /* [retval][out] */ ShapeClip **out_pClip);


void __RPC_STUB Geometry_SaveShapeKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_CreateSubComponent_Proxy( 
    Geometry * This,
    /* [in] */ BSTR in_Type,
    /* [optional][in] */ VARIANT in_Indices,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB Geometry_CreateSubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_AddEmptyCluster_Proxy( 
    Geometry * This,
    /* [in] */ BSTR in_Type,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Cluster **out_ppCluster);


void __RPC_STUB Geometry_AddEmptyCluster_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Geometry_get_Samples_Proxy( 
    Geometry * This,
    /* [retval][out] */ SampleCollection **__MIDL_0179);


void __RPC_STUB Geometry_get_Samples_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_GetClosestLocations_Proxy( 
    Geometry * This,
    /* [in] */ VARIANT in_pPositions,
    /* [retval][out] */ PointLocatorData **out_ppPointLocatorData);


void __RPC_STUB Geometry_GetClosestLocations_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_GetClosestLocationsWithinRadius_Proxy( 
    Geometry * This,
    /* [in] */ VARIANT in_PositionToSearchFrom,
    /* [in] */ double in_dRadius,
    /* [defaultvalue][in] */ LONG in_lNbToSearch,
    /* [retval][out] */ PointLocatorData **out_ppPointLocatorData);


void __RPC_STUB Geometry_GetClosestLocationsWithinRadius_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_SetupClosestLocationQueries_Proxy( 
    Geometry * This,
    /* [defaultvalue][in] */ LONG in_Method,
    /* [optional][in] */ IDispatch *in_Transfo,
    /* [optional][in] */ VARIANT in_FacetsToRestrictSearch);


void __RPC_STUB Geometry_SetupClosestLocationQueries_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_GetSurfacePointLocatorsFromPoints_Proxy( 
    Geometry * This,
    /* [optional][in] */ VARIANT in_pPoints,
    /* [retval][out] */ PointLocatorData **out_ppPointLocatorData);


void __RPC_STUB Geometry_GetSurfacePointLocatorsFromPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_EvaluatePositions_Proxy( 
    Geometry * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pPositions);


void __RPC_STUB Geometry_EvaluatePositions_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_EvaluateNormals_Proxy( 
    Geometry * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [defaultvalue][in] */ LONG in_ComputationMethod,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pNormals);


void __RPC_STUB Geometry_EvaluateNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_EvaluateClusterProperty_Proxy( 
    Geometry * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [in] */ Cluster *in_pParentCluster,
    /* [in] */ ClusterProperty *in_pClusterProperty,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pData);


void __RPC_STUB Geometry_EvaluateClusterProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_GetBoundingBox_Proxy( 
    Geometry * This,
    /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBBoxSpace,
    /* [retval][out] */ VARIANT *out_pData);


void __RPC_STUB Geometry_GetBoundingBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_GetBoundingSphere_Proxy( 
    Geometry * This,
    /* [defaultvalue][in] */ siVolumeCenterMethod in_centerMethod,
    /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBSphereSpace,
    /* [retval][out] */ VARIANT *out_pData);


void __RPC_STUB Geometry_GetBoundingSphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Geometry_GetBoundingCapsule_Proxy( 
    Geometry * This,
    /* [defaultvalue][in] */ siVolumeCenterMethod in_centerMethod,
    /* [defaultvalue][in] */ siBoundingCapsuleMethod in_axisMethod,
    /* [defaultvalue][in] */ IDispatch *in_pXfoObjectToBCapsuleSpace,
    /* [retval][out] */ VARIANT *out_pData);


void __RPC_STUB Geometry_GetBoundingCapsule_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Geometry_INTERFACE_DEFINED__ */


#ifndef __Cluster_INTERFACE_DEFINED__
#define __Cluster_INTERFACE_DEFINED__

/* interface Cluster */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Cluster;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("98A5EAE8-4861-11d4-812C-00A0C9AC19A9")
    Cluster : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Elements( 
            /* [retval][out] */ ClusterElementCollection **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CenterReference( 
            /* [retval][out] */ X3DObject **out_ppRef) = 0;
        
        virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_CenterReference( 
            /* [in] */ X3DObject *in_pRef) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HasStaticKinematicState( 
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetStaticKinematicStates( 
            /* [retval][out] */ StaticKinematicStateCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateSubComponent( 
            /* [retval][out] */ SubComponent **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindIndex( 
            /* [in] */ VARIANT vItem,
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindIndices( 
            /* [in] */ VARIANT vItems,
            /* [retval][out] */ VARIANT *vtRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsAlwaysComplete( 
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClusterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Cluster * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Cluster * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Cluster * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Cluster * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Cluster * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Cluster * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Cluster * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Elements )( 
            Cluster * This,
            /* [retval][out] */ ClusterElementCollection **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CenterReference )( 
            Cluster * This,
            /* [retval][out] */ X3DObject **out_ppRef);
        
        /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_CenterReference )( 
            Cluster * This,
            /* [in] */ X3DObject *in_pRef);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HasStaticKinematicState )( 
            Cluster * This,
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetStaticKinematicStates )( 
            Cluster * This,
            /* [retval][out] */ StaticKinematicStateCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateSubComponent )( 
            Cluster * This,
            /* [retval][out] */ SubComponent **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindIndex )( 
            Cluster * This,
            /* [in] */ VARIANT vItem,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindIndices )( 
            Cluster * This,
            /* [in] */ VARIANT vItems,
            /* [retval][out] */ VARIANT *vtRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsAlwaysComplete )( 
            Cluster * This,
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal);
        
        END_INTERFACE
    } ClusterVtbl;

    interface Cluster
    {
        CONST_VTBL struct ClusterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Cluster_get_Elements(This,pVal)	\
    (This)->lpVtbl -> get_Elements(This,pVal)

#define Cluster_get_CenterReference(This,out_ppRef)	\
    (This)->lpVtbl -> get_CenterReference(This,out_ppRef)

#define Cluster_putref_CenterReference(This,in_pRef)	\
    (This)->lpVtbl -> putref_CenterReference(This,in_pRef)

#define Cluster_HasStaticKinematicState(This,out_pRetVal)	\
    (This)->lpVtbl -> HasStaticKinematicState(This,out_pRetVal)

#define Cluster_GetStaticKinematicStates(This,out_ppRetVal)	\
    (This)->lpVtbl -> GetStaticKinematicStates(This,out_ppRetVal)

#define Cluster_CreateSubComponent(This,out_ppRetVal)	\
    (This)->lpVtbl -> CreateSubComponent(This,out_ppRetVal)

#define Cluster_FindIndex(This,vItem,vtRetVal)	\
    (This)->lpVtbl -> FindIndex(This,vItem,vtRetVal)

#define Cluster_FindIndices(This,vItems,vtRetVal)	\
    (This)->lpVtbl -> FindIndices(This,vItems,vtRetVal)

#define Cluster_IsAlwaysComplete(This,out_pRetVal)	\
    (This)->lpVtbl -> IsAlwaysComplete(This,out_pRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Cluster_get_Elements_Proxy( 
    Cluster * This,
    /* [retval][out] */ ClusterElementCollection **pVal);


void __RPC_STUB Cluster_get_Elements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Cluster_get_CenterReference_Proxy( 
    Cluster * This,
    /* [retval][out] */ X3DObject **out_ppRef);


void __RPC_STUB Cluster_get_CenterReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE Cluster_putref_CenterReference_Proxy( 
    Cluster * This,
    /* [in] */ X3DObject *in_pRef);


void __RPC_STUB Cluster_putref_CenterReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Cluster_HasStaticKinematicState_Proxy( 
    Cluster * This,
    /* [retval][out] */ VARIANT_BOOL *out_pRetVal);


void __RPC_STUB Cluster_HasStaticKinematicState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Cluster_GetStaticKinematicStates_Proxy( 
    Cluster * This,
    /* [retval][out] */ StaticKinematicStateCollection **out_ppRetVal);


void __RPC_STUB Cluster_GetStaticKinematicStates_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Cluster_CreateSubComponent_Proxy( 
    Cluster * This,
    /* [retval][out] */ SubComponent **out_ppRetVal);


void __RPC_STUB Cluster_CreateSubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Cluster_FindIndex_Proxy( 
    Cluster * This,
    /* [in] */ VARIANT vItem,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB Cluster_FindIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Cluster_FindIndices_Proxy( 
    Cluster * This,
    /* [in] */ VARIANT vItems,
    /* [retval][out] */ VARIANT *vtRetVal);


void __RPC_STUB Cluster_FindIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Cluster_IsAlwaysComplete_Proxy( 
    Cluster * This,
    /* [retval][out] */ VARIANT_BOOL *out_pRetVal);


void __RPC_STUB Cluster_IsAlwaysComplete_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Cluster_INTERFACE_DEFINED__ */


#ifndef __Facet_INTERFACE_DEFINED__
#define __Facet_INTERFACE_DEFINED__

/* interface Facet */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Facet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7168D21A-3CC9-11d4-812B-00A0C9AC19A9")
    Facet : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Points( 
            /* [retval][out] */ PointCollection **out_ppPointCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Segments( 
            /* [retval][out] */ SegmentCollection **out_ppSegmentCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Samples( 
            /* [retval][out] */ SampleCollection **out_ppSampleCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Facet **out_ppFacet) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NbPoints( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FacetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Facet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Facet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Facet * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Facet * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Facet * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Facet * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Facet * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Points )( 
            Facet * This,
            /* [retval][out] */ PointCollection **out_ppPointCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Segments )( 
            Facet * This,
            /* [retval][out] */ SegmentCollection **out_ppSegmentCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            Facet * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            Facet * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Samples )( 
            Facet * This,
            /* [retval][out] */ SampleCollection **out_ppSampleCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            Facet * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Facet **out_ppFacet);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NbPoints )( 
            Facet * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        END_INTERFACE
    } FacetVtbl;

    interface Facet
    {
        CONST_VTBL struct FacetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Facet_get_Points(This,out_ppPointCol)	\
    (This)->lpVtbl -> get_Points(This,out_ppPointCol)

#define Facet_get_Segments(This,out_ppSegmentCol)	\
    (This)->lpVtbl -> get_Segments(This,out_ppSegmentCol)

#define Facet_get_Index(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Index(This,out_pRetVal)

#define Facet_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define Facet_get_Samples(This,out_ppSampleCol)	\
    (This)->lpVtbl -> get_Samples(This,out_ppSampleCol)

#define Facet_Navigate(This,in_siNavigate,out_ppFacet)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppFacet)

#define Facet_get_NbPoints(This,vtRetVal)	\
    (This)->lpVtbl -> get_NbPoints(This,vtRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Facet_get_Points_Proxy( 
    Facet * This,
    /* [retval][out] */ PointCollection **out_ppPointCol);


void __RPC_STUB Facet_get_Points_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Facet_get_Segments_Proxy( 
    Facet * This,
    /* [retval][out] */ SegmentCollection **out_ppSegmentCol);


void __RPC_STUB Facet_get_Segments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Facet_get_Index_Proxy( 
    Facet * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB Facet_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Facet_get_SubComponent_Proxy( 
    Facet * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB Facet_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Facet_get_Samples_Proxy( 
    Facet * This,
    /* [retval][out] */ SampleCollection **out_ppSampleCol);


void __RPC_STUB Facet_get_Samples_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Facet_Navigate_Proxy( 
    Facet * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ Facet **out_ppFacet);


void __RPC_STUB Facet_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Facet_get_NbPoints_Proxy( 
    Facet * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB Facet_get_NbPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Facet_INTERFACE_DEFINED__ */


#ifndef __Segment_INTERFACE_DEFINED__
#define __Segment_INTERFACE_DEFINED__

/* interface Segment */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Segment;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7168D219-3CC9-11d4-812B-00A0C9AC19A9")
    Segment : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Points( 
            /* [retval][out] */ PointCollection **out_ppPointCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Samples( 
            /* [retval][out] */ SampleCollection **out_ppSampleCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Segment **out_ppSegment) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SegmentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Segment * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Segment * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Segment * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Segment * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Segment * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Segment * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Segment * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Points )( 
            Segment * This,
            /* [retval][out] */ PointCollection **out_ppPointCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            Segment * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            Segment * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Samples )( 
            Segment * This,
            /* [retval][out] */ SampleCollection **out_ppSampleCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            Segment * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Segment **out_ppSegment);
        
        END_INTERFACE
    } SegmentVtbl;

    interface Segment
    {
        CONST_VTBL struct SegmentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Segment_get_Points(This,out_ppPointCol)	\
    (This)->lpVtbl -> get_Points(This,out_ppPointCol)

#define Segment_get_Index(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Index(This,out_pRetVal)

#define Segment_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define Segment_get_Samples(This,out_ppSampleCol)	\
    (This)->lpVtbl -> get_Samples(This,out_ppSampleCol)

#define Segment_Navigate(This,in_siNavigate,out_ppSegment)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppSegment)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Segment_get_Points_Proxy( 
    Segment * This,
    /* [retval][out] */ PointCollection **out_ppPointCol);


void __RPC_STUB Segment_get_Points_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Segment_get_Index_Proxy( 
    Segment * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB Segment_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Segment_get_SubComponent_Proxy( 
    Segment * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB Segment_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Segment_get_Samples_Proxy( 
    Segment * This,
    /* [retval][out] */ SampleCollection **out_ppSampleCol);


void __RPC_STUB Segment_get_Samples_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Segment_Navigate_Proxy( 
    Segment * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ Segment **out_ppSegment);


void __RPC_STUB Segment_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Segment_INTERFACE_DEFINED__ */


#ifndef __Point_INTERFACE_DEFINED__
#define __Point_INTERFACE_DEFINED__

/* interface Point */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Point;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7168D218-3CC9-11d4-812B-00A0C9AC19A9")
    Point : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Array( 
            /* [retval][out] */ VARIANT *out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Array( 
            /* [in] */ VARIANT in_newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ IDispatch **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [optional][out] */ VARIANT_BOOL *out_pbValid,
            /* [retval][out] */ IDispatch **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Samples( 
            /* [retval][out] */ SampleCollection **out_ppSampleCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Point **out_ppPoint) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Point * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Point * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Point * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Point * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Point * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Point * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Point * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Array )( 
            Point * This,
            /* [retval][out] */ VARIANT *out_ppRetVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Array )( 
            Point * This,
            /* [in] */ VARIANT in_newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            Point * This,
            /* [retval][out] */ IDispatch **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            Point * This,
            /* [optional][out] */ VARIANT_BOOL *out_pbValid,
            /* [retval][out] */ IDispatch **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            Point * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            Point * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Samples )( 
            Point * This,
            /* [retval][out] */ SampleCollection **out_ppSampleCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            Point * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Point **out_ppPoint);
        
        END_INTERFACE
    } PointVtbl;

    interface Point
    {
        CONST_VTBL struct PointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Point_get_Array(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Array(This,out_ppRetVal)

#define Point_put_Array(This,in_newVal)	\
    (This)->lpVtbl -> put_Array(This,in_newVal)

#define Point_get_Position(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Position(This,out_ppRetVal)

#define Point_get_Normal(This,out_pbValid,out_ppRetVal)	\
    (This)->lpVtbl -> get_Normal(This,out_pbValid,out_ppRetVal)

#define Point_get_Index(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Index(This,out_pRetVal)

#define Point_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define Point_get_Samples(This,out_ppSampleCol)	\
    (This)->lpVtbl -> get_Samples(This,out_ppSampleCol)

#define Point_Navigate(This,in_siNavigate,out_ppPoint)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppPoint)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Point_get_Array_Proxy( 
    Point * This,
    /* [retval][out] */ VARIANT *out_ppRetVal);


void __RPC_STUB Point_get_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Point_put_Array_Proxy( 
    Point * This,
    /* [in] */ VARIANT in_newVal);


void __RPC_STUB Point_put_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Point_get_Position_Proxy( 
    Point * This,
    /* [retval][out] */ IDispatch **out_ppRetVal);


void __RPC_STUB Point_get_Position_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Point_get_Normal_Proxy( 
    Point * This,
    /* [optional][out] */ VARIANT_BOOL *out_pbValid,
    /* [retval][out] */ IDispatch **out_ppRetVal);


void __RPC_STUB Point_get_Normal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Point_get_Index_Proxy( 
    Point * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB Point_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Point_get_SubComponent_Proxy( 
    Point * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB Point_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Point_get_Samples_Proxy( 
    Point * This,
    /* [retval][out] */ SampleCollection **out_ppSampleCol);


void __RPC_STUB Point_get_Samples_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Point_Navigate_Proxy( 
    Point * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ Point **out_ppPoint);


void __RPC_STUB Point_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Point_INTERFACE_DEFINED__ */


#ifndef __Triangle_INTERFACE_DEFINED__
#define __Triangle_INTERFACE_DEFINED__

/* interface Triangle */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Triangle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D4507102-750E-11d4-ACE4-0090275802BF")
    Triangle : public IDispatch
    {
    public:
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_NeighbourTriangles( 
            /* [retval][out] */ TriangleCollection **out_ppColl) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Points( 
            /* [retval][out] */ TrianglePointCollection **out_ppColl) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PolygonNodeNormalArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ColorArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UVArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pIndex) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PolygonIndex( 
            /* [retval][out] */ LONG *out_pIndex) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NeighborTriangles( 
            /* [retval][out] */ TriangleCollection **out_ppColl) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TriangleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Triangle * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Triangle * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Triangle * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Triangle * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Triangle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Triangle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Triangle * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NeighbourTriangles )( 
            Triangle * This,
            /* [retval][out] */ TriangleCollection **out_ppColl);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Points )( 
            Triangle * This,
            /* [retval][out] */ TrianglePointCollection **out_ppColl);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionArray )( 
            Triangle * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PolygonNodeNormalArray )( 
            Triangle * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColorArray )( 
            Triangle * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UVArray )( 
            Triangle * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            Triangle * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            Triangle * This,
            /* [retval][out] */ LONG *out_pIndex);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PolygonIndex )( 
            Triangle * This,
            /* [retval][out] */ LONG *out_pIndex);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NeighborTriangles )( 
            Triangle * This,
            /* [retval][out] */ TriangleCollection **out_ppColl);
        
        END_INTERFACE
    } TriangleVtbl;

    interface Triangle
    {
        CONST_VTBL struct TriangleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Triangle_get_NeighbourTriangles(This,out_ppColl)	\
    (This)->lpVtbl -> get_NeighbourTriangles(This,out_ppColl)

#define Triangle_get_Points(This,out_ppColl)	\
    (This)->lpVtbl -> get_Points(This,out_ppColl)

#define Triangle_get_PositionArray(This,out_pArray)	\
    (This)->lpVtbl -> get_PositionArray(This,out_pArray)

#define Triangle_get_PolygonNodeNormalArray(This,out_pArray)	\
    (This)->lpVtbl -> get_PolygonNodeNormalArray(This,out_pArray)

#define Triangle_get_ColorArray(This,out_pArray)	\
    (This)->lpVtbl -> get_ColorArray(This,out_pArray)

#define Triangle_get_UVArray(This,out_pArray)	\
    (This)->lpVtbl -> get_UVArray(This,out_pArray)

#define Triangle_get_IndexArray(This,out_pArray)	\
    (This)->lpVtbl -> get_IndexArray(This,out_pArray)

#define Triangle_get_Index(This,out_pIndex)	\
    (This)->lpVtbl -> get_Index(This,out_pIndex)

#define Triangle_get_PolygonIndex(This,out_pIndex)	\
    (This)->lpVtbl -> get_PolygonIndex(This,out_pIndex)

#define Triangle_get_NeighborTriangles(This,out_ppColl)	\
    (This)->lpVtbl -> get_NeighborTriangles(This,out_ppColl)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_NeighbourTriangles_Proxy( 
    Triangle * This,
    /* [retval][out] */ TriangleCollection **out_ppColl);


void __RPC_STUB Triangle_get_NeighbourTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_Points_Proxy( 
    Triangle * This,
    /* [retval][out] */ TrianglePointCollection **out_ppColl);


void __RPC_STUB Triangle_get_Points_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_PositionArray_Proxy( 
    Triangle * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB Triangle_get_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_PolygonNodeNormalArray_Proxy( 
    Triangle * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB Triangle_get_PolygonNodeNormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_ColorArray_Proxy( 
    Triangle * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB Triangle_get_ColorArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_UVArray_Proxy( 
    Triangle * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB Triangle_get_UVArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_IndexArray_Proxy( 
    Triangle * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB Triangle_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_Index_Proxy( 
    Triangle * This,
    /* [retval][out] */ LONG *out_pIndex);


void __RPC_STUB Triangle_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_PolygonIndex_Proxy( 
    Triangle * This,
    /* [retval][out] */ LONG *out_pIndex);


void __RPC_STUB Triangle_get_PolygonIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Triangle_get_NeighborTriangles_Proxy( 
    Triangle * This,
    /* [retval][out] */ TriangleCollection **out_ppColl);


void __RPC_STUB Triangle_get_NeighborTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Triangle_INTERFACE_DEFINED__ */


#ifndef __TrianglePoint_INTERFACE_DEFINED__
#define __TrianglePoint_INTERFACE_DEFINED__

/* interface TrianglePoint */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_TrianglePoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("73D2DEE1-7518-11d4-ACE4-0090275802BF")
    TrianglePoint : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ IDispatch **out_pp3DVector) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [retval][out] */ IDispatch **out_pp3DVector) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Color( 
            /* [retval][out] */ Color **out_ppColor) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UV( 
            /* [retval][out] */ UV **out_pUV) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pIndex) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ColorArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UVArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TrianglePointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TrianglePoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TrianglePoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TrianglePoint * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TrianglePoint * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TrianglePoint * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TrianglePoint * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TrianglePoint * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            TrianglePoint * This,
            /* [retval][out] */ IDispatch **out_pp3DVector);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            TrianglePoint * This,
            /* [retval][out] */ IDispatch **out_pp3DVector);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            TrianglePoint * This,
            /* [retval][out] */ Color **out_ppColor);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UV )( 
            TrianglePoint * This,
            /* [retval][out] */ UV **out_pUV);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            TrianglePoint * This,
            /* [retval][out] */ LONG *out_pIndex);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionArray )( 
            TrianglePoint * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalArray )( 
            TrianglePoint * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColorArray )( 
            TrianglePoint * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UVArray )( 
            TrianglePoint * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        END_INTERFACE
    } TrianglePointVtbl;

    interface TrianglePoint
    {
        CONST_VTBL struct TrianglePointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define TrianglePoint_get_Position(This,out_pp3DVector)	\
    (This)->lpVtbl -> get_Position(This,out_pp3DVector)

#define TrianglePoint_get_Normal(This,out_pp3DVector)	\
    (This)->lpVtbl -> get_Normal(This,out_pp3DVector)

#define TrianglePoint_get_Color(This,out_ppColor)	\
    (This)->lpVtbl -> get_Color(This,out_ppColor)

#define TrianglePoint_get_UV(This,out_pUV)	\
    (This)->lpVtbl -> get_UV(This,out_pUV)

#define TrianglePoint_get_Index(This,out_pIndex)	\
    (This)->lpVtbl -> get_Index(This,out_pIndex)

#define TrianglePoint_get_PositionArray(This,out_pArray)	\
    (This)->lpVtbl -> get_PositionArray(This,out_pArray)

#define TrianglePoint_get_NormalArray(This,out_pArray)	\
    (This)->lpVtbl -> get_NormalArray(This,out_pArray)

#define TrianglePoint_get_ColorArray(This,out_pArray)	\
    (This)->lpVtbl -> get_ColorArray(This,out_pArray)

#define TrianglePoint_get_UVArray(This,out_pArray)	\
    (This)->lpVtbl -> get_UVArray(This,out_pArray)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_Position_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ IDispatch **out_pp3DVector);


void __RPC_STUB TrianglePoint_get_Position_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_Normal_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ IDispatch **out_pp3DVector);


void __RPC_STUB TrianglePoint_get_Normal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_Color_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ Color **out_ppColor);


void __RPC_STUB TrianglePoint_get_Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_UV_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ UV **out_pUV);


void __RPC_STUB TrianglePoint_get_UV_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_Index_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ LONG *out_pIndex);


void __RPC_STUB TrianglePoint_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_PositionArray_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePoint_get_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_NormalArray_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePoint_get_NormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_ColorArray_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePoint_get_ColorArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePoint_get_UVArray_Proxy( 
    TrianglePoint * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePoint_get_UVArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TrianglePoint_INTERFACE_DEFINED__ */


#ifndef __UV_INTERFACE_DEFINED__
#define __UV_INTERFACE_DEFINED__

/* interface UV */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UV;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("113538A1-7CF1-11d4-ACE5-0090275802BF")
    UV : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_U( 
            /* [retval][out] */ double *__MIDL_0191) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_V( 
            /* [retval][out] */ double *__MIDL_0192) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct UVVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UV * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UV * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UV * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UV * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UV * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UV * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UV * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_U )( 
            UV * This,
            /* [retval][out] */ double *__MIDL_0191);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_V )( 
            UV * This,
            /* [retval][out] */ double *__MIDL_0192);
        
        END_INTERFACE
    } UVVtbl;

    interface UV
    {
        CONST_VTBL struct UVVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define UV_get_U(This,__MIDL_0191)	\
    (This)->lpVtbl -> get_U(This,__MIDL_0191)

#define UV_get_V(This,__MIDL_0192)	\
    (This)->lpVtbl -> get_V(This,__MIDL_0192)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UV_get_U_Proxy( 
    UV * This,
    /* [retval][out] */ double *__MIDL_0191);


void __RPC_STUB UV_get_U_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE UV_get_V_Proxy( 
    UV * This,
    /* [retval][out] */ double *__MIDL_0192);


void __RPC_STUB UV_get_V_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __UV_INTERFACE_DEFINED__ */


#ifndef __NurbsSurfaceMesh_INTERFACE_DEFINED__
#define __NurbsSurfaceMesh_INTERFACE_DEFINED__

/* interface NurbsSurfaceMesh */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_NurbsSurfaceMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9B6A38CC-ACFE-11d4-8149-00A0C9AC19A9")
    NurbsSurfaceMesh : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Surfaces( 
            /* [retval][out] */ NurbsSurfaceCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE GetData( 
            /* [out] */ VARIANT *out_pvsalCount,
            /* [out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsadUKnots,
            /* [optional][out] */ VARIANT *out_pvsadVKnots,
            /* [optional][out] */ VARIANT *out_pvsabUClosed,
            /* [optional][out] */ VARIANT *out_pvsabVClosed,
            /* [optional][out] */ VARIANT *out_pvsalUDegree,
            /* [optional][out] */ VARIANT *out_pvsalVDegree,
            /* [optional][out] */ VARIANT *out_pvsaeUParam,
            /* [optional][out] */ VARIANT *out_pvsaeVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSurface( 
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
            /* [defaultvalue][in] */ LONG in_lUDegree,
            /* [defaultvalue][in] */ LONG in_lVDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_eUParam,
            /* [defaultvalue][in] */ siKnotParameterization in_eVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsSurface **out_ppNurbsSurface) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSurfaces( 
            /* [optional][in] */ VARIANT in_vsaCount,
            /* [optional][in] */ VARIANT in_vsaUVControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [optional][in] */ VARIANT in_vsabUClosed,
            /* [optional][in] */ VARIANT in_vsabVClosed,
            /* [optional][in] */ VARIANT in_vsalUDegree,
            /* [optional][in] */ VARIANT in_vsalVDegree,
            /* [optional][in] */ VARIANT in_vsaeUParam,
            /* [optional][in] */ VARIANT in_vsaeVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsSurfaceCollection **out_ppNurbsSurfaceCollection) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_pvsalCount,
            /* [optional][out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaNbUControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaNbVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsadUKnots,
            /* [optional][out] */ VARIANT *out_pvsaNbUKnots,
            /* [optional][out] */ VARIANT *out_pvsadVKnots,
            /* [optional][out] */ VARIANT *out_pvsaNbVKnots,
            /* [optional][out] */ VARIANT *out_pvsabUClosed,
            /* [optional][out] */ VARIANT *out_pvsabVClosed,
            /* [optional][out] */ VARIANT *out_pvsalUDegree,
            /* [optional][out] */ VARIANT *out_pvsalVDegree,
            /* [optional][out] */ VARIANT *out_pvsaeUParam,
            /* [optional][out] */ VARIANT *out_pvsaeVParam) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ VARIANT in_vsalCount,
            /* [in] */ VARIANT in_vsaUVControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbUControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbVControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsaNbUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [optional][in] */ VARIANT in_vsaNbVKnots,
            /* [optional][in] */ VARIANT in_vsabUClosed,
            /* [optional][in] */ VARIANT in_vsabVClosed,
            /* [optional][in] */ VARIANT in_vsalUDegree,
            /* [optional][in] */ VARIANT in_vsalVDegree,
            /* [optional][in] */ VARIANT in_vsaeUParam,
            /* [optional][in] */ VARIANT in_vsaeVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetClosestSurfacePosition( 
            /* [in] */ VARIANT in_vPosition,
            /* [optional][out] */ VARIANT *out_pvSurfaceIndex,
            /* [optional][out] */ VARIANT *out_pvSquaredDistance,
            /* [optional][out] */ VARIANT *out_pvUValue,
            /* [optional][out] */ VARIANT *out_pvVValue,
            /* [optional][out] */ VARIANT *out_pvPosition) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get2( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetClosestSurfacePosition2( 
            /* [in] */ VARIANT in_vPosition,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NurbsSamples( 
            /* [retval][out] */ NurbsSampleCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSurfaceWithTrim( 
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
            /* [defaultvalue][in] */ LONG in_lUDegree,
            /* [defaultvalue][in] */ LONG in_lVDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_eUParam,
            /* [defaultvalue][in] */ siKnotParameterization in_eVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ LONG in_lNbTrim,
            /* [optional][in] */ VARIANT in_vsabIsBoundary,
            /* [optional][in] */ VARIANT in_vsalProjectionType,
            /* [optional][in] */ VARIANT in_vsalNbCurve,
            /* [optional][in] */ VARIANT in_vsaCurveControlPoints,
            /* [optional][in] */ VARIANT in_vsaCurveNbControlPoints,
            /* [optional][in] */ VARIANT in_vsaCurveParam,
            /* [optional][in] */ VARIANT in_vsaCurveKnots,
            /* [optional][in] */ VARIANT in_vsaCurveNbKnots,
            /* [optional][in] */ VARIANT in_vsaCurveDegree,
            /* [optional][in] */ VARIANT in_vsaCurveClosed,
            /* [retval][out] */ NurbsSurface **out_ppNurbsSurface) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSubSurfaceIndexArray( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNormalizedUVArray( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pNormalizedUVs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConstructPointLocators( 
            /* [in] */ VARIANT in_pSubSurfaceIndices,
            /* [in] */ VARIANT in_pNormalizedUVs,
            /* [retval][out] */ PointLocatorData **out_ppPointLocators) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsSurfaceMeshVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsSurfaceMesh * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsSurfaceMesh * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsSurfaceMesh * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsSurfaceMesh * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsSurfaceMesh * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsSurfaceMesh * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsSurfaceMesh * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Surfaces )( 
            NurbsSurfaceMesh * This,
            /* [retval][out] */ NurbsSurfaceCollection **out_ppRetVal);
        
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
            NurbsSurfaceMesh * This,
            /* [out] */ VARIANT *out_pvsalCount,
            /* [out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsadUKnots,
            /* [optional][out] */ VARIANT *out_pvsadVKnots,
            /* [optional][out] */ VARIANT *out_pvsabUClosed,
            /* [optional][out] */ VARIANT *out_pvsabVClosed,
            /* [optional][out] */ VARIANT *out_pvsalUDegree,
            /* [optional][out] */ VARIANT *out_pvsalVDegree,
            /* [optional][out] */ VARIANT *out_pvsaeUParam,
            /* [optional][out] */ VARIANT *out_pvsaeVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSurface )( 
            NurbsSurfaceMesh * This,
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
            /* [defaultvalue][in] */ LONG in_lUDegree,
            /* [defaultvalue][in] */ LONG in_lVDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_eUParam,
            /* [defaultvalue][in] */ siKnotParameterization in_eVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsSurface **out_ppNurbsSurface);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSurfaces )( 
            NurbsSurfaceMesh * This,
            /* [optional][in] */ VARIANT in_vsaCount,
            /* [optional][in] */ VARIANT in_vsaUVControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [optional][in] */ VARIANT in_vsabUClosed,
            /* [optional][in] */ VARIANT in_vsabVClosed,
            /* [optional][in] */ VARIANT in_vsalUDegree,
            /* [optional][in] */ VARIANT in_vsalVDegree,
            /* [optional][in] */ VARIANT in_vsaeUParam,
            /* [optional][in] */ VARIANT in_vsaeVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsSurfaceCollection **out_ppNurbsSurfaceCollection);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get )( 
            NurbsSurfaceMesh * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_pvsalCount,
            /* [optional][out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaNbUControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaNbVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsadUKnots,
            /* [optional][out] */ VARIANT *out_pvsaNbUKnots,
            /* [optional][out] */ VARIANT *out_pvsadVKnots,
            /* [optional][out] */ VARIANT *out_pvsaNbVKnots,
            /* [optional][out] */ VARIANT *out_pvsabUClosed,
            /* [optional][out] */ VARIANT *out_pvsabVClosed,
            /* [optional][out] */ VARIANT *out_pvsalUDegree,
            /* [optional][out] */ VARIANT *out_pvsalVDegree,
            /* [optional][out] */ VARIANT *out_pvsaeUParam,
            /* [optional][out] */ VARIANT *out_pvsaeVParam);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Set )( 
            NurbsSurfaceMesh * This,
            /* [in] */ VARIANT in_vsalCount,
            /* [in] */ VARIANT in_vsaUVControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbUControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbVControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsaNbUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [optional][in] */ VARIANT in_vsaNbVKnots,
            /* [optional][in] */ VARIANT in_vsabUClosed,
            /* [optional][in] */ VARIANT in_vsabVClosed,
            /* [optional][in] */ VARIANT in_vsalUDegree,
            /* [optional][in] */ VARIANT in_vsalVDegree,
            /* [optional][in] */ VARIANT in_vsaeUParam,
            /* [optional][in] */ VARIANT in_vsaeVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetClosestSurfacePosition )( 
            NurbsSurfaceMesh * This,
            /* [in] */ VARIANT in_vPosition,
            /* [optional][out] */ VARIANT *out_pvSurfaceIndex,
            /* [optional][out] */ VARIANT *out_pvSquaredDistance,
            /* [optional][out] */ VARIANT *out_pvUValue,
            /* [optional][out] */ VARIANT *out_pvVValue,
            /* [optional][out] */ VARIANT *out_pvPosition);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get2 )( 
            NurbsSurfaceMesh * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetClosestSurfacePosition2 )( 
            NurbsSurfaceMesh * This,
            /* [in] */ VARIANT in_vPosition,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NurbsSamples )( 
            NurbsSurfaceMesh * This,
            /* [retval][out] */ NurbsSampleCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSurfaceWithTrim )( 
            NurbsSurfaceMesh * This,
            /* [optional][in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadUKnots,
            /* [optional][in] */ VARIANT in_vsadVKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
            /* [defaultvalue][in] */ LONG in_lUDegree,
            /* [defaultvalue][in] */ LONG in_lVDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_eUParam,
            /* [defaultvalue][in] */ siKnotParameterization in_eVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [defaultvalue][in] */ LONG in_lNbTrim,
            /* [optional][in] */ VARIANT in_vsabIsBoundary,
            /* [optional][in] */ VARIANT in_vsalProjectionType,
            /* [optional][in] */ VARIANT in_vsalNbCurve,
            /* [optional][in] */ VARIANT in_vsaCurveControlPoints,
            /* [optional][in] */ VARIANT in_vsaCurveNbControlPoints,
            /* [optional][in] */ VARIANT in_vsaCurveParam,
            /* [optional][in] */ VARIANT in_vsaCurveKnots,
            /* [optional][in] */ VARIANT in_vsaCurveNbKnots,
            /* [optional][in] */ VARIANT in_vsaCurveDegree,
            /* [optional][in] */ VARIANT in_vsaCurveClosed,
            /* [retval][out] */ NurbsSurface **out_ppNurbsSurface);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSubSurfaceIndexArray )( 
            NurbsSurfaceMesh * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNormalizedUVArray )( 
            NurbsSurfaceMesh * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pNormalizedUVs);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConstructPointLocators )( 
            NurbsSurfaceMesh * This,
            /* [in] */ VARIANT in_pSubSurfaceIndices,
            /* [in] */ VARIANT in_pNormalizedUVs,
            /* [retval][out] */ PointLocatorData **out_ppPointLocators);
        
        END_INTERFACE
    } NurbsSurfaceMeshVtbl;

    interface NurbsSurfaceMesh
    {
        CONST_VTBL struct NurbsSurfaceMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsSurfaceMesh_get_Surfaces(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Surfaces(This,out_ppRetVal)

#define NurbsSurfaceMesh_GetData(This,out_pvsalCount,out_pvsaUVControlPoints,out_pvsadUKnots,out_pvsadVKnots,out_pvsabUClosed,out_pvsabVClosed,out_pvsalUDegree,out_pvsalVDegree,out_pvsaeUParam,out_pvsaeVParam,in_eNurbsFormat)	\
    (This)->lpVtbl -> GetData(This,out_pvsalCount,out_pvsaUVControlPoints,out_pvsadUKnots,out_pvsadVKnots,out_pvsabUClosed,out_pvsabVClosed,out_pvsalUDegree,out_pvsalVDegree,out_pvsaeUParam,out_pvsaeVParam,in_eNurbsFormat)

#define NurbsSurfaceMesh_AddSurface(This,in_vsaControlPoints,in_vsadUKnots,in_vsadVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_eUParam,in_eVParam,in_eNurbsFormat,out_ppNurbsSurface)	\
    (This)->lpVtbl -> AddSurface(This,in_vsaControlPoints,in_vsadUKnots,in_vsadVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_eUParam,in_eVParam,in_eNurbsFormat,out_ppNurbsSurface)

#define NurbsSurfaceMesh_AddSurfaces(This,in_vsaCount,in_vsaUVControlPoints,in_vsadUKnots,in_vsadVKnots,in_vsabUClosed,in_vsabVClosed,in_vsalUDegree,in_vsalVDegree,in_vsaeUParam,in_vsaeVParam,in_eNurbsFormat,out_ppNurbsSurfaceCollection)	\
    (This)->lpVtbl -> AddSurfaces(This,in_vsaCount,in_vsaUVControlPoints,in_vsadUKnots,in_vsadVKnots,in_vsabUClosed,in_vsabVClosed,in_vsalUDegree,in_vsalVDegree,in_vsaeUParam,in_vsaeVParam,in_eNurbsFormat,out_ppNurbsSurfaceCollection)

#define NurbsSurfaceMesh_Get(This,in_eNurbsFormat,out_pvsalCount,out_pvsaUVControlPoints,out_pvsaNbUControlPoints,out_pvsaNbVControlPoints,out_pvsadUKnots,out_pvsaNbUKnots,out_pvsadVKnots,out_pvsaNbVKnots,out_pvsabUClosed,out_pvsabVClosed,out_pvsalUDegree,out_pvsalVDegree,out_pvsaeUParam,out_pvsaeVParam)	\
    (This)->lpVtbl -> Get(This,in_eNurbsFormat,out_pvsalCount,out_pvsaUVControlPoints,out_pvsaNbUControlPoints,out_pvsaNbVControlPoints,out_pvsadUKnots,out_pvsaNbUKnots,out_pvsadVKnots,out_pvsaNbVKnots,out_pvsabUClosed,out_pvsabVClosed,out_pvsalUDegree,out_pvsalVDegree,out_pvsaeUParam,out_pvsaeVParam)

#define NurbsSurfaceMesh_Set(This,in_vsalCount,in_vsaUVControlPoints,in_vsaNbUControlPoints,in_vsaNbVControlPoints,in_vsadUKnots,in_vsaNbUKnots,in_vsadVKnots,in_vsaNbVKnots,in_vsabUClosed,in_vsabVClosed,in_vsalUDegree,in_vsalVDegree,in_vsaeUParam,in_vsaeVParam,in_eNurbsFormat)	\
    (This)->lpVtbl -> Set(This,in_vsalCount,in_vsaUVControlPoints,in_vsaNbUControlPoints,in_vsaNbVControlPoints,in_vsadUKnots,in_vsaNbUKnots,in_vsadVKnots,in_vsaNbVKnots,in_vsabUClosed,in_vsabVClosed,in_vsalUDegree,in_vsalVDegree,in_vsaeUParam,in_vsaeVParam,in_eNurbsFormat)

#define NurbsSurfaceMesh_GetClosestSurfacePosition(This,in_vPosition,out_pvSurfaceIndex,out_pvSquaredDistance,out_pvUValue,out_pvVValue,out_pvPosition)	\
    (This)->lpVtbl -> GetClosestSurfacePosition(This,in_vPosition,out_pvSurfaceIndex,out_pvSquaredDistance,out_pvUValue,out_pvVValue,out_pvPosition)

#define NurbsSurfaceMesh_Get2(This,in_eNurbsFormat,out_pRetValues)	\
    (This)->lpVtbl -> Get2(This,in_eNurbsFormat,out_pRetValues)

#define NurbsSurfaceMesh_GetClosestSurfacePosition2(This,in_vPosition,out_pRetValues)	\
    (This)->lpVtbl -> GetClosestSurfacePosition2(This,in_vPosition,out_pRetValues)

#define NurbsSurfaceMesh_get_NurbsSamples(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_NurbsSamples(This,out_ppRetVal)

#define NurbsSurfaceMesh_AddSurfaceWithTrim(This,in_vsaControlPoints,in_vsadUKnots,in_vsadVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_eUParam,in_eVParam,in_eNurbsFormat,in_lNbTrim,in_vsabIsBoundary,in_vsalProjectionType,in_vsalNbCurve,in_vsaCurveControlPoints,in_vsaCurveNbControlPoints,in_vsaCurveParam,in_vsaCurveKnots,in_vsaCurveNbKnots,in_vsaCurveDegree,in_vsaCurveClosed,out_ppNurbsSurface)	\
    (This)->lpVtbl -> AddSurfaceWithTrim(This,in_vsaControlPoints,in_vsadUKnots,in_vsadVKnots,in_bUClosed,in_bVClosed,in_lUDegree,in_lVDegree,in_eUParam,in_eVParam,in_eNurbsFormat,in_lNbTrim,in_vsabIsBoundary,in_vsalProjectionType,in_vsalNbCurve,in_vsaCurveControlPoints,in_vsaCurveNbControlPoints,in_vsaCurveParam,in_vsaCurveKnots,in_vsaCurveNbKnots,in_vsaCurveDegree,in_vsaCurveClosed,out_ppNurbsSurface)

#define NurbsSurfaceMesh_GetSubSurfaceIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)	\
    (This)->lpVtbl -> GetSubSurfaceIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)

#define NurbsSurfaceMesh_GetNormalizedUVArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pNormalizedUVs)	\
    (This)->lpVtbl -> GetNormalizedUVArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pNormalizedUVs)

#define NurbsSurfaceMesh_ConstructPointLocators(This,in_pSubSurfaceIndices,in_pNormalizedUVs,out_ppPointLocators)	\
    (This)->lpVtbl -> ConstructPointLocators(This,in_pSubSurfaceIndices,in_pNormalizedUVs,out_ppPointLocators)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_get_Surfaces_Proxy( 
    NurbsSurfaceMesh * This,
    /* [retval][out] */ NurbsSurfaceCollection **out_ppRetVal);


void __RPC_STUB NurbsSurfaceMesh_get_Surfaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_GetData_Proxy( 
    NurbsSurfaceMesh * This,
    /* [out] */ VARIANT *out_pvsalCount,
    /* [out] */ VARIANT *out_pvsaUVControlPoints,
    /* [optional][out] */ VARIANT *out_pvsadUKnots,
    /* [optional][out] */ VARIANT *out_pvsadVKnots,
    /* [optional][out] */ VARIANT *out_pvsabUClosed,
    /* [optional][out] */ VARIANT *out_pvsabVClosed,
    /* [optional][out] */ VARIANT *out_pvsalUDegree,
    /* [optional][out] */ VARIANT *out_pvsalVDegree,
    /* [optional][out] */ VARIANT *out_pvsaeUParam,
    /* [optional][out] */ VARIANT *out_pvsaeVParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsSurfaceMesh_GetData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_AddSurface_Proxy( 
    NurbsSurfaceMesh * This,
    /* [optional][in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsadUKnots,
    /* [optional][in] */ VARIANT in_vsadVKnots,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
    /* [defaultvalue][in] */ LONG in_lUDegree,
    /* [defaultvalue][in] */ LONG in_lVDegree,
    /* [defaultvalue][in] */ siKnotParameterization in_eUParam,
    /* [defaultvalue][in] */ siKnotParameterization in_eVParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ NurbsSurface **out_ppNurbsSurface);


void __RPC_STUB NurbsSurfaceMesh_AddSurface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_AddSurfaces_Proxy( 
    NurbsSurfaceMesh * This,
    /* [optional][in] */ VARIANT in_vsaCount,
    /* [optional][in] */ VARIANT in_vsaUVControlPoints,
    /* [optional][in] */ VARIANT in_vsadUKnots,
    /* [optional][in] */ VARIANT in_vsadVKnots,
    /* [optional][in] */ VARIANT in_vsabUClosed,
    /* [optional][in] */ VARIANT in_vsabVClosed,
    /* [optional][in] */ VARIANT in_vsalUDegree,
    /* [optional][in] */ VARIANT in_vsalVDegree,
    /* [optional][in] */ VARIANT in_vsaeUParam,
    /* [optional][in] */ VARIANT in_vsaeVParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ NurbsSurfaceCollection **out_ppNurbsSurfaceCollection);


void __RPC_STUB NurbsSurfaceMesh_AddSurfaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_Get_Proxy( 
    NurbsSurfaceMesh * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [optional][out] */ VARIANT *out_pvsalCount,
    /* [optional][out] */ VARIANT *out_pvsaUVControlPoints,
    /* [optional][out] */ VARIANT *out_pvsaNbUControlPoints,
    /* [optional][out] */ VARIANT *out_pvsaNbVControlPoints,
    /* [optional][out] */ VARIANT *out_pvsadUKnots,
    /* [optional][out] */ VARIANT *out_pvsaNbUKnots,
    /* [optional][out] */ VARIANT *out_pvsadVKnots,
    /* [optional][out] */ VARIANT *out_pvsaNbVKnots,
    /* [optional][out] */ VARIANT *out_pvsabUClosed,
    /* [optional][out] */ VARIANT *out_pvsabVClosed,
    /* [optional][out] */ VARIANT *out_pvsalUDegree,
    /* [optional][out] */ VARIANT *out_pvsalVDegree,
    /* [optional][out] */ VARIANT *out_pvsaeUParam,
    /* [optional][out] */ VARIANT *out_pvsaeVParam);


void __RPC_STUB NurbsSurfaceMesh_Get_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_Set_Proxy( 
    NurbsSurfaceMesh * This,
    /* [in] */ VARIANT in_vsalCount,
    /* [in] */ VARIANT in_vsaUVControlPoints,
    /* [optional][in] */ VARIANT in_vsaNbUControlPoints,
    /* [optional][in] */ VARIANT in_vsaNbVControlPoints,
    /* [optional][in] */ VARIANT in_vsadUKnots,
    /* [optional][in] */ VARIANT in_vsaNbUKnots,
    /* [optional][in] */ VARIANT in_vsadVKnots,
    /* [optional][in] */ VARIANT in_vsaNbVKnots,
    /* [optional][in] */ VARIANT in_vsabUClosed,
    /* [optional][in] */ VARIANT in_vsabVClosed,
    /* [optional][in] */ VARIANT in_vsalUDegree,
    /* [optional][in] */ VARIANT in_vsalVDegree,
    /* [optional][in] */ VARIANT in_vsaeUParam,
    /* [optional][in] */ VARIANT in_vsaeVParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsSurfaceMesh_Set_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_GetClosestSurfacePosition_Proxy( 
    NurbsSurfaceMesh * This,
    /* [in] */ VARIANT in_vPosition,
    /* [optional][out] */ VARIANT *out_pvSurfaceIndex,
    /* [optional][out] */ VARIANT *out_pvSquaredDistance,
    /* [optional][out] */ VARIANT *out_pvUValue,
    /* [optional][out] */ VARIANT *out_pvVValue,
    /* [optional][out] */ VARIANT *out_pvPosition);


void __RPC_STUB NurbsSurfaceMesh_GetClosestSurfacePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_Get2_Proxy( 
    NurbsSurfaceMesh * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurfaceMesh_Get2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_GetClosestSurfacePosition2_Proxy( 
    NurbsSurfaceMesh * This,
    /* [in] */ VARIANT in_vPosition,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurfaceMesh_GetClosestSurfacePosition2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_get_NurbsSamples_Proxy( 
    NurbsSurfaceMesh * This,
    /* [retval][out] */ NurbsSampleCollection **out_ppRetVal);


void __RPC_STUB NurbsSurfaceMesh_get_NurbsSamples_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_AddSurfaceWithTrim_Proxy( 
    NurbsSurfaceMesh * This,
    /* [optional][in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsadUKnots,
    /* [optional][in] */ VARIANT in_vsadVKnots,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bUClosed,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bVClosed,
    /* [defaultvalue][in] */ LONG in_lUDegree,
    /* [defaultvalue][in] */ LONG in_lVDegree,
    /* [defaultvalue][in] */ siKnotParameterization in_eUParam,
    /* [defaultvalue][in] */ siKnotParameterization in_eVParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [defaultvalue][in] */ LONG in_lNbTrim,
    /* [optional][in] */ VARIANT in_vsabIsBoundary,
    /* [optional][in] */ VARIANT in_vsalProjectionType,
    /* [optional][in] */ VARIANT in_vsalNbCurve,
    /* [optional][in] */ VARIANT in_vsaCurveControlPoints,
    /* [optional][in] */ VARIANT in_vsaCurveNbControlPoints,
    /* [optional][in] */ VARIANT in_vsaCurveParam,
    /* [optional][in] */ VARIANT in_vsaCurveKnots,
    /* [optional][in] */ VARIANT in_vsaCurveNbKnots,
    /* [optional][in] */ VARIANT in_vsaCurveDegree,
    /* [optional][in] */ VARIANT in_vsaCurveClosed,
    /* [retval][out] */ NurbsSurface **out_ppNurbsSurface);


void __RPC_STUB NurbsSurfaceMesh_AddSurfaceWithTrim_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_GetSubSurfaceIndexArray_Proxy( 
    NurbsSurfaceMesh * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pIndices);


void __RPC_STUB NurbsSurfaceMesh_GetSubSurfaceIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_GetNormalizedUVArray_Proxy( 
    NurbsSurfaceMesh * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pNormalizedUVs);


void __RPC_STUB NurbsSurfaceMesh_GetNormalizedUVArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceMesh_ConstructPointLocators_Proxy( 
    NurbsSurfaceMesh * This,
    /* [in] */ VARIANT in_pSubSurfaceIndices,
    /* [in] */ VARIANT in_pNormalizedUVs,
    /* [retval][out] */ PointLocatorData **out_ppPointLocators);


void __RPC_STUB NurbsSurfaceMesh_ConstructPointLocators_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsSurfaceMesh_INTERFACE_DEFINED__ */


#ifndef __NurbsSurface_INTERFACE_DEFINED__
#define __NurbsSurface_INTERFACE_DEFINED__

/* interface NurbsSurface */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_NurbsSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("468BF48E-6EED-11d4-813C-00A0C9AC19A9")
    NurbsSurface : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Knots( 
            siNurbsDirection __MIDL_0193,
            /* [retval][out] */ KnotCollection **__MIDL_0194) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UKnots( 
            /* [retval][out] */ KnotCollection **__MIDL_0195) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VKnots( 
            /* [retval][out] */ KnotCollection **__MIDL_0196) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ControlPoints( 
            /* [retval][out] */ ControlPointCollection **__MIDL_0197) = 0;
        
        virtual /* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE GetData( 
            /* [out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaUKnots,
            /* [optional][out] */ VARIANT *out_pvsaVKnots,
            /* [optional][out] */ VARIANT *out_pvbUClosed,
            /* [optional][out] */ VARIANT *out_pvbVClosed,
            /* [optional][out] */ VARIANT *out_pvlUDegree,
            /* [optional][out] */ VARIANT *out_pvlVDegree,
            /* [optional][out] */ VARIANT *out_pveUParam,
            /* [optional][out] */ VARIANT *out_pveVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaUKnots,
            /* [optional][out] */ VARIANT *out_pvsaVKnots,
            /* [optional][out] */ VARIANT *out_pvbUClosed,
            /* [optional][out] */ VARIANT *out_pvbVClosed,
            /* [optional][out] */ VARIANT *out_pvlUDegree,
            /* [optional][out] */ VARIANT *out_pvlVDegree,
            /* [optional][out] */ VARIANT *out_pveUParam,
            /* [optional][out] */ VARIANT *out_pveVParam) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ VARIANT in_vsaUVControlPoints,
            /* [optional][in] */ VARIANT in_vsaUKnots,
            /* [optional][in] */ VARIANT in_vsaVKnots,
            /* [optional][in] */ VARIANT in_vbUClosed,
            /* [optional][in] */ VARIANT in_vbVClosed,
            /* [optional][in] */ VARIANT in_vlUDegree,
            /* [optional][in] */ VARIANT in_vlVDegree,
            /* [optional][in] */ VARIANT in_veUParam,
            /* [optional][in] */ VARIANT in_veVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluatePosition( 
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [optional][out] */ VARIANT *out_pPosition,
            /* [optional][out] */ VARIANT *out_pUTangent,
            /* [optional][out] */ VARIANT *out_pVTangent,
            /* [optional][out] */ VARIANT *out_pNormal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluateNormalizedPosition( 
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [optional][out] */ VARIANT *out_pPosition,
            /* [optional][out] */ VARIANT *out_pUTangent,
            /* [optional][out] */ VARIANT *out_pVTangent,
            /* [optional][out] */ VARIANT *out_pNormal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNormalizedUVFromUV( 
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [out] */ VARIANT *out_pdUValueNormalized,
            /* [out] */ VARIANT *out_pdVValueNormalized) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetUVFromNormalizedUV( 
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [out] */ VARIANT *out_pdUValue,
            /* [out] */ VARIANT *out_pdVValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get2( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNormalizedUVFromUV2( 
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetUVFromNormalizedUV2( 
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NurbsSamples( 
            /* [retval][out] */ NurbsSampleCollection **__MIDL_0198) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TrimCount( 
            /* [retval][out] */ LONG *__MIDL_0199) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTrim( 
            /* [in] */ LONG in_nTrimIndex,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_vsabIsBoundary,
            /* [optional][out] */ VARIANT *out_vsalProjectionType,
            /* [optional][out] */ VARIANT *out_vsalCount,
            /* [optional][out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vsaNbControlPoints,
            /* [optional][out] */ VARIANT *out_vsadKnots,
            /* [optional][out] */ VARIANT *out_vsaNbKnots,
            /* [optional][out] */ VARIANT *out_vsasClosed,
            /* [optional][out] */ VARIANT *out_vsalDegree,
            /* [optional][out] */ VARIANT *out_vsalParameterization) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTrim2( 
            /* [in] */ LONG in_nTrimIndex,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluatePosition2( 
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluateNormalizedPosition2( 
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsSurface * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsSurface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsSurface * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsSurface * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsSurface * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsSurface * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsSurface * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Knots )( 
            NurbsSurface * This,
            siNurbsDirection __MIDL_0193,
            /* [retval][out] */ KnotCollection **__MIDL_0194);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UKnots )( 
            NurbsSurface * This,
            /* [retval][out] */ KnotCollection **__MIDL_0195);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VKnots )( 
            NurbsSurface * This,
            /* [retval][out] */ KnotCollection **__MIDL_0196);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ControlPoints )( 
            NurbsSurface * This,
            /* [retval][out] */ ControlPointCollection **__MIDL_0197);
        
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
            NurbsSurface * This,
            /* [out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaUKnots,
            /* [optional][out] */ VARIANT *out_pvsaVKnots,
            /* [optional][out] */ VARIANT *out_pvbUClosed,
            /* [optional][out] */ VARIANT *out_pvbVClosed,
            /* [optional][out] */ VARIANT *out_pvlUDegree,
            /* [optional][out] */ VARIANT *out_pvlVDegree,
            /* [optional][out] */ VARIANT *out_pveUParam,
            /* [optional][out] */ VARIANT *out_pveVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get )( 
            NurbsSurface * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_pvsaUVControlPoints,
            /* [optional][out] */ VARIANT *out_pvsaUKnots,
            /* [optional][out] */ VARIANT *out_pvsaVKnots,
            /* [optional][out] */ VARIANT *out_pvbUClosed,
            /* [optional][out] */ VARIANT *out_pvbVClosed,
            /* [optional][out] */ VARIANT *out_pvlUDegree,
            /* [optional][out] */ VARIANT *out_pvlVDegree,
            /* [optional][out] */ VARIANT *out_pveUParam,
            /* [optional][out] */ VARIANT *out_pveVParam);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Set )( 
            NurbsSurface * This,
            /* [in] */ VARIANT in_vsaUVControlPoints,
            /* [optional][in] */ VARIANT in_vsaUKnots,
            /* [optional][in] */ VARIANT in_vsaVKnots,
            /* [optional][in] */ VARIANT in_vbUClosed,
            /* [optional][in] */ VARIANT in_vbVClosed,
            /* [optional][in] */ VARIANT in_vlUDegree,
            /* [optional][in] */ VARIANT in_vlVDegree,
            /* [optional][in] */ VARIANT in_veUParam,
            /* [optional][in] */ VARIANT in_veVParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluatePosition )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [optional][out] */ VARIANT *out_pPosition,
            /* [optional][out] */ VARIANT *out_pUTangent,
            /* [optional][out] */ VARIANT *out_pVTangent,
            /* [optional][out] */ VARIANT *out_pNormal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluateNormalizedPosition )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [optional][out] */ VARIANT *out_pPosition,
            /* [optional][out] */ VARIANT *out_pUTangent,
            /* [optional][out] */ VARIANT *out_pVTangent,
            /* [optional][out] */ VARIANT *out_pNormal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNormalizedUVFromUV )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [out] */ VARIANT *out_pdUValueNormalized,
            /* [out] */ VARIANT *out_pdVValueNormalized);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetUVFromNormalizedUV )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [out] */ VARIANT *out_pdUValue,
            /* [out] */ VARIANT *out_pdVValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get2 )( 
            NurbsSurface * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNormalizedUVFromUV2 )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetUVFromNormalizedUV2 )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NurbsSamples )( 
            NurbsSurface * This,
            /* [retval][out] */ NurbsSampleCollection **__MIDL_0198);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TrimCount )( 
            NurbsSurface * This,
            /* [retval][out] */ LONG *__MIDL_0199);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTrim )( 
            NurbsSurface * This,
            /* [in] */ LONG in_nTrimIndex,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_vsabIsBoundary,
            /* [optional][out] */ VARIANT *out_vsalProjectionType,
            /* [optional][out] */ VARIANT *out_vsalCount,
            /* [optional][out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vsaNbControlPoints,
            /* [optional][out] */ VARIANT *out_vsadKnots,
            /* [optional][out] */ VARIANT *out_vsaNbKnots,
            /* [optional][out] */ VARIANT *out_vsasClosed,
            /* [optional][out] */ VARIANT *out_vsalDegree,
            /* [optional][out] */ VARIANT *out_vsalParameterization);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTrim2 )( 
            NurbsSurface * This,
            /* [in] */ LONG in_nTrimIndex,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluatePosition2 )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValue,
            /* [in] */ double in_dVValue,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluateNormalizedPosition2 )( 
            NurbsSurface * This,
            /* [in] */ double in_dUValueNormalized,
            /* [in] */ double in_dVValueNormalized,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        END_INTERFACE
    } NurbsSurfaceVtbl;

    interface NurbsSurface
    {
        CONST_VTBL struct NurbsSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsSurface_get_Knots(This,__MIDL_0193,__MIDL_0194)	\
    (This)->lpVtbl -> get_Knots(This,__MIDL_0193,__MIDL_0194)

#define NurbsSurface_get_UKnots(This,__MIDL_0195)	\
    (This)->lpVtbl -> get_UKnots(This,__MIDL_0195)

#define NurbsSurface_get_VKnots(This,__MIDL_0196)	\
    (This)->lpVtbl -> get_VKnots(This,__MIDL_0196)

#define NurbsSurface_get_ControlPoints(This,__MIDL_0197)	\
    (This)->lpVtbl -> get_ControlPoints(This,__MIDL_0197)

#define NurbsSurface_GetData(This,out_pvsaUVControlPoints,out_pvsaUKnots,out_pvsaVKnots,out_pvbUClosed,out_pvbVClosed,out_pvlUDegree,out_pvlVDegree,out_pveUParam,out_pveVParam,in_eNurbsFormat)	\
    (This)->lpVtbl -> GetData(This,out_pvsaUVControlPoints,out_pvsaUKnots,out_pvsaVKnots,out_pvbUClosed,out_pvbVClosed,out_pvlUDegree,out_pvlVDegree,out_pveUParam,out_pveVParam,in_eNurbsFormat)

#define NurbsSurface_Get(This,in_eNurbsFormat,out_pvsaUVControlPoints,out_pvsaUKnots,out_pvsaVKnots,out_pvbUClosed,out_pvbVClosed,out_pvlUDegree,out_pvlVDegree,out_pveUParam,out_pveVParam)	\
    (This)->lpVtbl -> Get(This,in_eNurbsFormat,out_pvsaUVControlPoints,out_pvsaUKnots,out_pvsaVKnots,out_pvbUClosed,out_pvbVClosed,out_pvlUDegree,out_pvlVDegree,out_pveUParam,out_pveVParam)

#define NurbsSurface_Set(This,in_vsaUVControlPoints,in_vsaUKnots,in_vsaVKnots,in_vbUClosed,in_vbVClosed,in_vlUDegree,in_vlVDegree,in_veUParam,in_veVParam,in_eNurbsFormat)	\
    (This)->lpVtbl -> Set(This,in_vsaUVControlPoints,in_vsaUKnots,in_vsaVKnots,in_vbUClosed,in_vbVClosed,in_vlUDegree,in_vlVDegree,in_veUParam,in_veVParam,in_eNurbsFormat)

#define NurbsSurface_EvaluatePosition(This,in_dUValue,in_dVValue,out_pPosition,out_pUTangent,out_pVTangent,out_pNormal)	\
    (This)->lpVtbl -> EvaluatePosition(This,in_dUValue,in_dVValue,out_pPosition,out_pUTangent,out_pVTangent,out_pNormal)

#define NurbsSurface_EvaluateNormalizedPosition(This,in_dUValueNormalized,in_dVValueNormalized,out_pPosition,out_pUTangent,out_pVTangent,out_pNormal)	\
    (This)->lpVtbl -> EvaluateNormalizedPosition(This,in_dUValueNormalized,in_dVValueNormalized,out_pPosition,out_pUTangent,out_pVTangent,out_pNormal)

#define NurbsSurface_GetNormalizedUVFromUV(This,in_dUValue,in_dVValue,out_pdUValueNormalized,out_pdVValueNormalized)	\
    (This)->lpVtbl -> GetNormalizedUVFromUV(This,in_dUValue,in_dVValue,out_pdUValueNormalized,out_pdVValueNormalized)

#define NurbsSurface_GetUVFromNormalizedUV(This,in_dUValueNormalized,in_dVValueNormalized,out_pdUValue,out_pdVValue)	\
    (This)->lpVtbl -> GetUVFromNormalizedUV(This,in_dUValueNormalized,in_dVValueNormalized,out_pdUValue,out_pdVValue)

#define NurbsSurface_Get2(This,in_eNurbsFormat,out_pRetValues)	\
    (This)->lpVtbl -> Get2(This,in_eNurbsFormat,out_pRetValues)

#define NurbsSurface_GetNormalizedUVFromUV2(This,in_dUValue,in_dVValue,out_pRetValues)	\
    (This)->lpVtbl -> GetNormalizedUVFromUV2(This,in_dUValue,in_dVValue,out_pRetValues)

#define NurbsSurface_GetUVFromNormalizedUV2(This,in_dUValueNormalized,in_dVValueNormalized,out_pRetValues)	\
    (This)->lpVtbl -> GetUVFromNormalizedUV2(This,in_dUValueNormalized,in_dVValueNormalized,out_pRetValues)

#define NurbsSurface_get_NurbsSamples(This,__MIDL_0198)	\
    (This)->lpVtbl -> get_NurbsSamples(This,__MIDL_0198)

#define NurbsSurface_get_TrimCount(This,__MIDL_0199)	\
    (This)->lpVtbl -> get_TrimCount(This,__MIDL_0199)

#define NurbsSurface_GetTrim(This,in_nTrimIndex,in_eNurbsFormat,out_vsabIsBoundary,out_vsalProjectionType,out_vsalCount,out_vsaControlPoints,out_vsaNbControlPoints,out_vsadKnots,out_vsaNbKnots,out_vsasClosed,out_vsalDegree,out_vsalParameterization)	\
    (This)->lpVtbl -> GetTrim(This,in_nTrimIndex,in_eNurbsFormat,out_vsabIsBoundary,out_vsalProjectionType,out_vsalCount,out_vsaControlPoints,out_vsaNbControlPoints,out_vsadKnots,out_vsaNbKnots,out_vsasClosed,out_vsalDegree,out_vsalParameterization)

#define NurbsSurface_GetTrim2(This,in_nTrimIndex,in_eNurbsFormat,out_pRetValues)	\
    (This)->lpVtbl -> GetTrim2(This,in_nTrimIndex,in_eNurbsFormat,out_pRetValues)

#define NurbsSurface_EvaluatePosition2(This,in_dUValue,in_dVValue,out_pRetValues)	\
    (This)->lpVtbl -> EvaluatePosition2(This,in_dUValue,in_dVValue,out_pRetValues)

#define NurbsSurface_EvaluateNormalizedPosition2(This,in_dUValueNormalized,in_dVValueNormalized,out_pRetValues)	\
    (This)->lpVtbl -> EvaluateNormalizedPosition2(This,in_dUValueNormalized,in_dVValueNormalized,out_pRetValues)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurface_get_Knots_Proxy( 
    NurbsSurface * This,
    siNurbsDirection __MIDL_0193,
    /* [retval][out] */ KnotCollection **__MIDL_0194);


void __RPC_STUB NurbsSurface_get_Knots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurface_get_UKnots_Proxy( 
    NurbsSurface * This,
    /* [retval][out] */ KnotCollection **__MIDL_0195);


void __RPC_STUB NurbsSurface_get_UKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurface_get_VKnots_Proxy( 
    NurbsSurface * This,
    /* [retval][out] */ KnotCollection **__MIDL_0196);


void __RPC_STUB NurbsSurface_get_VKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurface_get_ControlPoints_Proxy( 
    NurbsSurface * This,
    /* [retval][out] */ ControlPointCollection **__MIDL_0197);


void __RPC_STUB NurbsSurface_get_ControlPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_GetData_Proxy( 
    NurbsSurface * This,
    /* [out] */ VARIANT *out_pvsaUVControlPoints,
    /* [optional][out] */ VARIANT *out_pvsaUKnots,
    /* [optional][out] */ VARIANT *out_pvsaVKnots,
    /* [optional][out] */ VARIANT *out_pvbUClosed,
    /* [optional][out] */ VARIANT *out_pvbVClosed,
    /* [optional][out] */ VARIANT *out_pvlUDegree,
    /* [optional][out] */ VARIANT *out_pvlVDegree,
    /* [optional][out] */ VARIANT *out_pveUParam,
    /* [optional][out] */ VARIANT *out_pveVParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsSurface_GetData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_Get_Proxy( 
    NurbsSurface * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [optional][out] */ VARIANT *out_pvsaUVControlPoints,
    /* [optional][out] */ VARIANT *out_pvsaUKnots,
    /* [optional][out] */ VARIANT *out_pvsaVKnots,
    /* [optional][out] */ VARIANT *out_pvbUClosed,
    /* [optional][out] */ VARIANT *out_pvbVClosed,
    /* [optional][out] */ VARIANT *out_pvlUDegree,
    /* [optional][out] */ VARIANT *out_pvlVDegree,
    /* [optional][out] */ VARIANT *out_pveUParam,
    /* [optional][out] */ VARIANT *out_pveVParam);


void __RPC_STUB NurbsSurface_Get_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_Set_Proxy( 
    NurbsSurface * This,
    /* [in] */ VARIANT in_vsaUVControlPoints,
    /* [optional][in] */ VARIANT in_vsaUKnots,
    /* [optional][in] */ VARIANT in_vsaVKnots,
    /* [optional][in] */ VARIANT in_vbUClosed,
    /* [optional][in] */ VARIANT in_vbVClosed,
    /* [optional][in] */ VARIANT in_vlUDegree,
    /* [optional][in] */ VARIANT in_vlVDegree,
    /* [optional][in] */ VARIANT in_veUParam,
    /* [optional][in] */ VARIANT in_veVParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsSurface_Set_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_EvaluatePosition_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValue,
    /* [in] */ double in_dVValue,
    /* [optional][out] */ VARIANT *out_pPosition,
    /* [optional][out] */ VARIANT *out_pUTangent,
    /* [optional][out] */ VARIANT *out_pVTangent,
    /* [optional][out] */ VARIANT *out_pNormal);


void __RPC_STUB NurbsSurface_EvaluatePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_EvaluateNormalizedPosition_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValueNormalized,
    /* [in] */ double in_dVValueNormalized,
    /* [optional][out] */ VARIANT *out_pPosition,
    /* [optional][out] */ VARIANT *out_pUTangent,
    /* [optional][out] */ VARIANT *out_pVTangent,
    /* [optional][out] */ VARIANT *out_pNormal);


void __RPC_STUB NurbsSurface_EvaluateNormalizedPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_GetNormalizedUVFromUV_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValue,
    /* [in] */ double in_dVValue,
    /* [out] */ VARIANT *out_pdUValueNormalized,
    /* [out] */ VARIANT *out_pdVValueNormalized);


void __RPC_STUB NurbsSurface_GetNormalizedUVFromUV_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_GetUVFromNormalizedUV_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValueNormalized,
    /* [in] */ double in_dVValueNormalized,
    /* [out] */ VARIANT *out_pdUValue,
    /* [out] */ VARIANT *out_pdVValue);


void __RPC_STUB NurbsSurface_GetUVFromNormalizedUV_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_Get2_Proxy( 
    NurbsSurface * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurface_Get2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_GetNormalizedUVFromUV2_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValue,
    /* [in] */ double in_dVValue,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurface_GetNormalizedUVFromUV2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_GetUVFromNormalizedUV2_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValueNormalized,
    /* [in] */ double in_dVValueNormalized,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurface_GetUVFromNormalizedUV2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurface_get_NurbsSamples_Proxy( 
    NurbsSurface * This,
    /* [retval][out] */ NurbsSampleCollection **__MIDL_0198);


void __RPC_STUB NurbsSurface_get_NurbsSamples_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurface_get_TrimCount_Proxy( 
    NurbsSurface * This,
    /* [retval][out] */ LONG *__MIDL_0199);


void __RPC_STUB NurbsSurface_get_TrimCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_GetTrim_Proxy( 
    NurbsSurface * This,
    /* [in] */ LONG in_nTrimIndex,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [optional][out] */ VARIANT *out_vsabIsBoundary,
    /* [optional][out] */ VARIANT *out_vsalProjectionType,
    /* [optional][out] */ VARIANT *out_vsalCount,
    /* [optional][out] */ VARIANT *out_vsaControlPoints,
    /* [optional][out] */ VARIANT *out_vsaNbControlPoints,
    /* [optional][out] */ VARIANT *out_vsadKnots,
    /* [optional][out] */ VARIANT *out_vsaNbKnots,
    /* [optional][out] */ VARIANT *out_vsasClosed,
    /* [optional][out] */ VARIANT *out_vsalDegree,
    /* [optional][out] */ VARIANT *out_vsalParameterization);


void __RPC_STUB NurbsSurface_GetTrim_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_GetTrim2_Proxy( 
    NurbsSurface * This,
    /* [in] */ LONG in_nTrimIndex,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurface_GetTrim2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_EvaluatePosition2_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValue,
    /* [in] */ double in_dVValue,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurface_EvaluatePosition2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSurface_EvaluateNormalizedPosition2_Proxy( 
    NurbsSurface * This,
    /* [in] */ double in_dUValueNormalized,
    /* [in] */ double in_dVValueNormalized,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsSurface_EvaluateNormalizedPosition2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsSurface_INTERFACE_DEFINED__ */


#ifndef __NurbsSurfaceCollection_INTERFACE_DEFINED__
#define __NurbsSurfaceCollection_INTERFACE_DEFINED__

/* interface NurbsSurfaceCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_NurbsSurfaceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AA6CF636-6EEF-11d4-813C-00A0C9AC19A9")
    NurbsSurfaceCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ NurbsSurface **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsSurfaceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsSurfaceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsSurfaceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsSurfaceCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsSurfaceCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsSurfaceCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsSurfaceCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsSurfaceCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            NurbsSurfaceCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ NurbsSurface **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            NurbsSurfaceCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            NurbsSurfaceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            NurbsSurfaceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } NurbsSurfaceCollectionVtbl;

    interface NurbsSurfaceCollection
    {
        CONST_VTBL struct NurbsSurfaceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsSurfaceCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define NurbsSurfaceCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define NurbsSurfaceCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define NurbsSurfaceCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceCollection_get_Item_Proxy( 
    NurbsSurfaceCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ NurbsSurface **out_pParam);


void __RPC_STUB NurbsSurfaceCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceCollection_get_Count_Proxy( 
    NurbsSurfaceCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB NurbsSurfaceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceCollection_get_NewEnum_Proxy( 
    NurbsSurfaceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB NurbsSurfaceCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE NurbsSurfaceCollection_get__NewEnum_Proxy( 
    NurbsSurfaceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB NurbsSurfaceCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsSurfaceCollection_INTERFACE_DEFINED__ */


#ifndef __KnotCollection_INTERFACE_DEFINED__
#define __KnotCollection_INTERFACE_DEFINED__

/* interface KnotCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_KnotCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A4C38B04-6EE1-11d4-813C-00A0C9AC19A9")
    KnotCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ VARIANT *out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Array( 
            /* [retval][out] */ VARIANT *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Closed( 
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Degree( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parameterization( 
            /* [retval][out] */ siKnotParameterization *__MIDL_0208) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMultiplicity( 
            /* [in] */ double in_dKnotValue,
            /* [retval][out] */ LONG *out_dMultiplicity) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct KnotCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            KnotCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            KnotCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            KnotCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            KnotCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            KnotCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            KnotCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            KnotCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            KnotCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ VARIANT *out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            KnotCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            KnotCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Array )( 
            KnotCollection * This,
            /* [retval][out] */ VARIANT *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Closed )( 
            KnotCollection * This,
            /* [retval][out] */ VARIANT_BOOL *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Degree )( 
            KnotCollection * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parameterization )( 
            KnotCollection * This,
            /* [retval][out] */ siKnotParameterization *__MIDL_0208);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMultiplicity )( 
            KnotCollection * This,
            /* [in] */ double in_dKnotValue,
            /* [retval][out] */ LONG *out_dMultiplicity);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            KnotCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } KnotCollectionVtbl;

    interface KnotCollection
    {
        CONST_VTBL struct KnotCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define KnotCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define KnotCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define KnotCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define KnotCollection_get_Array(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Array(This,out_pRetVal)

#define KnotCollection_get_Closed(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Closed(This,out_pRetVal)

#define KnotCollection_get_Degree(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Degree(This,out_pRetVal)

#define KnotCollection_get_Parameterization(This,__MIDL_0208)	\
    (This)->lpVtbl -> get_Parameterization(This,__MIDL_0208)

#define KnotCollection_GetMultiplicity(This,in_dKnotValue,out_dMultiplicity)	\
    (This)->lpVtbl -> GetMultiplicity(This,in_dKnotValue,out_dMultiplicity)

#define KnotCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get_Item_Proxy( 
    KnotCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ VARIANT *out_pParam);


void __RPC_STUB KnotCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get_Count_Proxy( 
    KnotCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB KnotCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get_NewEnum_Proxy( 
    KnotCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB KnotCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get_Array_Proxy( 
    KnotCollection * This,
    /* [retval][out] */ VARIANT *out_pRetVal);


void __RPC_STUB KnotCollection_get_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get_Closed_Proxy( 
    KnotCollection * This,
    /* [retval][out] */ VARIANT_BOOL *out_pRetVal);


void __RPC_STUB KnotCollection_get_Closed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get_Degree_Proxy( 
    KnotCollection * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB KnotCollection_get_Degree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get_Parameterization_Proxy( 
    KnotCollection * This,
    /* [retval][out] */ siKnotParameterization *__MIDL_0208);


void __RPC_STUB KnotCollection_get_Parameterization_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE KnotCollection_GetMultiplicity_Proxy( 
    KnotCollection * This,
    /* [in] */ double in_dKnotValue,
    /* [retval][out] */ LONG *out_dMultiplicity);


void __RPC_STUB KnotCollection_GetMultiplicity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE KnotCollection_get__NewEnum_Proxy( 
    KnotCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB KnotCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __KnotCollection_INTERFACE_DEFINED__ */


#ifndef __PolygonNodeCollection_INTERFACE_DEFINED__
#define __PolygonNodeCollection_INTERFACE_DEFINED__

/* interface PolygonNodeCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PolygonNodeCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("72240380-A83B-11D4-BC3F-00AA0068BF56")
    PolygonNodeCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PolygonNode **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PolygonNodeCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PolygonNodeCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PolygonNodeCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PolygonNodeCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PolygonNodeCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PolygonNodeCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PolygonNodeCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PolygonNodeCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PolygonNodeCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PolygonNode **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PolygonNodeCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            PolygonNodeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalArray )( 
            PolygonNodeCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            PolygonNodeCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PolygonNodeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } PolygonNodeCollectionVtbl;

    interface PolygonNodeCollection
    {
        CONST_VTBL struct PolygonNodeCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PolygonNodeCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PolygonNodeCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PolygonNodeCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define PolygonNodeCollection_get_NormalArray(This,pVal)	\
    (This)->lpVtbl -> get_NormalArray(This,pVal)

#define PolygonNodeCollection_get_IndexArray(This,pVal)	\
    (This)->lpVtbl -> get_IndexArray(This,pVal)

#define PolygonNodeCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PolygonNodeCollection_get_Item_Proxy( 
    PolygonNodeCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ PolygonNode **out_pParam);


void __RPC_STUB PolygonNodeCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PolygonNodeCollection_get_Count_Proxy( 
    PolygonNodeCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PolygonNodeCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PolygonNodeCollection_get_NewEnum_Proxy( 
    PolygonNodeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PolygonNodeCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonNodeCollection_get_NormalArray_Proxy( 
    PolygonNodeCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PolygonNodeCollection_get_NormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonNodeCollection_get_IndexArray_Proxy( 
    PolygonNodeCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PolygonNodeCollection_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PolygonNodeCollection_get__NewEnum_Proxy( 
    PolygonNodeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PolygonNodeCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PolygonNodeCollection_INTERFACE_DEFINED__ */


#ifndef __PolygonFace_INTERFACE_DEFINED__
#define __PolygonFace_INTERFACE_DEFINED__

/* interface PolygonFace */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PolygonFace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8185DDB0-A83B-11D4-BC3F-00AA0068BF56")
    PolygonFace : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Nodes( 
            /* [retval][out] */ PolygonNodeCollection **__MIDL_0213) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GrowNeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppFacetCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Vertices( 
            /* [retval][out] */ VertexCollection **__MIDL_0214) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Edges( 
            /* [retval][out] */ EdgeCollection **__MIDL_0215) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TriangleSubIndexArray( 
            /* [retval][out] */ VARIANT *__MIDL_0216) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PolygonFaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PolygonFace * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PolygonFace * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PolygonFace * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PolygonFace * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PolygonFace * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PolygonFace * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PolygonFace * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Nodes )( 
            PolygonFace * This,
            /* [retval][out] */ PolygonNodeCollection **__MIDL_0213);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborVertices )( 
            PolygonFace * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborEdges )( 
            PolygonFace * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborPolygons )( 
            PolygonFace * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GrowNeighborPolygons )( 
            PolygonFace * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppFacetCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Vertices )( 
            PolygonFace * This,
            /* [retval][out] */ VertexCollection **__MIDL_0214);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Edges )( 
            PolygonFace * This,
            /* [retval][out] */ EdgeCollection **__MIDL_0215);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TriangleSubIndexArray )( 
            PolygonFace * This,
            /* [retval][out] */ VARIANT *__MIDL_0216);
        
        END_INTERFACE
    } PolygonFaceVtbl;

    interface PolygonFace
    {
        CONST_VTBL struct PolygonFaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PolygonFace_get_Nodes(This,__MIDL_0213)	\
    (This)->lpVtbl -> get_Nodes(This,__MIDL_0213)

#define PolygonFace_NeighborVertices(This,in_lDistance,out_ppVertexCol)	\
    (This)->lpVtbl -> NeighborVertices(This,in_lDistance,out_ppVertexCol)

#define PolygonFace_NeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> NeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define PolygonFace_NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)	\
    (This)->lpVtbl -> NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)

#define PolygonFace_GrowNeighborPolygons(This,in_lDistance,out_ppFacetCol)	\
    (This)->lpVtbl -> GrowNeighborPolygons(This,in_lDistance,out_ppFacetCol)

#define PolygonFace_get_Vertices(This,__MIDL_0214)	\
    (This)->lpVtbl -> get_Vertices(This,__MIDL_0214)

#define PolygonFace_get_Edges(This,__MIDL_0215)	\
    (This)->lpVtbl -> get_Edges(This,__MIDL_0215)

#define PolygonFace_get_TriangleSubIndexArray(This,__MIDL_0216)	\
    (This)->lpVtbl -> get_TriangleSubIndexArray(This,__MIDL_0216)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFace_get_Nodes_Proxy( 
    PolygonFace * This,
    /* [retval][out] */ PolygonNodeCollection **__MIDL_0213);


void __RPC_STUB PolygonFace_get_Nodes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFace_NeighborVertices_Proxy( 
    PolygonFace * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppVertexCol);


void __RPC_STUB PolygonFace_NeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFace_NeighborEdges_Proxy( 
    PolygonFace * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB PolygonFace_NeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFace_NeighborPolygons_Proxy( 
    PolygonFace * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);


void __RPC_STUB PolygonFace_NeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFace_GrowNeighborPolygons_Proxy( 
    PolygonFace * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppFacetCol);


void __RPC_STUB PolygonFace_GrowNeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFace_get_Vertices_Proxy( 
    PolygonFace * This,
    /* [retval][out] */ VertexCollection **__MIDL_0214);


void __RPC_STUB PolygonFace_get_Vertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFace_get_Edges_Proxy( 
    PolygonFace * This,
    /* [retval][out] */ EdgeCollection **__MIDL_0215);


void __RPC_STUB PolygonFace_get_Edges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFace_get_TriangleSubIndexArray_Proxy( 
    PolygonFace * This,
    /* [retval][out] */ VARIANT *__MIDL_0216);


void __RPC_STUB PolygonFace_get_TriangleSubIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PolygonFace_INTERFACE_DEFINED__ */


#ifndef __PolygonFaceCollection_INTERFACE_DEFINED__
#define __PolygonFaceCollection_INTERFACE_DEFINED__

/* interface PolygonFaceCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PolygonFaceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2E9F3E50-A84D-11D4-BC3F-00AA0068BF56")
    PolygonFaceCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PolygonFace **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PolygonNodeNormalArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PolygonNodePolygonFaceIndexArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GrowNeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PolygonFaceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PolygonFaceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PolygonFaceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PolygonFaceCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PolygonFaceCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PolygonFaceCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PolygonFaceCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PolygonFaceCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PolygonFaceCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PolygonFace **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PolygonFaceCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            PolygonFaceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalArray )( 
            PolygonFaceCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PolygonNodeNormalArray )( 
            PolygonFaceCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PolygonNodePolygonFaceIndexArray )( 
            PolygonFaceCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborVertices )( 
            PolygonFaceCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborEdges )( 
            PolygonFaceCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborPolygons )( 
            PolygonFaceCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GrowNeighborPolygons )( 
            PolygonFaceCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PolygonFaceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } PolygonFaceCollectionVtbl;

    interface PolygonFaceCollection
    {
        CONST_VTBL struct PolygonFaceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PolygonFaceCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PolygonFaceCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PolygonFaceCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define PolygonFaceCollection_get_NormalArray(This,pVal)	\
    (This)->lpVtbl -> get_NormalArray(This,pVal)

#define PolygonFaceCollection_get_PolygonNodeNormalArray(This,pVal)	\
    (This)->lpVtbl -> get_PolygonNodeNormalArray(This,pVal)

#define PolygonFaceCollection_get_PolygonNodePolygonFaceIndexArray(This,pVal)	\
    (This)->lpVtbl -> get_PolygonNodePolygonFaceIndexArray(This,pVal)

#define PolygonFaceCollection_NeighborVertices(This,in_lDistance,out_ppVertexCol)	\
    (This)->lpVtbl -> NeighborVertices(This,in_lDistance,out_ppVertexCol)

#define PolygonFaceCollection_NeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> NeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define PolygonFaceCollection_NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)	\
    (This)->lpVtbl -> NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)

#define PolygonFaceCollection_GrowNeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)	\
    (This)->lpVtbl -> GrowNeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)

#define PolygonFaceCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_get_Item_Proxy( 
    PolygonFaceCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ PolygonFace **out_pParam);


void __RPC_STUB PolygonFaceCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_get_Count_Proxy( 
    PolygonFaceCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PolygonFaceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_get_NewEnum_Proxy( 
    PolygonFaceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PolygonFaceCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_get_NormalArray_Proxy( 
    PolygonFaceCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PolygonFaceCollection_get_NormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_get_PolygonNodeNormalArray_Proxy( 
    PolygonFaceCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PolygonFaceCollection_get_PolygonNodeNormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_get_PolygonNodePolygonFaceIndexArray_Proxy( 
    PolygonFaceCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PolygonFaceCollection_get_PolygonNodePolygonFaceIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_NeighborVertices_Proxy( 
    PolygonFaceCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppVertexCol);


void __RPC_STUB PolygonFaceCollection_NeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_NeighborEdges_Proxy( 
    PolygonFaceCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB PolygonFaceCollection_NeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_NeighborPolygons_Proxy( 
    PolygonFaceCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);


void __RPC_STUB PolygonFaceCollection_NeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_GrowNeighborPolygons_Proxy( 
    PolygonFaceCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);


void __RPC_STUB PolygonFaceCollection_GrowNeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PolygonFaceCollection_get__NewEnum_Proxy( 
    PolygonFaceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PolygonFaceCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PolygonFaceCollection_INTERFACE_DEFINED__ */


#ifndef __PolygonMesh_INTERFACE_DEFINED__
#define __PolygonMesh_INTERFACE_DEFINED__

/* interface PolygonMesh */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PolygonMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9D247290-A848-11D4-BC3F-00AA0068BF56")
    PolygonMesh : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Polygons( 
            /* [retval][out] */ PolygonFaceCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get( 
            /* [out] */ VARIANT *out_vertices,
            /* [optional][out] */ VARIANT *out_polygonData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ VARIANT in_vertices,
            /* [optional][in] */ VARIANT in_polygonData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetApproximatedMesh( 
            /* [in] */ siSubdivisionRuleType in_SubRule,
            /* [in] */ LONG in_lSubdivisionLevel,
            /* [in] */ VARIANT_BOOL in_bDiscontinuity,
            /* [in] */ double in_dDiscontinuityAngle,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetApproximatedMeshAndAttributes( 
            /* [in] */ siSubdivisionRuleType in_SubRule,
            /* [in] */ LONG in_lSubdivisionLevel,
            /* [in] */ VARIANT_BOOL in_bDiscontinuity,
            /* [in] */ double in_dDiscontinuityAngle,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Nodes( 
            /* [retval][out] */ PolygonNodeCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get2( 
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Vertices( 
            /* [retval][out] */ VertexCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Edges( 
            /* [retval][out] */ EdgeCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentVertexColor( 
            /* [retval][out] */ ClusterProperty **__MIDL_0209) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CurrentVertexColor( 
            /* [in] */ ClusterProperty *__MIDL_0210) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddVertexColor( 
            /* [defaultvalue][in] */ BSTR name,
            /* [retval][out] */ ClusterProperty **__MIDL_0211) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VertexColors( 
            /* [retval][out] */ ClusterPropertyCollection **__MIDL_0212) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPolygonIndexArray( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTriangleVertexIndexArray( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTriangleNodeIndexArray( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTriangleWeightArray( 
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pWeights) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConstructPointLocators( 
            /* [in] */ VARIANT in_pPolygonIndices,
            /* [in] */ VARIANT in_pSubTriangleVertexIndices,
            /* [in] */ VARIANT in_pSubTriangleWeights,
            /* [retval][out] */ PointLocatorData **out_ppPointLocators) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PolygonMeshVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PolygonMesh * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PolygonMesh * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PolygonMesh * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PolygonMesh * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PolygonMesh * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PolygonMesh * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PolygonMesh * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Polygons )( 
            PolygonMesh * This,
            /* [retval][out] */ PolygonFaceCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get )( 
            PolygonMesh * This,
            /* [out] */ VARIANT *out_vertices,
            /* [optional][out] */ VARIANT *out_polygonData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Set )( 
            PolygonMesh * This,
            /* [in] */ VARIANT in_vertices,
            /* [optional][in] */ VARIANT in_polygonData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetApproximatedMesh )( 
            PolygonMesh * This,
            /* [in] */ siSubdivisionRuleType in_SubRule,
            /* [in] */ LONG in_lSubdivisionLevel,
            /* [in] */ VARIANT_BOOL in_bDiscontinuity,
            /* [in] */ double in_dDiscontinuityAngle,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetApproximatedMeshAndAttributes )( 
            PolygonMesh * This,
            /* [in] */ siSubdivisionRuleType in_SubRule,
            /* [in] */ LONG in_lSubdivisionLevel,
            /* [in] */ VARIANT_BOOL in_bDiscontinuity,
            /* [in] */ double in_dDiscontinuityAngle,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Nodes )( 
            PolygonMesh * This,
            /* [retval][out] */ PolygonNodeCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get2 )( 
            PolygonMesh * This,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Vertices )( 
            PolygonMesh * This,
            /* [retval][out] */ VertexCollection **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Edges )( 
            PolygonMesh * This,
            /* [retval][out] */ EdgeCollection **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentVertexColor )( 
            PolygonMesh * This,
            /* [retval][out] */ ClusterProperty **__MIDL_0209);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CurrentVertexColor )( 
            PolygonMesh * This,
            /* [in] */ ClusterProperty *__MIDL_0210);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddVertexColor )( 
            PolygonMesh * This,
            /* [defaultvalue][in] */ BSTR name,
            /* [retval][out] */ ClusterProperty **__MIDL_0211);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VertexColors )( 
            PolygonMesh * This,
            /* [retval][out] */ ClusterPropertyCollection **__MIDL_0212);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPolygonIndexArray )( 
            PolygonMesh * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTriangleVertexIndexArray )( 
            PolygonMesh * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTriangleNodeIndexArray )( 
            PolygonMesh * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTriangleWeightArray )( 
            PolygonMesh * This,
            /* [in] */ PointLocatorData *in_pPtLocators,
            /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
            /* [retval][out] */ VARIANT *out_pWeights);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConstructPointLocators )( 
            PolygonMesh * This,
            /* [in] */ VARIANT in_pPolygonIndices,
            /* [in] */ VARIANT in_pSubTriangleVertexIndices,
            /* [in] */ VARIANT in_pSubTriangleWeights,
            /* [retval][out] */ PointLocatorData **out_ppPointLocators);
        
        END_INTERFACE
    } PolygonMeshVtbl;

    interface PolygonMesh
    {
        CONST_VTBL struct PolygonMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PolygonMesh_get_Polygons(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Polygons(This,out_ppRetVal)

#define PolygonMesh_Get(This,out_vertices,out_polygonData)	\
    (This)->lpVtbl -> Get(This,out_vertices,out_polygonData)

#define PolygonMesh_Set(This,in_vertices,in_polygonData)	\
    (This)->lpVtbl -> Set(This,in_vertices,in_polygonData)

#define PolygonMesh_GetApproximatedMesh(This,in_SubRule,in_lSubdivisionLevel,in_bDiscontinuity,in_dDiscontinuityAngle,out_pRetValues)	\
    (This)->lpVtbl -> GetApproximatedMesh(This,in_SubRule,in_lSubdivisionLevel,in_bDiscontinuity,in_dDiscontinuityAngle,out_pRetValues)

#define PolygonMesh_GetApproximatedMeshAndAttributes(This,in_SubRule,in_lSubdivisionLevel,in_bDiscontinuity,in_dDiscontinuityAngle,out_pRetValues)	\
    (This)->lpVtbl -> GetApproximatedMeshAndAttributes(This,in_SubRule,in_lSubdivisionLevel,in_bDiscontinuity,in_dDiscontinuityAngle,out_pRetValues)

#define PolygonMesh_get_Nodes(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Nodes(This,out_ppRetVal)

#define PolygonMesh_Get2(This,out_pRetValues)	\
    (This)->lpVtbl -> Get2(This,out_pRetValues)

#define PolygonMesh_get_Vertices(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Vertices(This,out_ppRetVal)

#define PolygonMesh_get_Edges(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Edges(This,out_ppRetVal)

#define PolygonMesh_get_CurrentVertexColor(This,__MIDL_0209)	\
    (This)->lpVtbl -> get_CurrentVertexColor(This,__MIDL_0209)

#define PolygonMesh_put_CurrentVertexColor(This,__MIDL_0210)	\
    (This)->lpVtbl -> put_CurrentVertexColor(This,__MIDL_0210)

#define PolygonMesh_AddVertexColor(This,name,__MIDL_0211)	\
    (This)->lpVtbl -> AddVertexColor(This,name,__MIDL_0211)

#define PolygonMesh_get_VertexColors(This,__MIDL_0212)	\
    (This)->lpVtbl -> get_VertexColors(This,__MIDL_0212)

#define PolygonMesh_GetPolygonIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)	\
    (This)->lpVtbl -> GetPolygonIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)

#define PolygonMesh_GetTriangleVertexIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)	\
    (This)->lpVtbl -> GetTriangleVertexIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)

#define PolygonMesh_GetTriangleNodeIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)	\
    (This)->lpVtbl -> GetTriangleNodeIndexArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pIndices)

#define PolygonMesh_GetTriangleWeightArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pWeights)	\
    (This)->lpVtbl -> GetTriangleWeightArray(This,in_pPtLocators,in_pPointLocatorsIndices,out_pWeights)

#define PolygonMesh_ConstructPointLocators(This,in_pPolygonIndices,in_pSubTriangleVertexIndices,in_pSubTriangleWeights,out_ppPointLocators)	\
    (This)->lpVtbl -> ConstructPointLocators(This,in_pPolygonIndices,in_pSubTriangleVertexIndices,in_pSubTriangleWeights,out_ppPointLocators)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonMesh_get_Polygons_Proxy( 
    PolygonMesh * This,
    /* [retval][out] */ PolygonFaceCollection **out_ppRetVal);


void __RPC_STUB PolygonMesh_get_Polygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_Get_Proxy( 
    PolygonMesh * This,
    /* [out] */ VARIANT *out_vertices,
    /* [optional][out] */ VARIANT *out_polygonData);


void __RPC_STUB PolygonMesh_Get_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_Set_Proxy( 
    PolygonMesh * This,
    /* [in] */ VARIANT in_vertices,
    /* [optional][in] */ VARIANT in_polygonData);


void __RPC_STUB PolygonMesh_Set_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_GetApproximatedMesh_Proxy( 
    PolygonMesh * This,
    /* [in] */ siSubdivisionRuleType in_SubRule,
    /* [in] */ LONG in_lSubdivisionLevel,
    /* [in] */ VARIANT_BOOL in_bDiscontinuity,
    /* [in] */ double in_dDiscontinuityAngle,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB PolygonMesh_GetApproximatedMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_GetApproximatedMeshAndAttributes_Proxy( 
    PolygonMesh * This,
    /* [in] */ siSubdivisionRuleType in_SubRule,
    /* [in] */ LONG in_lSubdivisionLevel,
    /* [in] */ VARIANT_BOOL in_bDiscontinuity,
    /* [in] */ double in_dDiscontinuityAngle,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB PolygonMesh_GetApproximatedMeshAndAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonMesh_get_Nodes_Proxy( 
    PolygonMesh * This,
    /* [retval][out] */ PolygonNodeCollection **out_ppRetVal);


void __RPC_STUB PolygonMesh_get_Nodes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_Get2_Proxy( 
    PolygonMesh * This,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB PolygonMesh_Get2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonMesh_get_Vertices_Proxy( 
    PolygonMesh * This,
    /* [retval][out] */ VertexCollection **out_ppRetVal);


void __RPC_STUB PolygonMesh_get_Vertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonMesh_get_Edges_Proxy( 
    PolygonMesh * This,
    /* [retval][out] */ EdgeCollection **out_ppRetVal);


void __RPC_STUB PolygonMesh_get_Edges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonMesh_get_CurrentVertexColor_Proxy( 
    PolygonMesh * This,
    /* [retval][out] */ ClusterProperty **__MIDL_0209);


void __RPC_STUB PolygonMesh_get_CurrentVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PolygonMesh_put_CurrentVertexColor_Proxy( 
    PolygonMesh * This,
    /* [in] */ ClusterProperty *__MIDL_0210);


void __RPC_STUB PolygonMesh_put_CurrentVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_AddVertexColor_Proxy( 
    PolygonMesh * This,
    /* [defaultvalue][in] */ BSTR name,
    /* [retval][out] */ ClusterProperty **__MIDL_0211);


void __RPC_STUB PolygonMesh_AddVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonMesh_get_VertexColors_Proxy( 
    PolygonMesh * This,
    /* [retval][out] */ ClusterPropertyCollection **__MIDL_0212);


void __RPC_STUB PolygonMesh_get_VertexColors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_GetPolygonIndexArray_Proxy( 
    PolygonMesh * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pIndices);


void __RPC_STUB PolygonMesh_GetPolygonIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_GetTriangleVertexIndexArray_Proxy( 
    PolygonMesh * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pIndices);


void __RPC_STUB PolygonMesh_GetTriangleVertexIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_GetTriangleNodeIndexArray_Proxy( 
    PolygonMesh * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pIndices);


void __RPC_STUB PolygonMesh_GetTriangleNodeIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_GetTriangleWeightArray_Proxy( 
    PolygonMesh * This,
    /* [in] */ PointLocatorData *in_pPtLocators,
    /* [optional][in] */ VARIANT in_pPointLocatorsIndices,
    /* [retval][out] */ VARIANT *out_pWeights);


void __RPC_STUB PolygonMesh_GetTriangleWeightArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PolygonMesh_ConstructPointLocators_Proxy( 
    PolygonMesh * This,
    /* [in] */ VARIANT in_pPolygonIndices,
    /* [in] */ VARIANT in_pSubTriangleVertexIndices,
    /* [in] */ VARIANT in_pSubTriangleWeights,
    /* [retval][out] */ PointLocatorData **out_ppPointLocators);


void __RPC_STUB PolygonMesh_ConstructPointLocators_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PolygonMesh_INTERFACE_DEFINED__ */


#ifndef __PolygonNode_INTERFACE_DEFINED__
#define __PolygonNode_INTERFACE_DEFINED__

/* interface PolygonNode */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PolygonNode;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5F8A8740-A83B-11D4-BC3F-00AA0068BF56")
    PolygonNode : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Normal( 
            /* [optional][out] */ VARIANT_BOOL *out_pbValid,
            /* [retval][out] */ IDispatch **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PolygonNodeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PolygonNode * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PolygonNode * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PolygonNode * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PolygonNode * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PolygonNode * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PolygonNode * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PolygonNode * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Normal )( 
            PolygonNode * This,
            /* [optional][out] */ VARIANT_BOOL *out_pbValid,
            /* [retval][out] */ IDispatch **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            PolygonNode * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        END_INTERFACE
    } PolygonNodeVtbl;

    interface PolygonNode
    {
        CONST_VTBL struct PolygonNodeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PolygonNode_get_Normal(This,out_pbValid,out_ppRetVal)	\
    (This)->lpVtbl -> get_Normal(This,out_pbValid,out_ppRetVal)

#define PolygonNode_get_Index(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Index(This,out_pRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonNode_get_Normal_Proxy( 
    PolygonNode * This,
    /* [optional][out] */ VARIANT_BOOL *out_pbValid,
    /* [retval][out] */ IDispatch **out_ppRetVal);


void __RPC_STUB PolygonNode_get_Normal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PolygonNode_get_Index_Proxy( 
    PolygonNode * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB PolygonNode_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PolygonNode_INTERFACE_DEFINED__ */


#ifndef __ParamDef_INTERFACE_DEFINED__
#define __ParamDef_INTERFACE_DEFINED__

/* interface ParamDef */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ParamDef;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F2872FE9-4B8E-4b40-8825-B118E1BF882C")
    ParamDef : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct ParamDefVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParamDef * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParamDef * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParamDef * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParamDef * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParamDef * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParamDef * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParamDef * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } ParamDefVtbl;

    interface ParamDef
    {
        CONST_VTBL struct ParamDefVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ParamDef_INTERFACE_DEFINED__ */


#ifndef __NurbsCurveList_INTERFACE_DEFINED__
#define __NurbsCurveList_INTERFACE_DEFINED__

/* interface NurbsCurveList */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_NurbsCurveList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A395271E-ACFE-11d4-8149-00A0C9AC19A9")
    NurbsCurveList : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Closed( 
            /* [retval][out][retval][out] */ VARIANT_BOOL *__MIDL_0217) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Curves( 
            /* [retval][out] */ NurbsCurveCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ControlPoints( 
            /* [retval][out] */ ControlPointCollection **__MIDL_0218) = 0;
        
        virtual /* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE GetData( 
            /* [out] */ VARIANT *out_vsalCount,
            /* [out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vsadKnots,
            /* [optional][out] */ VARIANT *out_vsabClosed,
            /* [optional][out] */ VARIANT *out_vsalDegree,
            /* [optional][out] */ VARIANT *out_vsalParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCurves( 
            /* [in] */ VARIANT in_vsalCount,
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsabClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsCurveCollection **out_ppNurbsCurveCollection) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCurve( 
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bClosed,
            /* [defaultvalue][in] */ LONG in_lDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_eParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsCurve **out_ppNurbsCurve) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_vsalCount,
            /* [optional][out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vsaNbControlPoints,
            /* [optional][out] */ VARIANT *out_vsadKnots,
            /* [optional][out] */ VARIANT *out_vsaNbKnots,
            /* [optional][out] */ VARIANT *out_vsasClosed,
            /* [optional][out] */ VARIANT *out_vsalDegree,
            /* [optional][out] */ VARIANT *out_vsalParameterization) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ VARIANT in_vsalCount,
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsaNbKnots,
            /* [optional][in] */ VARIANT in_vsasClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ double *__MIDL_0219) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetClosestCurvePosition( 
            /* [in] */ VARIANT in_vPosition,
            /* [optional][out] */ VARIANT *out_pvCurveIndex,
            /* [optional][out] */ VARIANT *out_pvSquaredDistance,
            /* [optional][out] */ VARIANT *out_pvUValue,
            /* [optional][out] */ VARIANT *out_pvPosition) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get2( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetClosestCurvePosition2( 
            /* [in] */ VARIANT in_vPosition,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsCurveListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsCurveList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsCurveList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsCurveList * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsCurveList * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsCurveList * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsCurveList * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsCurveList * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Closed )( 
            NurbsCurveList * This,
            /* [retval][out][retval][out] */ VARIANT_BOOL *__MIDL_0217);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Curves )( 
            NurbsCurveList * This,
            /* [retval][out] */ NurbsCurveCollection **out_ppRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ControlPoints )( 
            NurbsCurveList * This,
            /* [retval][out] */ ControlPointCollection **__MIDL_0218);
        
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
            NurbsCurveList * This,
            /* [out] */ VARIANT *out_vsalCount,
            /* [out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vsadKnots,
            /* [optional][out] */ VARIANT *out_vsabClosed,
            /* [optional][out] */ VARIANT *out_vsalDegree,
            /* [optional][out] */ VARIANT *out_vsalParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCurves )( 
            NurbsCurveList * This,
            /* [in] */ VARIANT in_vsalCount,
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsabClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsCurveCollection **out_ppNurbsCurveCollection);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCurve )( 
            NurbsCurveList * This,
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bClosed,
            /* [defaultvalue][in] */ LONG in_lDegree,
            /* [defaultvalue][in] */ siKnotParameterization in_eParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ NurbsCurve **out_ppNurbsCurve);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get )( 
            NurbsCurveList * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_vsalCount,
            /* [optional][out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vsaNbControlPoints,
            /* [optional][out] */ VARIANT *out_vsadKnots,
            /* [optional][out] */ VARIANT *out_vsaNbKnots,
            /* [optional][out] */ VARIANT *out_vsasClosed,
            /* [optional][out] */ VARIANT *out_vsalDegree,
            /* [optional][out] */ VARIANT *out_vsalParameterization);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Set )( 
            NurbsCurveList * This,
            /* [in] */ VARIANT in_vsalCount,
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vsaNbControlPoints,
            /* [optional][in] */ VARIANT in_vsadKnots,
            /* [optional][in] */ VARIANT in_vsaNbKnots,
            /* [optional][in] */ VARIANT in_vsasClosed,
            /* [optional][in] */ VARIANT in_vsalDegree,
            /* [optional][in] */ VARIANT in_vsalParameterization,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            NurbsCurveList * This,
            /* [retval][out] */ double *__MIDL_0219);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetClosestCurvePosition )( 
            NurbsCurveList * This,
            /* [in] */ VARIANT in_vPosition,
            /* [optional][out] */ VARIANT *out_pvCurveIndex,
            /* [optional][out] */ VARIANT *out_pvSquaredDistance,
            /* [optional][out] */ VARIANT *out_pvUValue,
            /* [optional][out] */ VARIANT *out_pvPosition);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get2 )( 
            NurbsCurveList * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetClosestCurvePosition2 )( 
            NurbsCurveList * This,
            /* [in] */ VARIANT in_vPosition,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        END_INTERFACE
    } NurbsCurveListVtbl;

    interface NurbsCurveList
    {
        CONST_VTBL struct NurbsCurveListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsCurveList_get_Closed(This,__MIDL_0217)	\
    (This)->lpVtbl -> get_Closed(This,__MIDL_0217)

#define NurbsCurveList_get_Curves(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Curves(This,out_ppRetVal)

#define NurbsCurveList_get_ControlPoints(This,__MIDL_0218)	\
    (This)->lpVtbl -> get_ControlPoints(This,__MIDL_0218)

#define NurbsCurveList_GetData(This,out_vsalCount,out_vsaControlPoints,out_vsadKnots,out_vsabClosed,out_vsalDegree,out_vsalParameterization,in_eNurbsFormat)	\
    (This)->lpVtbl -> GetData(This,out_vsalCount,out_vsaControlPoints,out_vsadKnots,out_vsabClosed,out_vsalDegree,out_vsalParameterization,in_eNurbsFormat)

#define NurbsCurveList_AddCurves(This,in_vsalCount,in_vsaControlPoints,in_vsadKnots,in_vsabClosed,in_vsalDegree,in_vsalParam,in_eNurbsFormat,out_ppNurbsCurveCollection)	\
    (This)->lpVtbl -> AddCurves(This,in_vsalCount,in_vsaControlPoints,in_vsadKnots,in_vsabClosed,in_vsalDegree,in_vsalParam,in_eNurbsFormat,out_ppNurbsCurveCollection)

#define NurbsCurveList_AddCurve(This,in_vsaControlPoints,in_vsadKnots,in_bClosed,in_lDegree,in_eParam,in_eNurbsFormat,out_ppNurbsCurve)	\
    (This)->lpVtbl -> AddCurve(This,in_vsaControlPoints,in_vsadKnots,in_bClosed,in_lDegree,in_eParam,in_eNurbsFormat,out_ppNurbsCurve)

#define NurbsCurveList_Get(This,in_eNurbsFormat,out_vsalCount,out_vsaControlPoints,out_vsaNbControlPoints,out_vsadKnots,out_vsaNbKnots,out_vsasClosed,out_vsalDegree,out_vsalParameterization)	\
    (This)->lpVtbl -> Get(This,in_eNurbsFormat,out_vsalCount,out_vsaControlPoints,out_vsaNbControlPoints,out_vsadKnots,out_vsaNbKnots,out_vsasClosed,out_vsalDegree,out_vsalParameterization)

#define NurbsCurveList_Set(This,in_vsalCount,in_vsaControlPoints,in_vsaNbControlPoints,in_vsadKnots,in_vsaNbKnots,in_vsasClosed,in_vsalDegree,in_vsalParameterization,in_eNurbsFormat)	\
    (This)->lpVtbl -> Set(This,in_vsalCount,in_vsaControlPoints,in_vsaNbControlPoints,in_vsadKnots,in_vsaNbKnots,in_vsasClosed,in_vsalDegree,in_vsalParameterization,in_eNurbsFormat)

#define NurbsCurveList_get_Length(This,__MIDL_0219)	\
    (This)->lpVtbl -> get_Length(This,__MIDL_0219)

#define NurbsCurveList_GetClosestCurvePosition(This,in_vPosition,out_pvCurveIndex,out_pvSquaredDistance,out_pvUValue,out_pvPosition)	\
    (This)->lpVtbl -> GetClosestCurvePosition(This,in_vPosition,out_pvCurveIndex,out_pvSquaredDistance,out_pvUValue,out_pvPosition)

#define NurbsCurveList_Get2(This,in_eNurbsFormat,out_pRetValues)	\
    (This)->lpVtbl -> Get2(This,in_eNurbsFormat,out_pRetValues)

#define NurbsCurveList_GetClosestCurvePosition2(This,in_vPosition,out_pRetValues)	\
    (This)->lpVtbl -> GetClosestCurvePosition2(This,in_vPosition,out_pRetValues)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_get_Closed_Proxy( 
    NurbsCurveList * This,
    /* [retval][out][retval][out] */ VARIANT_BOOL *__MIDL_0217);


void __RPC_STUB NurbsCurveList_get_Closed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_get_Curves_Proxy( 
    NurbsCurveList * This,
    /* [retval][out] */ NurbsCurveCollection **out_ppRetVal);


void __RPC_STUB NurbsCurveList_get_Curves_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_get_ControlPoints_Proxy( 
    NurbsCurveList * This,
    /* [retval][out] */ ControlPointCollection **__MIDL_0218);


void __RPC_STUB NurbsCurveList_get_ControlPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_GetData_Proxy( 
    NurbsCurveList * This,
    /* [out] */ VARIANT *out_vsalCount,
    /* [out] */ VARIANT *out_vsaControlPoints,
    /* [optional][out] */ VARIANT *out_vsadKnots,
    /* [optional][out] */ VARIANT *out_vsabClosed,
    /* [optional][out] */ VARIANT *out_vsalDegree,
    /* [optional][out] */ VARIANT *out_vsalParameterization,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsCurveList_GetData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_AddCurves_Proxy( 
    NurbsCurveList * This,
    /* [in] */ VARIANT in_vsalCount,
    /* [in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsadKnots,
    /* [optional][in] */ VARIANT in_vsabClosed,
    /* [optional][in] */ VARIANT in_vsalDegree,
    /* [optional][in] */ VARIANT in_vsalParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ NurbsCurveCollection **out_ppNurbsCurveCollection);


void __RPC_STUB NurbsCurveList_AddCurves_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_AddCurve_Proxy( 
    NurbsCurveList * This,
    /* [in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsadKnots,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bClosed,
    /* [defaultvalue][in] */ LONG in_lDegree,
    /* [defaultvalue][in] */ siKnotParameterization in_eParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ NurbsCurve **out_ppNurbsCurve);


void __RPC_STUB NurbsCurveList_AddCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_Get_Proxy( 
    NurbsCurveList * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [optional][out] */ VARIANT *out_vsalCount,
    /* [optional][out] */ VARIANT *out_vsaControlPoints,
    /* [optional][out] */ VARIANT *out_vsaNbControlPoints,
    /* [optional][out] */ VARIANT *out_vsadKnots,
    /* [optional][out] */ VARIANT *out_vsaNbKnots,
    /* [optional][out] */ VARIANT *out_vsasClosed,
    /* [optional][out] */ VARIANT *out_vsalDegree,
    /* [optional][out] */ VARIANT *out_vsalParameterization);


void __RPC_STUB NurbsCurveList_Get_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_Set_Proxy( 
    NurbsCurveList * This,
    /* [in] */ VARIANT in_vsalCount,
    /* [in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vsaNbControlPoints,
    /* [optional][in] */ VARIANT in_vsadKnots,
    /* [optional][in] */ VARIANT in_vsaNbKnots,
    /* [optional][in] */ VARIANT in_vsasClosed,
    /* [optional][in] */ VARIANT in_vsalDegree,
    /* [optional][in] */ VARIANT in_vsalParameterization,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsCurveList_Set_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_get_Length_Proxy( 
    NurbsCurveList * This,
    /* [retval][out] */ double *__MIDL_0219);


void __RPC_STUB NurbsCurveList_get_Length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_GetClosestCurvePosition_Proxy( 
    NurbsCurveList * This,
    /* [in] */ VARIANT in_vPosition,
    /* [optional][out] */ VARIANT *out_pvCurveIndex,
    /* [optional][out] */ VARIANT *out_pvSquaredDistance,
    /* [optional][out] */ VARIANT *out_pvUValue,
    /* [optional][out] */ VARIANT *out_pvPosition);


void __RPC_STUB NurbsCurveList_GetClosestCurvePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_Get2_Proxy( 
    NurbsCurveList * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsCurveList_Get2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveList_GetClosestCurvePosition2_Proxy( 
    NurbsCurveList * This,
    /* [in] */ VARIANT in_vPosition,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsCurveList_GetClosestCurvePosition2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsCurveList_INTERFACE_DEFINED__ */


#ifndef __NurbsCurveCollection_INTERFACE_DEFINED__
#define __NurbsCurveCollection_INTERFACE_DEFINED__

/* interface NurbsCurveCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_NurbsCurveCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("02AD76C7-ACF9-11d4-8149-00A0C9AC19A9")
    NurbsCurveCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ NurbsCurve **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ NurbsCurveCollection **out_ppCurves) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsCurveCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsCurveCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsCurveCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsCurveCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsCurveCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsCurveCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsCurveCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsCurveCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            NurbsCurveCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ NurbsCurve **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            NurbsCurveCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            NurbsCurveCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            NurbsCurveCollection * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            NurbsCurveCollection * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ NurbsCurveCollection **out_ppCurves);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            NurbsCurveCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } NurbsCurveCollectionVtbl;

    interface NurbsCurveCollection
    {
        CONST_VTBL struct NurbsCurveCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsCurveCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define NurbsCurveCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define NurbsCurveCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define NurbsCurveCollection_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define NurbsCurveCollection_Navigate(This,in_siNavigate,out_ppCurves)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppCurves)

#define NurbsCurveCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveCollection_get_Item_Proxy( 
    NurbsCurveCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ NurbsCurve **out_pParam);


void __RPC_STUB NurbsCurveCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveCollection_get_Count_Proxy( 
    NurbsCurveCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB NurbsCurveCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveCollection_get_NewEnum_Proxy( 
    NurbsCurveCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB NurbsCurveCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveCollection_get_SubComponent_Proxy( 
    NurbsCurveCollection * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB NurbsCurveCollection_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurveCollection_Navigate_Proxy( 
    NurbsCurveCollection * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ NurbsCurveCollection **out_ppCurves);


void __RPC_STUB NurbsCurveCollection_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurveCollection_get__NewEnum_Proxy( 
    NurbsCurveCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB NurbsCurveCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsCurveCollection_INTERFACE_DEFINED__ */


#ifndef __NurbsCurve_INTERFACE_DEFINED__
#define __NurbsCurve_INTERFACE_DEFINED__

/* interface NurbsCurve */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_NurbsCurve;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("02AD76C6-ACF9-11d4-8149-00A0C9AC19A9")
    NurbsCurve : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Knots( 
            /* [retval][out] */ KnotCollection **__MIDL_0220) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ControlPoints( 
            /* [retval][out] */ ControlPointCollection **__MIDL_0221) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetData( 
            /* [out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vdKnots,
            /* [optional][out] */ VARIANT *out_vbClosed,
            /* [optional][out] */ VARIANT *out_vlDegree,
            /* [optional][out] */ VARIANT *out_veParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vdKnots,
            /* [optional][out] */ VARIANT *out_vbClosed,
            /* [optional][out] */ VARIANT *out_vlDegree,
            /* [optional][out] */ VARIANT *out_veParam) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vdKnots,
            /* [optional][in] */ VARIANT in_vbClosed,
            /* [optional][in] */ VARIANT in_vlDegree,
            /* [optional][in] */ VARIANT in_veParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat = siSINurbs) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Degree( 
            /* [retval][out] */ LONG *__MIDL_0222) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Length( 
            /* [retval][out] */ double *__MIDL_0223) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluatePosition( 
            /* [in] */ double in_dUValue,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluateNormalizedPosition( 
            /* [in] */ double in_dUValueNormalized,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EvaluatePositionFromPercentage( 
            /* [in] */ double in_dPercentage,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNormalizedUFromU( 
            /* [in] */ double in_dUValue,
            /* [retval][out] */ double *out_pdUValueNormalized) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetUFromNormalizedU( 
            /* [in] */ double in_dUValueNormalized,
            /* [retval][out] */ double *out_pdUValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetUFromPercentage( 
            /* [in] */ double in_dPercenetage,
            /* [retval][out] */ double *out_pdUValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPercentageFromU( 
            /* [in] */ double in_dUValue,
            /* [retval][out] */ double *out_pdPercentage) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get2( 
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ NurbsCurve **out_ppCurve) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsCurveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsCurve * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsCurve * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsCurve * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsCurve * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsCurve * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsCurve * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsCurve * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Knots )( 
            NurbsCurve * This,
            /* [retval][out] */ KnotCollection **__MIDL_0220);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ControlPoints )( 
            NurbsCurve * This,
            /* [retval][out] */ ControlPointCollection **__MIDL_0221);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
            NurbsCurve * This,
            /* [out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vdKnots,
            /* [optional][out] */ VARIANT *out_vbClosed,
            /* [optional][out] */ VARIANT *out_vlDegree,
            /* [optional][out] */ VARIANT *out_veParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get )( 
            NurbsCurve * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [optional][out] */ VARIANT *out_vsaControlPoints,
            /* [optional][out] */ VARIANT *out_vdKnots,
            /* [optional][out] */ VARIANT *out_vbClosed,
            /* [optional][out] */ VARIANT *out_vlDegree,
            /* [optional][out] */ VARIANT *out_veParam);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Set )( 
            NurbsCurve * This,
            /* [in] */ VARIANT in_vsaControlPoints,
            /* [optional][in] */ VARIANT in_vdKnots,
            /* [optional][in] */ VARIANT in_vbClosed,
            /* [optional][in] */ VARIANT in_vlDegree,
            /* [optional][in] */ VARIANT in_veParam,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Degree )( 
            NurbsCurve * This,
            /* [retval][out] */ LONG *__MIDL_0222);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            NurbsCurve * This,
            /* [retval][out] */ double *__MIDL_0223);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluatePosition )( 
            NurbsCurve * This,
            /* [in] */ double in_dUValue,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluateNormalizedPosition )( 
            NurbsCurve * This,
            /* [in] */ double in_dUValueNormalized,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EvaluatePositionFromPercentage )( 
            NurbsCurve * This,
            /* [in] */ double in_dPercentage,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNormalizedUFromU )( 
            NurbsCurve * This,
            /* [in] */ double in_dUValue,
            /* [retval][out] */ double *out_pdUValueNormalized);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetUFromNormalizedU )( 
            NurbsCurve * This,
            /* [in] */ double in_dUValueNormalized,
            /* [retval][out] */ double *out_pdUValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetUFromPercentage )( 
            NurbsCurve * This,
            /* [in] */ double in_dPercenetage,
            /* [retval][out] */ double *out_pdUValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPercentageFromU )( 
            NurbsCurve * This,
            /* [in] */ double in_dUValue,
            /* [retval][out] */ double *out_pdPercentage);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            NurbsCurve * This,
            /* [retval][out] */ LONG *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get2 )( 
            NurbsCurve * This,
            /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
            /* [retval][out] */ VARIANT *out_pRetValues);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            NurbsCurve * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            NurbsCurve * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ NurbsCurve **out_ppCurve);
        
        END_INTERFACE
    } NurbsCurveVtbl;

    interface NurbsCurve
    {
        CONST_VTBL struct NurbsCurveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsCurve_get_Knots(This,__MIDL_0220)	\
    (This)->lpVtbl -> get_Knots(This,__MIDL_0220)

#define NurbsCurve_get_ControlPoints(This,__MIDL_0221)	\
    (This)->lpVtbl -> get_ControlPoints(This,__MIDL_0221)

#define NurbsCurve_GetData(This,out_vsaControlPoints,out_vdKnots,out_vbClosed,out_vlDegree,out_veParam,in_eNurbsFormat)	\
    (This)->lpVtbl -> GetData(This,out_vsaControlPoints,out_vdKnots,out_vbClosed,out_vlDegree,out_veParam,in_eNurbsFormat)

#define NurbsCurve_Get(This,in_eNurbsFormat,out_vsaControlPoints,out_vdKnots,out_vbClosed,out_vlDegree,out_veParam)	\
    (This)->lpVtbl -> Get(This,in_eNurbsFormat,out_vsaControlPoints,out_vdKnots,out_vbClosed,out_vlDegree,out_veParam)

#define NurbsCurve_Set(This,in_vsaControlPoints,in_vdKnots,in_vbClosed,in_vlDegree,in_veParam,in_eNurbsFormat)	\
    (This)->lpVtbl -> Set(This,in_vsaControlPoints,in_vdKnots,in_vbClosed,in_vlDegree,in_veParam,in_eNurbsFormat)

#define NurbsCurve_get_Degree(This,__MIDL_0222)	\
    (This)->lpVtbl -> get_Degree(This,__MIDL_0222)

#define NurbsCurve_get_Length(This,__MIDL_0223)	\
    (This)->lpVtbl -> get_Length(This,__MIDL_0223)

#define NurbsCurve_EvaluatePosition(This,in_dUValue,out_pRetValues)	\
    (This)->lpVtbl -> EvaluatePosition(This,in_dUValue,out_pRetValues)

#define NurbsCurve_EvaluateNormalizedPosition(This,in_dUValueNormalized,out_pRetValues)	\
    (This)->lpVtbl -> EvaluateNormalizedPosition(This,in_dUValueNormalized,out_pRetValues)

#define NurbsCurve_EvaluatePositionFromPercentage(This,in_dPercentage,out_pRetValues)	\
    (This)->lpVtbl -> EvaluatePositionFromPercentage(This,in_dPercentage,out_pRetValues)

#define NurbsCurve_GetNormalizedUFromU(This,in_dUValue,out_pdUValueNormalized)	\
    (This)->lpVtbl -> GetNormalizedUFromU(This,in_dUValue,out_pdUValueNormalized)

#define NurbsCurve_GetUFromNormalizedU(This,in_dUValueNormalized,out_pdUValue)	\
    (This)->lpVtbl -> GetUFromNormalizedU(This,in_dUValueNormalized,out_pdUValue)

#define NurbsCurve_GetUFromPercentage(This,in_dPercenetage,out_pdUValue)	\
    (This)->lpVtbl -> GetUFromPercentage(This,in_dPercenetage,out_pdUValue)

#define NurbsCurve_GetPercentageFromU(This,in_dUValue,out_pdPercentage)	\
    (This)->lpVtbl -> GetPercentageFromU(This,in_dUValue,out_pdPercentage)

#define NurbsCurve_get_Index(This,out_pVal)	\
    (This)->lpVtbl -> get_Index(This,out_pVal)

#define NurbsCurve_Get2(This,in_eNurbsFormat,out_pRetValues)	\
    (This)->lpVtbl -> Get2(This,in_eNurbsFormat,out_pRetValues)

#define NurbsCurve_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define NurbsCurve_Navigate(This,in_siNavigate,out_ppCurve)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppCurve)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurve_get_Knots_Proxy( 
    NurbsCurve * This,
    /* [retval][out] */ KnotCollection **__MIDL_0220);


void __RPC_STUB NurbsCurve_get_Knots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurve_get_ControlPoints_Proxy( 
    NurbsCurve * This,
    /* [retval][out] */ ControlPointCollection **__MIDL_0221);


void __RPC_STUB NurbsCurve_get_ControlPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_GetData_Proxy( 
    NurbsCurve * This,
    /* [out] */ VARIANT *out_vsaControlPoints,
    /* [optional][out] */ VARIANT *out_vdKnots,
    /* [optional][out] */ VARIANT *out_vbClosed,
    /* [optional][out] */ VARIANT *out_vlDegree,
    /* [optional][out] */ VARIANT *out_veParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsCurve_GetData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_Get_Proxy( 
    NurbsCurve * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [optional][out] */ VARIANT *out_vsaControlPoints,
    /* [optional][out] */ VARIANT *out_vdKnots,
    /* [optional][out] */ VARIANT *out_vbClosed,
    /* [optional][out] */ VARIANT *out_vlDegree,
    /* [optional][out] */ VARIANT *out_veParam);


void __RPC_STUB NurbsCurve_Get_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_Set_Proxy( 
    NurbsCurve * This,
    /* [in] */ VARIANT in_vsaControlPoints,
    /* [optional][in] */ VARIANT in_vdKnots,
    /* [optional][in] */ VARIANT in_vbClosed,
    /* [optional][in] */ VARIANT in_vlDegree,
    /* [optional][in] */ VARIANT in_veParam,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat);


void __RPC_STUB NurbsCurve_Set_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurve_get_Degree_Proxy( 
    NurbsCurve * This,
    /* [retval][out] */ LONG *__MIDL_0222);


void __RPC_STUB NurbsCurve_get_Degree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurve_get_Length_Proxy( 
    NurbsCurve * This,
    /* [retval][out] */ double *__MIDL_0223);


void __RPC_STUB NurbsCurve_get_Length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_EvaluatePosition_Proxy( 
    NurbsCurve * This,
    /* [in] */ double in_dUValue,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsCurve_EvaluatePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_EvaluateNormalizedPosition_Proxy( 
    NurbsCurve * This,
    /* [in] */ double in_dUValueNormalized,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsCurve_EvaluateNormalizedPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_EvaluatePositionFromPercentage_Proxy( 
    NurbsCurve * This,
    /* [in] */ double in_dPercentage,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsCurve_EvaluatePositionFromPercentage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_GetNormalizedUFromU_Proxy( 
    NurbsCurve * This,
    /* [in] */ double in_dUValue,
    /* [retval][out] */ double *out_pdUValueNormalized);


void __RPC_STUB NurbsCurve_GetNormalizedUFromU_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_GetUFromNormalizedU_Proxy( 
    NurbsCurve * This,
    /* [in] */ double in_dUValueNormalized,
    /* [retval][out] */ double *out_pdUValue);


void __RPC_STUB NurbsCurve_GetUFromNormalizedU_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_GetUFromPercentage_Proxy( 
    NurbsCurve * This,
    /* [in] */ double in_dPercenetage,
    /* [retval][out] */ double *out_pdUValue);


void __RPC_STUB NurbsCurve_GetUFromPercentage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_GetPercentageFromU_Proxy( 
    NurbsCurve * This,
    /* [in] */ double in_dUValue,
    /* [retval][out] */ double *out_pdPercentage);


void __RPC_STUB NurbsCurve_GetPercentageFromU_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurve_get_Index_Proxy( 
    NurbsCurve * This,
    /* [retval][out] */ LONG *out_pVal);


void __RPC_STUB NurbsCurve_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_Get2_Proxy( 
    NurbsCurve * This,
    /* [defaultvalue][in] */ siNurbsFormat in_eNurbsFormat,
    /* [retval][out] */ VARIANT *out_pRetValues);


void __RPC_STUB NurbsCurve_Get2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsCurve_get_SubComponent_Proxy( 
    NurbsCurve * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB NurbsCurve_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsCurve_Navigate_Proxy( 
    NurbsCurve * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ NurbsCurve **out_ppCurve);


void __RPC_STUB NurbsCurve_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsCurve_INTERFACE_DEFINED__ */


#ifndef __ControlPointCollection_INTERFACE_DEFINED__
#define __ControlPointCollection_INTERFACE_DEFINED__

/* interface ControlPointCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ControlPointCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2D029620-ACFB-11d4-8149-00A0C9AC19A9")
    ControlPointCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ControlPoint **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Array( 
            /* [retval][out] */ VARIANT *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Array( 
            /* [in] */ VARIANT in_newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Dimension( 
            /* [in] */ siNurbsDirection in_newVal,
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ControlPointCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ControlPointCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ControlPointCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ControlPointCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ControlPointCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ControlPointCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ControlPointCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ControlPointCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ControlPointCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ControlPoint **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ControlPointCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ControlPointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Array )( 
            ControlPointCollection * This,
            /* [retval][out] */ VARIANT *out_pRetVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Array )( 
            ControlPointCollection * This,
            /* [in] */ VARIANT in_newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Dimension )( 
            ControlPointCollection * This,
            /* [in] */ siNurbsDirection in_newVal,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ControlPointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } ControlPointCollectionVtbl;

    interface ControlPointCollection
    {
        CONST_VTBL struct ControlPointCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ControlPointCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ControlPointCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ControlPointCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ControlPointCollection_get_Array(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Array(This,out_pRetVal)

#define ControlPointCollection_put_Array(This,in_newVal)	\
    (This)->lpVtbl -> put_Array(This,in_newVal)

#define ControlPointCollection_Dimension(This,in_newVal,out_pRetVal)	\
    (This)->lpVtbl -> Dimension(This,in_newVal,out_pRetVal)

#define ControlPointCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ControlPointCollection_get_Item_Proxy( 
    ControlPointCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ControlPoint **out_pParam);


void __RPC_STUB ControlPointCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ControlPointCollection_get_Count_Proxy( 
    ControlPointCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ControlPointCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ControlPointCollection_get_NewEnum_Proxy( 
    ControlPointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ControlPointCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ControlPointCollection_get_Array_Proxy( 
    ControlPointCollection * This,
    /* [retval][out] */ VARIANT *out_pRetVal);


void __RPC_STUB ControlPointCollection_get_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ControlPointCollection_put_Array_Proxy( 
    ControlPointCollection * This,
    /* [in] */ VARIANT in_newVal);


void __RPC_STUB ControlPointCollection_put_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ControlPointCollection_Dimension_Proxy( 
    ControlPointCollection * This,
    /* [in] */ siNurbsDirection in_newVal,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB ControlPointCollection_Dimension_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ControlPointCollection_get__NewEnum_Proxy( 
    ControlPointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ControlPointCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ControlPointCollection_INTERFACE_DEFINED__ */


#ifndef __ControlPoint_INTERFACE_DEFINED__
#define __ControlPoint_INTERFACE_DEFINED__

/* interface ControlPoint */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ControlPoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6FA40CB5-ACFD-11d4-8149-00A0C9AC19A9")
    ControlPoint : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_X( 
            /* [retval][out] */ double *__MIDL_0200) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_X( 
            /* [in] */ double __MIDL_0201) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Y( 
            /* [retval][out] */ double *__MIDL_0202) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Y( 
            /* [in] */ double __MIDL_0203) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Z( 
            /* [retval][out] */ double *__MIDL_0204) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Z( 
            /* [in] */ double __MIDL_0205) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_W( 
            /* [retval][out] */ double *__MIDL_0206) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_W( 
            /* [in] */ double __MIDL_0207) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsBoundary( 
            /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ControlPointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ControlPoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ControlPoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ControlPoint * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ControlPoint * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ControlPoint * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ControlPoint * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ControlPoint * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_X )( 
            ControlPoint * This,
            /* [retval][out] */ double *__MIDL_0200);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_X )( 
            ControlPoint * This,
            /* [in] */ double __MIDL_0201);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Y )( 
            ControlPoint * This,
            /* [retval][out] */ double *__MIDL_0202);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Y )( 
            ControlPoint * This,
            /* [in] */ double __MIDL_0203);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Z )( 
            ControlPoint * This,
            /* [retval][out] */ double *__MIDL_0204);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Z )( 
            ControlPoint * This,
            /* [in] */ double __MIDL_0205);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_W )( 
            ControlPoint * This,
            /* [retval][out] */ double *__MIDL_0206);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_W )( 
            ControlPoint * This,
            /* [in] */ double __MIDL_0207);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsBoundary )( 
            ControlPoint * This,
            /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary);
        
        END_INTERFACE
    } ControlPointVtbl;

    interface ControlPoint
    {
        CONST_VTBL struct ControlPointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ControlPoint_get_X(This,__MIDL_0200)	\
    (This)->lpVtbl -> get_X(This,__MIDL_0200)

#define ControlPoint_put_X(This,__MIDL_0201)	\
    (This)->lpVtbl -> put_X(This,__MIDL_0201)

#define ControlPoint_get_Y(This,__MIDL_0202)	\
    (This)->lpVtbl -> get_Y(This,__MIDL_0202)

#define ControlPoint_put_Y(This,__MIDL_0203)	\
    (This)->lpVtbl -> put_Y(This,__MIDL_0203)

#define ControlPoint_get_Z(This,__MIDL_0204)	\
    (This)->lpVtbl -> get_Z(This,__MIDL_0204)

#define ControlPoint_put_Z(This,__MIDL_0205)	\
    (This)->lpVtbl -> put_Z(This,__MIDL_0205)

#define ControlPoint_get_W(This,__MIDL_0206)	\
    (This)->lpVtbl -> get_W(This,__MIDL_0206)

#define ControlPoint_put_W(This,__MIDL_0207)	\
    (This)->lpVtbl -> put_W(This,__MIDL_0207)

#define ControlPoint_get_IsBoundary(This,out_pIsBoundary)	\
    (This)->lpVtbl -> get_IsBoundary(This,out_pIsBoundary)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ControlPoint_get_X_Proxy( 
    ControlPoint * This,
    /* [retval][out] */ double *__MIDL_0200);


void __RPC_STUB ControlPoint_get_X_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ControlPoint_put_X_Proxy( 
    ControlPoint * This,
    /* [in] */ double __MIDL_0201);


void __RPC_STUB ControlPoint_put_X_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ControlPoint_get_Y_Proxy( 
    ControlPoint * This,
    /* [retval][out] */ double *__MIDL_0202);


void __RPC_STUB ControlPoint_get_Y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ControlPoint_put_Y_Proxy( 
    ControlPoint * This,
    /* [in] */ double __MIDL_0203);


void __RPC_STUB ControlPoint_put_Y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ControlPoint_get_Z_Proxy( 
    ControlPoint * This,
    /* [retval][out] */ double *__MIDL_0204);


void __RPC_STUB ControlPoint_get_Z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ControlPoint_put_Z_Proxy( 
    ControlPoint * This,
    /* [in] */ double __MIDL_0205);


void __RPC_STUB ControlPoint_put_Z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ControlPoint_get_W_Proxy( 
    ControlPoint * This,
    /* [retval][out] */ double *__MIDL_0206);


void __RPC_STUB ControlPoint_get_W_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ControlPoint_put_W_Proxy( 
    ControlPoint * This,
    /* [in] */ double __MIDL_0207);


void __RPC_STUB ControlPoint_put_W_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ControlPoint_get_IsBoundary_Proxy( 
    ControlPoint * This,
    /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary);


void __RPC_STUB ControlPoint_get_IsBoundary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ControlPoint_INTERFACE_DEFINED__ */


#ifndef __Sample_INTERFACE_DEFINED__
#define __Sample_INTERFACE_DEFINED__

/* interface Sample */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Sample;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("cf4d2017-3914-45a6-8ea5-7e13d89521cd")
    Sample : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Sample **out_ppSample) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SampleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Sample * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Sample * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Sample * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Sample * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Sample * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Sample * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Sample * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            Sample * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            Sample * This,
            /* [retval][out] */ SubComponent **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            Sample * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ Sample **out_ppSample);
        
        END_INTERFACE
    } SampleVtbl;

    interface Sample
    {
        CONST_VTBL struct SampleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Sample_get_Index(This,out_pRetVal)	\
    (This)->lpVtbl -> get_Index(This,out_pRetVal)

#define Sample_get_SubComponent(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppRetVal)

#define Sample_Navigate(This,in_siNavigate,out_ppSample)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppSample)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Sample_get_Index_Proxy( 
    Sample * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB Sample_get_Index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Sample_get_SubComponent_Proxy( 
    Sample * This,
    /* [retval][out] */ SubComponent **out_ppRetVal);


void __RPC_STUB Sample_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Sample_Navigate_Proxy( 
    Sample * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ Sample **out_ppSample);


void __RPC_STUB Sample_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Sample_INTERFACE_DEFINED__ */


#ifndef __SampleCollection_INTERFACE_DEFINED__
#define __SampleCollection_INTERFACE_DEFINED__

/* interface SampleCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SampleCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("c1be2eff-55c4-4353-8dfa-110a24231028")
    SampleCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Sample **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ SampleCollection **out_ppSampleCol) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SampleCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SampleCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SampleCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SampleCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SampleCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SampleCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SampleCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SampleCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            SampleCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Sample **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            SampleCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            SampleCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            SampleCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            SampleCollection * This,
            /* [retval][out] */ SubComponent **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            SampleCollection * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ SampleCollection **out_ppSampleCol);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            SampleCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } SampleCollectionVtbl;

    interface SampleCollection
    {
        CONST_VTBL struct SampleCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SampleCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define SampleCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define SampleCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define SampleCollection_get_IndexArray(This,pVal)	\
    (This)->lpVtbl -> get_IndexArray(This,pVal)

#define SampleCollection_get_SubComponent(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppRetVal)

#define SampleCollection_Navigate(This,in_siNavigate,out_ppSampleCol)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppSampleCol)

#define SampleCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE SampleCollection_get_Item_Proxy( 
    SampleCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Sample **out_pParam);


void __RPC_STUB SampleCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE SampleCollection_get_Count_Proxy( 
    SampleCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB SampleCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SampleCollection_get_NewEnum_Proxy( 
    SampleCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SampleCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SampleCollection_get_IndexArray_Proxy( 
    SampleCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB SampleCollection_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SampleCollection_get_SubComponent_Proxy( 
    SampleCollection * This,
    /* [retval][out] */ SubComponent **out_ppRetVal);


void __RPC_STUB SampleCollection_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SampleCollection_Navigate_Proxy( 
    SampleCollection * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ SampleCollection **out_ppSampleCol);


void __RPC_STUB SampleCollection_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SampleCollection_get__NewEnum_Proxy( 
    SampleCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SampleCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SampleCollection_INTERFACE_DEFINED__ */


#ifndef __NurbsSample_INTERFACE_DEFINED__
#define __NurbsSample_INTERFACE_DEFINED__

/* interface NurbsSample */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_NurbsSample;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("398dbb23-14f6-4bea-af79-8630761b90bd")
    NurbsSample : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_U( 
            /* [retval][out] */ double *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_V( 
            /* [retval][out] */ double *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_USamplingCoordinate( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VSamplingCoordinate( 
            /* [retval][out] */ LONG *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NurbsSurface( 
            /* [retval][out] */ NurbsSurface **out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UNormalized( 
            /* [retval][out] */ double *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VNormalized( 
            /* [retval][out] */ double *out_pRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsSampleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsSample * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsSample * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsSample * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsSample * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsSample * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsSample * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsSample * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_U )( 
            NurbsSample * This,
            /* [retval][out] */ double *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_V )( 
            NurbsSample * This,
            /* [retval][out] */ double *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_USamplingCoordinate )( 
            NurbsSample * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VSamplingCoordinate )( 
            NurbsSample * This,
            /* [retval][out] */ LONG *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NurbsSurface )( 
            NurbsSample * This,
            /* [retval][out] */ NurbsSurface **out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UNormalized )( 
            NurbsSample * This,
            /* [retval][out] */ double *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VNormalized )( 
            NurbsSample * This,
            /* [retval][out] */ double *out_pRetVal);
        
        END_INTERFACE
    } NurbsSampleVtbl;

    interface NurbsSample
    {
        CONST_VTBL struct NurbsSampleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsSample_get_U(This,out_pRetVal)	\
    (This)->lpVtbl -> get_U(This,out_pRetVal)

#define NurbsSample_get_V(This,out_pRetVal)	\
    (This)->lpVtbl -> get_V(This,out_pRetVal)

#define NurbsSample_get_USamplingCoordinate(This,out_pRetVal)	\
    (This)->lpVtbl -> get_USamplingCoordinate(This,out_pRetVal)

#define NurbsSample_get_VSamplingCoordinate(This,out_pRetVal)	\
    (This)->lpVtbl -> get_VSamplingCoordinate(This,out_pRetVal)

#define NurbsSample_get_NurbsSurface(This,out_pRetVal)	\
    (This)->lpVtbl -> get_NurbsSurface(This,out_pRetVal)

#define NurbsSample_get_UNormalized(This,out_pRetVal)	\
    (This)->lpVtbl -> get_UNormalized(This,out_pRetVal)

#define NurbsSample_get_VNormalized(This,out_pRetVal)	\
    (This)->lpVtbl -> get_VNormalized(This,out_pRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSample_get_U_Proxy( 
    NurbsSample * This,
    /* [retval][out] */ double *out_pRetVal);


void __RPC_STUB NurbsSample_get_U_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSample_get_V_Proxy( 
    NurbsSample * This,
    /* [retval][out] */ double *out_pRetVal);


void __RPC_STUB NurbsSample_get_V_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSample_get_USamplingCoordinate_Proxy( 
    NurbsSample * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB NurbsSample_get_USamplingCoordinate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSample_get_VSamplingCoordinate_Proxy( 
    NurbsSample * This,
    /* [retval][out] */ LONG *out_pRetVal);


void __RPC_STUB NurbsSample_get_VSamplingCoordinate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSample_get_NurbsSurface_Proxy( 
    NurbsSample * This,
    /* [retval][out] */ NurbsSurface **out_pRetVal);


void __RPC_STUB NurbsSample_get_NurbsSurface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSample_get_UNormalized_Proxy( 
    NurbsSample * This,
    /* [retval][out] */ double *out_pRetVal);


void __RPC_STUB NurbsSample_get_UNormalized_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSample_get_VNormalized_Proxy( 
    NurbsSample * This,
    /* [retval][out] */ double *out_pRetVal);


void __RPC_STUB NurbsSample_get_VNormalized_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsSample_INTERFACE_DEFINED__ */


#ifndef __NurbsSampleCollection_INTERFACE_DEFINED__
#define __NurbsSampleCollection_INTERFACE_DEFINED__

/* interface NurbsSampleCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_NurbsSampleCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("b98d054c-f74f-4785-a1be-3adfb26003c8")
    NurbsSampleCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ NurbsSample **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_USamplingCount( 
            /* [optional][in] */ VARIANT in_lNurbsSurfaceIndex,
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VSamplingCount( 
            /* [optional][in] */ VARIANT in_lNurbsSurfaceIndex,
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetIndexFromUVSamplingCoordinate( 
            /* [in] */ LONG __MIDL_0180,
            /* [in] */ LONG __MIDL_0181,
            /* [optional][in] */ VARIANT __MIDL_0182,
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetIndexArrayFromUVSamplingCoordinateArray( 
            /* [in] */ VARIANT __MIDL_0183,
            /* [optional][in] */ VARIANT __MIDL_0184,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetUVSamplingCoordinateArray( 
            /* [optional][in] */ VARIANT __MIDL_0185,
            /* [optional][in] */ VARIANT __MIDL_0186,
            /* [retval][out] */ VARIANT *__MIDL_0187) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct NurbsSampleCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            NurbsSampleCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            NurbsSampleCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            NurbsSampleCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            NurbsSampleCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            NurbsSampleCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            NurbsSampleCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            NurbsSampleCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            NurbsSampleCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ NurbsSample **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            NurbsSampleCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            NurbsSampleCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_USamplingCount )( 
            NurbsSampleCollection * This,
            /* [optional][in] */ VARIANT in_lNurbsSurfaceIndex,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VSamplingCount )( 
            NurbsSampleCollection * This,
            /* [optional][in] */ VARIANT in_lNurbsSurfaceIndex,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetIndexFromUVSamplingCoordinate )( 
            NurbsSampleCollection * This,
            /* [in] */ LONG __MIDL_0180,
            /* [in] */ LONG __MIDL_0181,
            /* [optional][in] */ VARIANT __MIDL_0182,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetIndexArrayFromUVSamplingCoordinateArray )( 
            NurbsSampleCollection * This,
            /* [in] */ VARIANT __MIDL_0183,
            /* [optional][in] */ VARIANT __MIDL_0184,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetUVSamplingCoordinateArray )( 
            NurbsSampleCollection * This,
            /* [optional][in] */ VARIANT __MIDL_0185,
            /* [optional][in] */ VARIANT __MIDL_0186,
            /* [retval][out] */ VARIANT *__MIDL_0187);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            NurbsSampleCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } NurbsSampleCollectionVtbl;

    interface NurbsSampleCollection
    {
        CONST_VTBL struct NurbsSampleCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define NurbsSampleCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define NurbsSampleCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define NurbsSampleCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define NurbsSampleCollection_get_USamplingCount(This,in_lNurbsSurfaceIndex,pVal)	\
    (This)->lpVtbl -> get_USamplingCount(This,in_lNurbsSurfaceIndex,pVal)

#define NurbsSampleCollection_get_VSamplingCount(This,in_lNurbsSurfaceIndex,pVal)	\
    (This)->lpVtbl -> get_VSamplingCount(This,in_lNurbsSurfaceIndex,pVal)

#define NurbsSampleCollection_GetIndexFromUVSamplingCoordinate(This,__MIDL_0180,__MIDL_0181,__MIDL_0182,pVal)	\
    (This)->lpVtbl -> GetIndexFromUVSamplingCoordinate(This,__MIDL_0180,__MIDL_0181,__MIDL_0182,pVal)

#define NurbsSampleCollection_GetIndexArrayFromUVSamplingCoordinateArray(This,__MIDL_0183,__MIDL_0184,pVal)	\
    (This)->lpVtbl -> GetIndexArrayFromUVSamplingCoordinateArray(This,__MIDL_0183,__MIDL_0184,pVal)

#define NurbsSampleCollection_GetUVSamplingCoordinateArray(This,__MIDL_0185,__MIDL_0186,__MIDL_0187)	\
    (This)->lpVtbl -> GetUVSamplingCoordinateArray(This,__MIDL_0185,__MIDL_0186,__MIDL_0187)

#define NurbsSampleCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_get_Item_Proxy( 
    NurbsSampleCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ NurbsSample **out_pParam);


void __RPC_STUB NurbsSampleCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_get_Count_Proxy( 
    NurbsSampleCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB NurbsSampleCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_get_NewEnum_Proxy( 
    NurbsSampleCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB NurbsSampleCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_get_USamplingCount_Proxy( 
    NurbsSampleCollection * This,
    /* [optional][in] */ VARIANT in_lNurbsSurfaceIndex,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB NurbsSampleCollection_get_USamplingCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_get_VSamplingCount_Proxy( 
    NurbsSampleCollection * This,
    /* [optional][in] */ VARIANT in_lNurbsSurfaceIndex,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB NurbsSampleCollection_get_VSamplingCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_GetIndexFromUVSamplingCoordinate_Proxy( 
    NurbsSampleCollection * This,
    /* [in] */ LONG __MIDL_0180,
    /* [in] */ LONG __MIDL_0181,
    /* [optional][in] */ VARIANT __MIDL_0182,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB NurbsSampleCollection_GetIndexFromUVSamplingCoordinate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_GetIndexArrayFromUVSamplingCoordinateArray_Proxy( 
    NurbsSampleCollection * This,
    /* [in] */ VARIANT __MIDL_0183,
    /* [optional][in] */ VARIANT __MIDL_0184,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB NurbsSampleCollection_GetIndexArrayFromUVSamplingCoordinateArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_GetUVSamplingCoordinateArray_Proxy( 
    NurbsSampleCollection * This,
    /* [optional][in] */ VARIANT __MIDL_0185,
    /* [optional][in] */ VARIANT __MIDL_0186,
    /* [retval][out] */ VARIANT *__MIDL_0187);


void __RPC_STUB NurbsSampleCollection_GetUVSamplingCoordinateArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE NurbsSampleCollection_get__NewEnum_Proxy( 
    NurbsSampleCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB NurbsSampleCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __NurbsSampleCollection_INTERFACE_DEFINED__ */


#ifndef __Edge_INTERFACE_DEFINED__
#define __Edge_INTERFACE_DEFINED__

/* interface Edge */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Edge;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EFDBF964-7CC7-450c-A4DF-ACAE948B7F1F")
    Edge : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Vertices( 
            /* [retval][out] */ VertexCollection **out_ppVertexCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Nodes( 
            /* [retval][out] */ PolygonNodeCollection **out_ppNodesCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GrowNeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsHard( 
            /* [retval][out] */ VARIANT_BOOL *out_pIsHard) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Crease( 
            /* [retval][out] */ double *out_dCrease) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsBoundary( 
            /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EdgeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Edge * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Edge * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Edge * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Edge * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Edge * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Edge * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Edge * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Vertices )( 
            Edge * This,
            /* [retval][out] */ VertexCollection **out_ppVertexCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Nodes )( 
            Edge * This,
            /* [retval][out] */ PolygonNodeCollection **out_ppNodesCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborVertices )( 
            Edge * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborEdges )( 
            Edge * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborPolygons )( 
            Edge * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GrowNeighborEdges )( 
            Edge * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsHard )( 
            Edge * This,
            /* [retval][out] */ VARIANT_BOOL *out_pIsHard);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Crease )( 
            Edge * This,
            /* [retval][out] */ double *out_dCrease);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsBoundary )( 
            Edge * This,
            /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary);
        
        END_INTERFACE
    } EdgeVtbl;

    interface Edge
    {
        CONST_VTBL struct EdgeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Edge_get_Vertices(This,out_ppVertexCol)	\
    (This)->lpVtbl -> get_Vertices(This,out_ppVertexCol)

#define Edge_get_Nodes(This,out_ppNodesCol)	\
    (This)->lpVtbl -> get_Nodes(This,out_ppNodesCol)

#define Edge_NeighborVertices(This,in_lDistance,out_ppVertexCol)	\
    (This)->lpVtbl -> NeighborVertices(This,in_lDistance,out_ppVertexCol)

#define Edge_NeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> NeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define Edge_NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)	\
    (This)->lpVtbl -> NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)

#define Edge_GrowNeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> GrowNeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define Edge_get_IsHard(This,out_pIsHard)	\
    (This)->lpVtbl -> get_IsHard(This,out_pIsHard)

#define Edge_get_Crease(This,out_dCrease)	\
    (This)->lpVtbl -> get_Crease(This,out_dCrease)

#define Edge_get_IsBoundary(This,out_pIsBoundary)	\
    (This)->lpVtbl -> get_IsBoundary(This,out_pIsBoundary)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Edge_get_Vertices_Proxy( 
    Edge * This,
    /* [retval][out] */ VertexCollection **out_ppVertexCol);


void __RPC_STUB Edge_get_Vertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Edge_get_Nodes_Proxy( 
    Edge * This,
    /* [retval][out] */ PolygonNodeCollection **out_ppNodesCol);


void __RPC_STUB Edge_get_Nodes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Edge_NeighborVertices_Proxy( 
    Edge * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppVertexCol);


void __RPC_STUB Edge_NeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Edge_NeighborEdges_Proxy( 
    Edge * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB Edge_NeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Edge_NeighborPolygons_Proxy( 
    Edge * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);


void __RPC_STUB Edge_NeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Edge_GrowNeighborEdges_Proxy( 
    Edge * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB Edge_GrowNeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Edge_get_IsHard_Proxy( 
    Edge * This,
    /* [retval][out] */ VARIANT_BOOL *out_pIsHard);


void __RPC_STUB Edge_get_IsHard_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Edge_get_Crease_Proxy( 
    Edge * This,
    /* [retval][out] */ double *out_dCrease);


void __RPC_STUB Edge_get_Crease_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Edge_get_IsBoundary_Proxy( 
    Edge * This,
    /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary);


void __RPC_STUB Edge_get_IsBoundary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Edge_INTERFACE_DEFINED__ */


#ifndef __EdgeCollection_INTERFACE_DEFINED__
#define __EdgeCollection_INTERFACE_DEFINED__

/* interface EdgeCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_EdgeCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("67A4AF89-75F2-467e-B69D-97636574BC1C")
    EdgeCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Edge **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GrowNeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsHardArray( 
            /* [retval][out] */ VARIANT *out_pIsHard) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CreaseArray( 
            /* [retval][out] */ VARIANT *out_pCreases) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EdgeCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            EdgeCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            EdgeCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            EdgeCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            EdgeCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            EdgeCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            EdgeCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            EdgeCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            EdgeCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Edge **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            EdgeCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            EdgeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborVertices )( 
            EdgeCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborEdges )( 
            EdgeCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborPolygons )( 
            EdgeCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GrowNeighborEdges )( 
            EdgeCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            EdgeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsHardArray )( 
            EdgeCollection * This,
            /* [retval][out] */ VARIANT *out_pIsHard);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseArray )( 
            EdgeCollection * This,
            /* [retval][out] */ VARIANT *out_pCreases);
        
        END_INTERFACE
    } EdgeCollectionVtbl;

    interface EdgeCollection
    {
        CONST_VTBL struct EdgeCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define EdgeCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define EdgeCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define EdgeCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define EdgeCollection_NeighborVertices(This,in_lDistance,out_ppVertexCol)	\
    (This)->lpVtbl -> NeighborVertices(This,in_lDistance,out_ppVertexCol)

#define EdgeCollection_NeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> NeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define EdgeCollection_NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)	\
    (This)->lpVtbl -> NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)

#define EdgeCollection_GrowNeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> GrowNeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define EdgeCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define EdgeCollection_get_IsHardArray(This,out_pIsHard)	\
    (This)->lpVtbl -> get_IsHardArray(This,out_pIsHard)

#define EdgeCollection_get_CreaseArray(This,out_pCreases)	\
    (This)->lpVtbl -> get_CreaseArray(This,out_pCreases)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE EdgeCollection_get_Item_Proxy( 
    EdgeCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Edge **out_pParam);


void __RPC_STUB EdgeCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE EdgeCollection_get_Count_Proxy( 
    EdgeCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB EdgeCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE EdgeCollection_get_NewEnum_Proxy( 
    EdgeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB EdgeCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EdgeCollection_NeighborVertices_Proxy( 
    EdgeCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppVertexCol);


void __RPC_STUB EdgeCollection_NeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EdgeCollection_NeighborEdges_Proxy( 
    EdgeCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB EdgeCollection_NeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EdgeCollection_NeighborPolygons_Proxy( 
    EdgeCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);


void __RPC_STUB EdgeCollection_NeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EdgeCollection_GrowNeighborEdges_Proxy( 
    EdgeCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB EdgeCollection_GrowNeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE EdgeCollection_get__NewEnum_Proxy( 
    EdgeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB EdgeCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EdgeCollection_get_IsHardArray_Proxy( 
    EdgeCollection * This,
    /* [retval][out] */ VARIANT *out_pIsHard);


void __RPC_STUB EdgeCollection_get_IsHardArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EdgeCollection_get_CreaseArray_Proxy( 
    EdgeCollection * This,
    /* [retval][out] */ VARIANT *out_pCreases);


void __RPC_STUB EdgeCollection_get_CreaseArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __EdgeCollection_INTERFACE_DEFINED__ */


#ifndef __Vertex_INTERFACE_DEFINED__
#define __Vertex_INTERFACE_DEFINED__

/* interface Vertex */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Vertex;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2B2C3745-EEC9-4b44-B92E-87DF82D72D91")
    Vertex : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Nodes( 
            /* [retval][out] */ PolygonNodeCollection **out_ppNodeCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppPointCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GrowNeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Crease( 
            /* [retval][out] */ double *out_pdCrease) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsBoundary( 
            /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct VertexVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Vertex * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Vertex * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Vertex * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Vertex * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Vertex * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Vertex * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Vertex * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Nodes )( 
            Vertex * This,
            /* [retval][out] */ PolygonNodeCollection **out_ppNodeCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborVertices )( 
            Vertex * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppPointCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborEdges )( 
            Vertex * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborPolygons )( 
            Vertex * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GrowNeighborVertices )( 
            Vertex * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Crease )( 
            Vertex * This,
            /* [retval][out] */ double *out_pdCrease);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsBoundary )( 
            Vertex * This,
            /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary);
        
        END_INTERFACE
    } VertexVtbl;

    interface Vertex
    {
        CONST_VTBL struct VertexVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Vertex_get_Nodes(This,out_ppNodeCol)	\
    (This)->lpVtbl -> get_Nodes(This,out_ppNodeCol)

#define Vertex_NeighborVertices(This,in_lDistance,out_ppPointCol)	\
    (This)->lpVtbl -> NeighborVertices(This,in_lDistance,out_ppPointCol)

#define Vertex_NeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> NeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define Vertex_NeighborPolygons(This,in_lDistance,out_ppPolygonCol)	\
    (This)->lpVtbl -> NeighborPolygons(This,in_lDistance,out_ppPolygonCol)

#define Vertex_GrowNeighborVertices(This,in_lDistance,out_ppVertexCol)	\
    (This)->lpVtbl -> GrowNeighborVertices(This,in_lDistance,out_ppVertexCol)

#define Vertex_get_Crease(This,out_pdCrease)	\
    (This)->lpVtbl -> get_Crease(This,out_pdCrease)

#define Vertex_get_IsBoundary(This,out_pIsBoundary)	\
    (This)->lpVtbl -> get_IsBoundary(This,out_pIsBoundary)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Vertex_get_Nodes_Proxy( 
    Vertex * This,
    /* [retval][out] */ PolygonNodeCollection **out_ppNodeCol);


void __RPC_STUB Vertex_get_Nodes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Vertex_NeighborVertices_Proxy( 
    Vertex * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppPointCol);


void __RPC_STUB Vertex_NeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Vertex_NeighborEdges_Proxy( 
    Vertex * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB Vertex_NeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Vertex_NeighborPolygons_Proxy( 
    Vertex * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppPolygonCol);


void __RPC_STUB Vertex_NeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Vertex_GrowNeighborVertices_Proxy( 
    Vertex * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppVertexCol);


void __RPC_STUB Vertex_GrowNeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Vertex_get_Crease_Proxy( 
    Vertex * This,
    /* [retval][out] */ double *out_pdCrease);


void __RPC_STUB Vertex_get_Crease_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Vertex_get_IsBoundary_Proxy( 
    Vertex * This,
    /* [retval][out] */ VARIANT_BOOL *out_pIsBoundary);


void __RPC_STUB Vertex_get_IsBoundary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Vertex_INTERFACE_DEFINED__ */


#ifndef __VertexCollection_INTERFACE_DEFINED__
#define __VertexCollection_INTERFACE_DEFINED__

/* interface VertexCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_VertexCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("50AF7DE5-D7EF-40eb-8F94-073AD5B1818A")
    VertexCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Vertex **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborEdges( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NeighborPolygons( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GrowNeighborVertices( 
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppEdgeCol) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CreaseArray( 
            /* [retval][out] */ VARIANT *out_pCreases) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct VertexCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            VertexCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            VertexCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            VertexCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            VertexCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            VertexCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            VertexCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            VertexCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            VertexCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Vertex **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            VertexCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            VertexCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborVertices )( 
            VertexCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppVertexCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborEdges )( 
            VertexCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ EdgeCollection **out_ppEdgeCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *NeighborPolygons )( 
            VertexCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GrowNeighborVertices )( 
            VertexCollection * This,
            /* [defaultvalue][in] */ LONG in_lDistance,
            /* [retval][out] */ VertexCollection **out_ppEdgeCol);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            VertexCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CreaseArray )( 
            VertexCollection * This,
            /* [retval][out] */ VARIANT *out_pCreases);
        
        END_INTERFACE
    } VertexCollectionVtbl;

    interface VertexCollection
    {
        CONST_VTBL struct VertexCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define VertexCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define VertexCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define VertexCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define VertexCollection_NeighborVertices(This,in_lDistance,out_ppVertexCol)	\
    (This)->lpVtbl -> NeighborVertices(This,in_lDistance,out_ppVertexCol)

#define VertexCollection_NeighborEdges(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> NeighborEdges(This,in_lDistance,out_ppEdgeCol)

#define VertexCollection_NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)	\
    (This)->lpVtbl -> NeighborPolygons(This,in_lDistance,out_ppPolygonFaceCol)

#define VertexCollection_GrowNeighborVertices(This,in_lDistance,out_ppEdgeCol)	\
    (This)->lpVtbl -> GrowNeighborVertices(This,in_lDistance,out_ppEdgeCol)

#define VertexCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define VertexCollection_get_CreaseArray(This,out_pCreases)	\
    (This)->lpVtbl -> get_CreaseArray(This,out_pCreases)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE VertexCollection_get_Item_Proxy( 
    VertexCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Vertex **out_pParam);


void __RPC_STUB VertexCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE VertexCollection_get_Count_Proxy( 
    VertexCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB VertexCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE VertexCollection_get_NewEnum_Proxy( 
    VertexCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB VertexCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE VertexCollection_NeighborVertices_Proxy( 
    VertexCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppVertexCol);


void __RPC_STUB VertexCollection_NeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE VertexCollection_NeighborEdges_Proxy( 
    VertexCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ EdgeCollection **out_ppEdgeCol);


void __RPC_STUB VertexCollection_NeighborEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE VertexCollection_NeighborPolygons_Proxy( 
    VertexCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ PolygonFaceCollection **out_ppPolygonFaceCol);


void __RPC_STUB VertexCollection_NeighborPolygons_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE VertexCollection_GrowNeighborVertices_Proxy( 
    VertexCollection * This,
    /* [defaultvalue][in] */ LONG in_lDistance,
    /* [retval][out] */ VertexCollection **out_ppEdgeCol);


void __RPC_STUB VertexCollection_GrowNeighborVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE VertexCollection_get__NewEnum_Proxy( 
    VertexCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB VertexCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE VertexCollection_get_CreaseArray_Proxy( 
    VertexCollection * This,
    /* [retval][out] */ VARIANT *out_pCreases);


void __RPC_STUB VertexCollection_get_CreaseArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __VertexCollection_INTERFACE_DEFINED__ */


#ifndef __PointLocatorData_INTERFACE_DEFINED__
#define __PointLocatorData_INTERFACE_DEFINED__

/* interface PointLocatorData */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PointLocatorData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B91109AD-C320-4ff6-96A1-8C2D66CC6A94")
    PointLocatorData : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PointLocatorDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PointLocatorData * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PointLocatorData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PointLocatorData * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PointLocatorData * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PointLocatorData * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PointLocatorData * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PointLocatorData * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PointLocatorData * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        END_INTERFACE
    } PointLocatorDataVtbl;

    interface PointLocatorData
    {
        CONST_VTBL struct PointLocatorDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PointLocatorData_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PointLocatorData_get_Count_Proxy( 
    PointLocatorData * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PointLocatorData_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PointLocatorData_INTERFACE_DEFINED__ */


#ifndef __LightRig_INTERFACE_DEFINED__
#define __LightRig_INTERFACE_DEFINED__

/* interface LightRig */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_LightRig;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("231B4BC1-4F8E-11d4-ACDC-0090275802BF")
    LightRig : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Light( 
            /* [retval][out] */ Light **__MIDL_0059) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct LightRigVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            LightRig * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            LightRig * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            LightRig * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            LightRig * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            LightRig * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            LightRig * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            LightRig * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Light )( 
            LightRig * This,
            /* [retval][out] */ Light **__MIDL_0059);
        
        END_INTERFACE
    } LightRigVtbl;

    interface LightRig
    {
        CONST_VTBL struct LightRigVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define LightRig_get_Light(This,__MIDL_0059)	\
    (This)->lpVtbl -> get_Light(This,__MIDL_0059)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE LightRig_get_Light_Proxy( 
    LightRig * This,
    /* [retval][out] */ Light **__MIDL_0059);


void __RPC_STUB LightRig_get_Light_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __LightRig_INTERFACE_DEFINED__ */


#ifndef __CameraRig_INTERFACE_DEFINED__
#define __CameraRig_INTERFACE_DEFINED__

/* interface CameraRig */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_CameraRig;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7E048B61-47B1-11d4-ACDB-0090275802BF")
    CameraRig : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Camera( 
            /* [retval][out] */ Camera **__MIDL_0058) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CameraRigVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            CameraRig * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            CameraRig * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            CameraRig * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            CameraRig * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            CameraRig * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            CameraRig * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            CameraRig * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Camera )( 
            CameraRig * This,
            /* [retval][out] */ Camera **__MIDL_0058);
        
        END_INTERFACE
    } CameraRigVtbl;

    interface CameraRig
    {
        CONST_VTBL struct CameraRigVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define CameraRig_get_Camera(This,__MIDL_0058)	\
    (This)->lpVtbl -> get_Camera(This,__MIDL_0058)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CameraRig_get_Camera_Proxy( 
    CameraRig * This,
    /* [retval][out] */ Camera **__MIDL_0058);


void __RPC_STUB CameraRig_get_Camera_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __CameraRig_INTERFACE_DEFINED__ */


#ifndef __Shader_INTERFACE_DEFINED__
#define __Shader_INTERFACE_DEFINED__

/* interface Shader */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Shader;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0B598C62-55C0-11d4-ACDE-0090275802BF")
    Shader : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget][hidden] */ HRESULT STDMETHODCALLTYPE get_ConnectionPoints( 
            /* [retval][out] */ ConnectionPointCollection **__MIDL_0384) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Shaders( 
            /* [retval][out] */ ShaderCollection **__MIDL_0385) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ProgID( 
            /* [retval][out] */ BSTR *__MIDL_0386) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OutputType( 
            /* [retval][out] */ siShaderParameterType *__MIDL_0387) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateTextureLayer( 
            /* [defaultvalue][in] */ BSTR in_name,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer,
            /* [retval][out] */ TextureLayer **out_ppLayer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSharedTextureLayer( 
            /* [in] */ VARIANT in_varLayerToAdd,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TextureLayers( 
            /* [retval][out] */ TextureLayerCollection **__MIDL_0388) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveTextureLayer( 
            /* [in] */ VARIANT in_varLayerToRemove) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ImageClips( 
            /* [retval][out] */ ImageClipCollection **__MIDL_0389) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddProperty( 
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Properties( 
            /* [retval][out] */ PropertyCollection **out_ppProps) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HasRenderer( 
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ VARIANT_BOOL *out_bSupported) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RendererOptionValue( 
            /* [in] */ BSTR in_Renderer,
            /* [in] */ BSTR in_OptioName,
            /* [retval][out] */ VARIANT *out_value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SymbolName( 
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ BSTR *out_SymbolName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CodePath( 
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ BSTR *out_Path) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CodeText( 
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ BSTR *out_Text) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShaderInputType( 
            /* [in] */ BSTR in_Param,
            /* [retval][out] */ siShaderParameterType *out_InputType) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Root( 
            /* [retval][out] */ IDispatch **out_ppRoot) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ShaderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Shader * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Shader * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Shader * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Shader * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Shader * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Shader * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Shader * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionPoints )( 
            Shader * This,
            /* [retval][out] */ ConnectionPointCollection **__MIDL_0384);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Shaders )( 
            Shader * This,
            /* [retval][out] */ ShaderCollection **__MIDL_0385);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProgID )( 
            Shader * This,
            /* [retval][out] */ BSTR *__MIDL_0386);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OutputType )( 
            Shader * This,
            /* [retval][out] */ siShaderParameterType *__MIDL_0387);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateTextureLayer )( 
            Shader * This,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer,
            /* [retval][out] */ TextureLayer **out_ppLayer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSharedTextureLayer )( 
            Shader * This,
            /* [in] */ VARIANT in_varLayerToAdd,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
            /* [optional][in] */ VARIANT in_varRefLayer);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TextureLayers )( 
            Shader * This,
            /* [retval][out] */ TextureLayerCollection **__MIDL_0388);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveTextureLayer )( 
            Shader * This,
            /* [in] */ VARIANT in_varLayerToRemove);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ImageClips )( 
            Shader * This,
            /* [retval][out] */ ImageClipCollection **__MIDL_0389);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddProperty )( 
            Shader * This,
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )( 
            Shader * This,
            /* [retval][out] */ PropertyCollection **out_ppProps);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HasRenderer )( 
            Shader * This,
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ VARIANT_BOOL *out_bSupported);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RendererOptionValue )( 
            Shader * This,
            /* [in] */ BSTR in_Renderer,
            /* [in] */ BSTR in_OptioName,
            /* [retval][out] */ VARIANT *out_value);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SymbolName )( 
            Shader * This,
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ BSTR *out_SymbolName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CodePath )( 
            Shader * This,
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ BSTR *out_Path);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CodeText )( 
            Shader * This,
            /* [in] */ BSTR in_Renderer,
            /* [retval][out] */ BSTR *out_Text);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShaderInputType )( 
            Shader * This,
            /* [in] */ BSTR in_Param,
            /* [retval][out] */ siShaderParameterType *out_InputType);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Root )( 
            Shader * This,
            /* [retval][out] */ IDispatch **out_ppRoot);
        
        END_INTERFACE
    } ShaderVtbl;

    interface Shader
    {
        CONST_VTBL struct ShaderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Shader_get_ConnectionPoints(This,__MIDL_0384)	\
    (This)->lpVtbl -> get_ConnectionPoints(This,__MIDL_0384)

#define Shader_get_Shaders(This,__MIDL_0385)	\
    (This)->lpVtbl -> get_Shaders(This,__MIDL_0385)

#define Shader_get_ProgID(This,__MIDL_0386)	\
    (This)->lpVtbl -> get_ProgID(This,__MIDL_0386)

#define Shader_get_OutputType(This,__MIDL_0387)	\
    (This)->lpVtbl -> get_OutputType(This,__MIDL_0387)

#define Shader_CreateTextureLayer(This,in_name,in_bAfter,in_varRefLayer,out_ppLayer)	\
    (This)->lpVtbl -> CreateTextureLayer(This,in_name,in_bAfter,in_varRefLayer,out_ppLayer)

#define Shader_AddSharedTextureLayer(This,in_varLayerToAdd,in_bAfter,in_varRefLayer)	\
    (This)->lpVtbl -> AddSharedTextureLayer(This,in_varLayerToAdd,in_bAfter,in_varRefLayer)

#define Shader_get_TextureLayers(This,__MIDL_0388)	\
    (This)->lpVtbl -> get_TextureLayers(This,__MIDL_0388)

#define Shader_RemoveTextureLayer(This,in_varLayerToRemove)	\
    (This)->lpVtbl -> RemoveTextureLayer(This,in_varLayerToRemove)

#define Shader_get_ImageClips(This,__MIDL_0389)	\
    (This)->lpVtbl -> get_ImageClips(This,__MIDL_0389)

#define Shader_AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)	\
    (This)->lpVtbl -> AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)

#define Shader_get_Properties(This,out_ppProps)	\
    (This)->lpVtbl -> get_Properties(This,out_ppProps)

#define Shader_HasRenderer(This,in_Renderer,out_bSupported)	\
    (This)->lpVtbl -> HasRenderer(This,in_Renderer,out_bSupported)

#define Shader_RendererOptionValue(This,in_Renderer,in_OptioName,out_value)	\
    (This)->lpVtbl -> RendererOptionValue(This,in_Renderer,in_OptioName,out_value)

#define Shader_SymbolName(This,in_Renderer,out_SymbolName)	\
    (This)->lpVtbl -> SymbolName(This,in_Renderer,out_SymbolName)

#define Shader_CodePath(This,in_Renderer,out_Path)	\
    (This)->lpVtbl -> CodePath(This,in_Renderer,out_Path)

#define Shader_CodeText(This,in_Renderer,out_Text)	\
    (This)->lpVtbl -> CodeText(This,in_Renderer,out_Text)

#define Shader_GetShaderInputType(This,in_Param,out_InputType)	\
    (This)->lpVtbl -> GetShaderInputType(This,in_Param,out_InputType)

#define Shader_get_Root(This,out_ppRoot)	\
    (This)->lpVtbl -> get_Root(This,out_ppRoot)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget][hidden] */ HRESULT STDMETHODCALLTYPE Shader_get_ConnectionPoints_Proxy( 
    Shader * This,
    /* [retval][out] */ ConnectionPointCollection **__MIDL_0384);


void __RPC_STUB Shader_get_ConnectionPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Shader_get_Shaders_Proxy( 
    Shader * This,
    /* [retval][out] */ ShaderCollection **__MIDL_0385);


void __RPC_STUB Shader_get_Shaders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Shader_get_ProgID_Proxy( 
    Shader * This,
    /* [retval][out] */ BSTR *__MIDL_0386);


void __RPC_STUB Shader_get_ProgID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Shader_get_OutputType_Proxy( 
    Shader * This,
    /* [retval][out] */ siShaderParameterType *__MIDL_0387);


void __RPC_STUB Shader_get_OutputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_CreateTextureLayer_Proxy( 
    Shader * This,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
    /* [optional][in] */ VARIANT in_varRefLayer,
    /* [retval][out] */ TextureLayer **out_ppLayer);


void __RPC_STUB Shader_CreateTextureLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_AddSharedTextureLayer_Proxy( 
    Shader * This,
    /* [in] */ VARIANT in_varLayerToAdd,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bAfter,
    /* [optional][in] */ VARIANT in_varRefLayer);


void __RPC_STUB Shader_AddSharedTextureLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Shader_get_TextureLayers_Proxy( 
    Shader * This,
    /* [retval][out] */ TextureLayerCollection **__MIDL_0388);


void __RPC_STUB Shader_get_TextureLayers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_RemoveTextureLayer_Proxy( 
    Shader * This,
    /* [in] */ VARIANT in_varLayerToRemove);


void __RPC_STUB Shader_RemoveTextureLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Shader_get_ImageClips_Proxy( 
    Shader * This,
    /* [retval][out] */ ImageClipCollection **__MIDL_0389);


void __RPC_STUB Shader_get_ImageClips_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Shader_AddProperty_Proxy( 
    Shader * This,
    /* [in] */ VARIANT in_Preset,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Property **out_ppProp);


void __RPC_STUB Shader_AddProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Shader_get_Properties_Proxy( 
    Shader * This,
    /* [retval][out] */ PropertyCollection **out_ppProps);


void __RPC_STUB Shader_get_Properties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_HasRenderer_Proxy( 
    Shader * This,
    /* [in] */ BSTR in_Renderer,
    /* [retval][out] */ VARIANT_BOOL *out_bSupported);


void __RPC_STUB Shader_HasRenderer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_RendererOptionValue_Proxy( 
    Shader * This,
    /* [in] */ BSTR in_Renderer,
    /* [in] */ BSTR in_OptioName,
    /* [retval][out] */ VARIANT *out_value);


void __RPC_STUB Shader_RendererOptionValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_SymbolName_Proxy( 
    Shader * This,
    /* [in] */ BSTR in_Renderer,
    /* [retval][out] */ BSTR *out_SymbolName);


void __RPC_STUB Shader_SymbolName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_CodePath_Proxy( 
    Shader * This,
    /* [in] */ BSTR in_Renderer,
    /* [retval][out] */ BSTR *out_Path);


void __RPC_STUB Shader_CodePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_CodeText_Proxy( 
    Shader * This,
    /* [in] */ BSTR in_Renderer,
    /* [retval][out] */ BSTR *out_Text);


void __RPC_STUB Shader_CodeText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shader_GetShaderInputType_Proxy( 
    Shader * This,
    /* [in] */ BSTR in_Param,
    /* [retval][out] */ siShaderParameterType *out_InputType);


void __RPC_STUB Shader_GetShaderInputType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Shader_get_Root_Proxy( 
    Shader * This,
    /* [retval][out] */ IDispatch **out_ppRoot);


void __RPC_STUB Shader_get_Root_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Shader_INTERFACE_DEFINED__ */


#ifndef __ConnectionPoint_INTERFACE_DEFINED__
#define __ConnectionPoint_INTERFACE_DEFINED__

/* interface ConnectionPoint */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ConnectionPoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0B598C61-55C0-11d4-ACDE-0090275802BF")
    ConnectionPoint : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ Shader **__MIDL_0390) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Source( 
            /* [in] */ Shader *__MIDL_0391) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DataSource( 
            /* [retval][out] */ DataSource **__MIDL_0392) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ConnectionPointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ConnectionPoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ConnectionPoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ConnectionPoint * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ConnectionPoint * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ConnectionPoint * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ConnectionPoint * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ConnectionPoint * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            ConnectionPoint * This,
            /* [retval][out] */ Shader **__MIDL_0390);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Source )( 
            ConnectionPoint * This,
            /* [in] */ Shader *__MIDL_0391);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DataSource )( 
            ConnectionPoint * This,
            /* [retval][out] */ DataSource **__MIDL_0392);
        
        END_INTERFACE
    } ConnectionPointVtbl;

    interface ConnectionPoint
    {
        CONST_VTBL struct ConnectionPointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ConnectionPoint_get_Source(This,__MIDL_0390)	\
    (This)->lpVtbl -> get_Source(This,__MIDL_0390)

#define ConnectionPoint_put_Source(This,__MIDL_0391)	\
    (This)->lpVtbl -> put_Source(This,__MIDL_0391)

#define ConnectionPoint_get_DataSource(This,__MIDL_0392)	\
    (This)->lpVtbl -> get_DataSource(This,__MIDL_0392)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ConnectionPoint_get_Source_Proxy( 
    ConnectionPoint * This,
    /* [retval][out] */ Shader **__MIDL_0390);


void __RPC_STUB ConnectionPoint_get_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ConnectionPoint_put_Source_Proxy( 
    ConnectionPoint * This,
    /* [in] */ Shader *__MIDL_0391);


void __RPC_STUB ConnectionPoint_put_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ConnectionPoint_get_DataSource_Proxy( 
    ConnectionPoint * This,
    /* [retval][out] */ DataSource **__MIDL_0392);


void __RPC_STUB ConnectionPoint_get_DataSource_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ConnectionPoint_INTERFACE_DEFINED__ */


#ifndef __Texture_INTERFACE_DEFINED__
#define __Texture_INTERFACE_DEFINED__

/* interface Texture */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Texture;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CE2F2485-2421-4213-8ADB-DD5C4FF0DA63")
    Texture : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTransformValues( 
            /* [in] */ LONG __MIDL_0393,
            /* [retval][out] */ VARIANT *__MIDL_0394) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TextureVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Texture * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Texture * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Texture * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Texture * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Texture * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Texture * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Texture * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTransformValues )( 
            Texture * This,
            /* [in] */ LONG __MIDL_0393,
            /* [retval][out] */ VARIANT *__MIDL_0394);
        
        END_INTERFACE
    } TextureVtbl;

    interface Texture
    {
        CONST_VTBL struct TextureVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Texture_GetTransformValues(This,__MIDL_0393,__MIDL_0394)	\
    (This)->lpVtbl -> GetTransformValues(This,__MIDL_0393,__MIDL_0394)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Texture_GetTransformValues_Proxy( 
    Texture * This,
    /* [in] */ LONG __MIDL_0393,
    /* [retval][out] */ VARIANT *__MIDL_0394);


void __RPC_STUB Texture_GetTransformValues_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Texture_INTERFACE_DEFINED__ */


#ifndef __TextureLayer_INTERFACE_DEFINED__
#define __TextureLayer_INTERFACE_DEFINED__

/* interface TextureLayer */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_TextureLayer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B1BA9E35-FAD4-4b02-8149-0A0C51586427")
    TextureLayer : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Move( 
            /* [defaultvalue][in] */ LONG in_lOffset = -1) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddTextureLayerPort( 
            /* [in] */ VARIANT in_varParam,
            /* [retval][out] */ TextureLayerPort **out_ppPort) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveTextureLayerPort( 
            /* [in] */ VARIANT in_varPort) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TextureLayerPorts( 
            /* [retval][out] */ TextureLayerPortCollection **__MIDL_0395) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TextureLayerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TextureLayer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TextureLayer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TextureLayer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TextureLayer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TextureLayer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TextureLayer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TextureLayer * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            TextureLayer * This,
            /* [defaultvalue][in] */ LONG in_lOffset);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddTextureLayerPort )( 
            TextureLayer * This,
            /* [in] */ VARIANT in_varParam,
            /* [retval][out] */ TextureLayerPort **out_ppPort);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveTextureLayerPort )( 
            TextureLayer * This,
            /* [in] */ VARIANT in_varPort);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TextureLayerPorts )( 
            TextureLayer * This,
            /* [retval][out] */ TextureLayerPortCollection **__MIDL_0395);
        
        END_INTERFACE
    } TextureLayerVtbl;

    interface TextureLayer
    {
        CONST_VTBL struct TextureLayerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define TextureLayer_Move(This,in_lOffset)	\
    (This)->lpVtbl -> Move(This,in_lOffset)

#define TextureLayer_AddTextureLayerPort(This,in_varParam,out_ppPort)	\
    (This)->lpVtbl -> AddTextureLayerPort(This,in_varParam,out_ppPort)

#define TextureLayer_RemoveTextureLayerPort(This,in_varPort)	\
    (This)->lpVtbl -> RemoveTextureLayerPort(This,in_varPort)

#define TextureLayer_get_TextureLayerPorts(This,__MIDL_0395)	\
    (This)->lpVtbl -> get_TextureLayerPorts(This,__MIDL_0395)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TextureLayer_Move_Proxy( 
    TextureLayer * This,
    /* [defaultvalue][in] */ LONG in_lOffset);


void __RPC_STUB TextureLayer_Move_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TextureLayer_AddTextureLayerPort_Proxy( 
    TextureLayer * This,
    /* [in] */ VARIANT in_varParam,
    /* [retval][out] */ TextureLayerPort **out_ppPort);


void __RPC_STUB TextureLayer_AddTextureLayerPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TextureLayer_RemoveTextureLayerPort_Proxy( 
    TextureLayer * This,
    /* [in] */ VARIANT in_varPort);


void __RPC_STUB TextureLayer_RemoveTextureLayerPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TextureLayer_get_TextureLayerPorts_Proxy( 
    TextureLayer * This,
    /* [retval][out] */ TextureLayerPortCollection **__MIDL_0395);


void __RPC_STUB TextureLayer_get_TextureLayerPorts_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TextureLayer_INTERFACE_DEFINED__ */


#ifndef __TextureLayerPort_INTERFACE_DEFINED__
#define __TextureLayerPort_INTERFACE_DEFINED__

/* interface TextureLayerPort */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_TextureLayerPort;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("789CF19B-9A6F-4fe9-8AF9-3CD5AA590076")
    TextureLayerPort : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ Parameter **__MIDL_0396) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TextureLayerPortVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TextureLayerPort * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TextureLayerPort * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TextureLayerPort * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TextureLayerPort * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TextureLayerPort * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TextureLayerPort * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TextureLayerPort * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            TextureLayerPort * This,
            /* [retval][out] */ Parameter **__MIDL_0396);
        
        END_INTERFACE
    } TextureLayerPortVtbl;

    interface TextureLayerPort
    {
        CONST_VTBL struct TextureLayerPortVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define TextureLayerPort_get_Target(This,__MIDL_0396)	\
    (This)->lpVtbl -> get_Target(This,__MIDL_0396)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TextureLayerPort_get_Target_Proxy( 
    TextureLayerPort * This,
    /* [retval][out] */ Parameter **__MIDL_0396);


void __RPC_STUB TextureLayerPort_get_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TextureLayerPort_INTERFACE_DEFINED__ */


#ifndef __SIObjectCollection_INTERFACE_DEFINED__
#define __SIObjectCollection_INTERFACE_DEFINED__

/* interface SIObjectCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SIObjectCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7C4B6BA1-C480-11d4-8177-00A024189A69")
    SIObjectCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ SIObject **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SIObjectCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SIObjectCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SIObjectCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SIObjectCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SIObjectCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SIObjectCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SIObjectCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SIObjectCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            SIObjectCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ SIObject **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            SIObjectCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            SIObjectCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } SIObjectCollectionVtbl;

    interface SIObjectCollection
    {
        CONST_VTBL struct SIObjectCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SIObjectCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define SIObjectCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define SIObjectCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE SIObjectCollection_get_Item_Proxy( 
    SIObjectCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ SIObject **out_pParam);


void __RPC_STUB SIObjectCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE SIObjectCollection_get_Count_Proxy( 
    SIObjectCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB SIObjectCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SIObjectCollection_get__NewEnum_Proxy( 
    SIObjectCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SIObjectCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SIObjectCollection_INTERFACE_DEFINED__ */


#ifndef __ProjectItemCollection_INTERFACE_DEFINED__
#define __ProjectItemCollection_INTERFACE_DEFINED__

/* interface ProjectItemCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ProjectItemCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1344A491-31C5-11d4-ACD7-0090275802BF")
    ProjectItemCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ProjectItem **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ProjectItemCollection **__MIDL_0416) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ProjectItem **__MIDL_0417) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0418) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ProjectItemCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ProjectItemCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ProjectItemCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ProjectItemCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ProjectItemCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ProjectItemCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ProjectItemCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ProjectItemCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ProjectItemCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ProjectItem **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ProjectItemCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ProjectItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ProjectItemCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ProjectItemCollection **__MIDL_0416);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ProjectItemCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ProjectItem **__MIDL_0417);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ProjectItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ProjectItemCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0418);
        
        END_INTERFACE
    } ProjectItemCollectionVtbl;

    interface ProjectItemCollection
    {
        CONST_VTBL struct ProjectItemCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ProjectItemCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ProjectItemCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ProjectItemCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ProjectItemCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0416)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0416)

#define ProjectItemCollection_Find(This,in_filter,__MIDL_0417)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0417)

#define ProjectItemCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ProjectItemCollection_GetAsText(This,__MIDL_0418)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0418)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItemCollection_get_Item_Proxy( 
    ProjectItemCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ProjectItem **out_pParam);


void __RPC_STUB ProjectItemCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ProjectItemCollection_get_Count_Proxy( 
    ProjectItemCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ProjectItemCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ProjectItemCollection_get_NewEnum_Proxy( 
    ProjectItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ProjectItemCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ProjectItemCollection_Filter_Proxy( 
    ProjectItemCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ProjectItemCollection **__MIDL_0416);


void __RPC_STUB ProjectItemCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ProjectItemCollection_Find_Proxy( 
    ProjectItemCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ProjectItem **__MIDL_0417);


void __RPC_STUB ProjectItemCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ProjectItemCollection_get__NewEnum_Proxy( 
    ProjectItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ProjectItemCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ProjectItemCollection_GetAsText_Proxy( 
    ProjectItemCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0418);


void __RPC_STUB ProjectItemCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ProjectItemCollection_INTERFACE_DEFINED__ */


#ifndef __SceneItemCollection_INTERFACE_DEFINED__
#define __SceneItemCollection_INTERFACE_DEFINED__

/* interface SceneItemCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SceneItemCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("508F767E-8F16-11d4-813F-00A0C9AC19A9")
    SceneItemCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ SceneItem **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SceneItemCollection **__MIDL_0419) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ SceneItem **__MIDL_0420) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0421) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SceneItemCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SceneItemCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SceneItemCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SceneItemCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SceneItemCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SceneItemCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SceneItemCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SceneItemCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            SceneItemCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ SceneItem **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            SceneItemCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            SceneItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            SceneItemCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SceneItemCollection **__MIDL_0419);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            SceneItemCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ SceneItem **__MIDL_0420);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            SceneItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            SceneItemCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0421);
        
        END_INTERFACE
    } SceneItemCollectionVtbl;

    interface SceneItemCollection
    {
        CONST_VTBL struct SceneItemCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define SceneItemCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define SceneItemCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define SceneItemCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define SceneItemCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0419)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0419)

#define SceneItemCollection_Find(This,in_filter,__MIDL_0420)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0420)

#define SceneItemCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define SceneItemCollection_GetAsText(This,__MIDL_0421)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0421)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE SceneItemCollection_get_Item_Proxy( 
    SceneItemCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ SceneItem **out_pParam);


void __RPC_STUB SceneItemCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE SceneItemCollection_get_Count_Proxy( 
    SceneItemCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB SceneItemCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SceneItemCollection_get_NewEnum_Proxy( 
    SceneItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SceneItemCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SceneItemCollection_Filter_Proxy( 
    SceneItemCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ SceneItemCollection **__MIDL_0419);


void __RPC_STUB SceneItemCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SceneItemCollection_Find_Proxy( 
    SceneItemCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ SceneItem **__MIDL_0420);


void __RPC_STUB SceneItemCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SceneItemCollection_get__NewEnum_Proxy( 
    SceneItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SceneItemCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SceneItemCollection_GetAsText_Proxy( 
    SceneItemCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0421);


void __RPC_STUB SceneItemCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SceneItemCollection_INTERFACE_DEFINED__ */


#ifndef __PrimitiveCollection_INTERFACE_DEFINED__
#define __PrimitiveCollection_INTERFACE_DEFINED__

/* interface PrimitiveCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PrimitiveCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1486EED2-33E2-11d4-ACD9-0090275802BF")
    PrimitiveCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Primitive **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PrimitiveCollection **__MIDL_0422) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Primitive **__MIDL_0423) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0424) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PrimitiveCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PrimitiveCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PrimitiveCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PrimitiveCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PrimitiveCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PrimitiveCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PrimitiveCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PrimitiveCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PrimitiveCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Primitive **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PrimitiveCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            PrimitiveCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            PrimitiveCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PrimitiveCollection **__MIDL_0422);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            PrimitiveCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Primitive **__MIDL_0423);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PrimitiveCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            PrimitiveCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0424);
        
        END_INTERFACE
    } PrimitiveCollectionVtbl;

    interface PrimitiveCollection
    {
        CONST_VTBL struct PrimitiveCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define PrimitiveCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PrimitiveCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PrimitiveCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define PrimitiveCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0422)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0422)

#define PrimitiveCollection_Find(This,in_filter,__MIDL_0423)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0423)

#define PrimitiveCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define PrimitiveCollection_GetAsText(This,__MIDL_0424)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0424)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PrimitiveCollection_get_Item_Proxy( 
    PrimitiveCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Primitive **out_pParam);


void __RPC_STUB PrimitiveCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PrimitiveCollection_get_Count_Proxy( 
    PrimitiveCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PrimitiveCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PrimitiveCollection_get_NewEnum_Proxy( 
    PrimitiveCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PrimitiveCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PrimitiveCollection_Filter_Proxy( 
    PrimitiveCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ PrimitiveCollection **__MIDL_0422);


void __RPC_STUB PrimitiveCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PrimitiveCollection_Find_Proxy( 
    PrimitiveCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Primitive **__MIDL_0423);


void __RPC_STUB PrimitiveCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PrimitiveCollection_get__NewEnum_Proxy( 
    PrimitiveCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PrimitiveCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PrimitiveCollection_GetAsText_Proxy( 
    PrimitiveCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0424);


void __RPC_STUB PrimitiveCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PrimitiveCollection_INTERFACE_DEFINED__ */


#ifndef __X3DObjectCollection_INTERFACE_DEFINED__
#define __X3DObjectCollection_INTERFACE_DEFINED__

/* interface X3DObjectCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_X3DObjectCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2466B671-3369-11d4-ACD9-0090275802BF")
    X3DObjectCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ X3DObject **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ X3DObjectCollection **__MIDL_0413) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ X3DObject **__MIDL_0414) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0415) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct X3DObjectCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            X3DObjectCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            X3DObjectCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            X3DObjectCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            X3DObjectCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            X3DObjectCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            X3DObjectCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            X3DObjectCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            X3DObjectCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ X3DObject **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            X3DObjectCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            X3DObjectCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            X3DObjectCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ X3DObjectCollection **__MIDL_0413);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            X3DObjectCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ X3DObject **__MIDL_0414);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            X3DObjectCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            X3DObjectCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0415);
        
        END_INTERFACE
    } X3DObjectCollectionVtbl;

    interface X3DObjectCollection
    {
        CONST_VTBL struct X3DObjectCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

#define X3DObjectCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define X3DObjectCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define X3DObjectCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define X3DObjectCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define X3DObjectCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define X3DObjectCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0413)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0413)

#define X3DObjectCollection_Find(This,in_filter,__MIDL_0414)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0414)

#define X3DObjectCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define X3DObjectCollection_GetAsText(This,__MIDL_0415)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0415)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE X3DObjectCollection_get_Item_Proxy( 
    X3DObjectCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ X3DObject **out_pParam);


void __RPC_STUB X3DObjectCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE X3DObjectCollection_get_Count_Proxy( 
    X3DObjectCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB X3DObjectCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE X3DObjectCollection_get_NewEnum_Proxy( 
    X3DObjectCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB X3DObjectCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE X3DObjectCollection_Filter_Proxy( 
    X3DObjectCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ X3DObjectCollection **__MIDL_0413);


void __RPC_STUB X3DObjectCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE X3DObjectCollection_Find_Proxy( 
    X3DObjectCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ X3DObject **__MIDL_0414);


void __RPC_STUB X3DObjectCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE X3DObjectCollection_get__NewEnum_Proxy( 
    X3DObjectCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB X3DObjectCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE X3DObjectCollection_GetAsText_Proxy( 
    X3DObjectCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0415);


void __RPC_STUB X3DObjectCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __X3DObjectCollection_INTERFACE_DEFINED__ */


#ifndef __ModelCollection_INTERFACE_DEFINED__
#define __ModelCollection_INTERFACE_DEFINED__

/* interface ModelCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ModelCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1486EED4-33E2-11d4-ACD9-0090275802BF")
    ModelCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Model **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ModelCollection **__MIDL_0425) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Model **__MIDL_0426) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0427) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ModelCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ModelCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ModelCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ModelCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ModelCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ModelCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ModelCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ModelCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ModelCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Model **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ModelCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ModelCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ModelCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ModelCollection **__MIDL_0425);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ModelCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Model **__MIDL_0426);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ModelCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ModelCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0427);
        
        END_INTERFACE
    } ModelCollectionVtbl;

    interface ModelCollection
    {
        CONST_VTBL struct ModelCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ModelCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ModelCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ModelCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ModelCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ModelCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ModelCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ModelCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ModelCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ModelCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ModelCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ModelCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0425)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0425)

#define ModelCollection_Find(This,in_filter,__MIDL_0426)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0426)

#define ModelCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ModelCollection_GetAsText(This,__MIDL_0427)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0427)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ModelCollection_get_Item_Proxy( 
    ModelCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Model **out_pParam);


void __RPC_STUB ModelCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ModelCollection_get_Count_Proxy( 
    ModelCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ModelCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ModelCollection_get_NewEnum_Proxy( 
    ModelCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ModelCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ModelCollection_Filter_Proxy( 
    ModelCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ModelCollection **__MIDL_0425);


void __RPC_STUB ModelCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ModelCollection_Find_Proxy( 
    ModelCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Model **__MIDL_0426);


void __RPC_STUB ModelCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ModelCollection_get__NewEnum_Proxy( 
    ModelCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ModelCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ModelCollection_GetAsText_Proxy( 
    ModelCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0427);


void __RPC_STUB ModelCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ModelCollection_INTERFACE_DEFINED__ */


#ifndef __PortGroupCollection_INTERFACE_DEFINED__
#define __PortGroupCollection_INTERFACE_DEFINED__

/* interface PortGroupCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PortGroupCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FD44A8E5-6F26-4093-B9EF-477B8A97D666")
    PortGroupCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PortGroup **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PortGroupCollection **__MIDL_0431) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ PortGroup **__MIDL_0432) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0433) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PortGroupCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PortGroupCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PortGroupCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PortGroupCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PortGroupCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PortGroupCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PortGroupCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PortGroupCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PortGroupCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PortGroup **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PortGroupCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PortGroupCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            PortGroupCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PortGroupCollection **__MIDL_0431);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            PortGroupCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ PortGroup **__MIDL_0432);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            PortGroupCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0433);
        
        END_INTERFACE
    } PortGroupCollectionVtbl;

    interface PortGroupCollection
    {
        CONST_VTBL struct PortGroupCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PortGroupCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PortGroupCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PortGroupCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PortGroupCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PortGroupCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PortGroupCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PortGroupCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PortGroupCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PortGroupCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PortGroupCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define PortGroupCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0431)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0431)

#define PortGroupCollection_Find(This,in_filter,__MIDL_0432)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0432)

#define PortGroupCollection_GetAsText(This,__MIDL_0433)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0433)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PortGroupCollection_get_Item_Proxy( 
    PortGroupCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ PortGroup **out_pParam);


void __RPC_STUB PortGroupCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PortGroupCollection_get_Count_Proxy( 
    PortGroupCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PortGroupCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PortGroupCollection_get__NewEnum_Proxy( 
    PortGroupCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PortGroupCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PortGroupCollection_Filter_Proxy( 
    PortGroupCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ PortGroupCollection **__MIDL_0431);


void __RPC_STUB PortGroupCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PortGroupCollection_Find_Proxy( 
    PortGroupCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ PortGroup **__MIDL_0432);


void __RPC_STUB PortGroupCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PortGroupCollection_GetAsText_Proxy( 
    PortGroupCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0433);


void __RPC_STUB PortGroupCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PortGroupCollection_INTERFACE_DEFINED__ */


#ifndef __PortCollection_INTERFACE_DEFINED__
#define __PortCollection_INTERFACE_DEFINED__

/* interface PortCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PortCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6E909EEF-282D-4bf1-AB01-A64F2F697699")
    PortCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Port **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PortCollection **__MIDL_0434) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Port **__MIDL_0435) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0436) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PortCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PortCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PortCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PortCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PortCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PortCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PortCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PortCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PortCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Port **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PortCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PortCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            PortCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PortCollection **__MIDL_0434);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            PortCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Port **__MIDL_0435);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            PortCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0436);
        
        END_INTERFACE
    } PortCollectionVtbl;

    interface PortCollection
    {
        CONST_VTBL struct PortCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PortCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PortCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PortCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PortCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PortCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PortCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PortCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PortCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PortCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PortCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define PortCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0434)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0434)

#define PortCollection_Find(This,in_filter,__MIDL_0435)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0435)

#define PortCollection_GetAsText(This,__MIDL_0436)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0436)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PortCollection_get_Item_Proxy( 
    PortCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Port **out_pParam);


void __RPC_STUB PortCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PortCollection_get_Count_Proxy( 
    PortCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PortCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PortCollection_get__NewEnum_Proxy( 
    PortCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PortCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PortCollection_Filter_Proxy( 
    PortCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ PortCollection **__MIDL_0434);


void __RPC_STUB PortCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PortCollection_Find_Proxy( 
    PortCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Port **__MIDL_0435);


void __RPC_STUB PortCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PortCollection_GetAsText_Proxy( 
    PortCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0436);


void __RPC_STUB PortCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PortCollection_INTERFACE_DEFINED__ */


#ifndef __InputPortCollection_INTERFACE_DEFINED__
#define __InputPortCollection_INTERFACE_DEFINED__

/* interface InputPortCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_InputPortCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6F3EBF1C-3C89-11d4-87A3-00A0C983050D")
    InputPortCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ InputPort **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ InputPortCollection **__MIDL_0437) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ InputPort **__MIDL_0438) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0439) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct InputPortCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            InputPortCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            InputPortCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            InputPortCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            InputPortCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            InputPortCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            InputPortCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            InputPortCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            InputPortCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ InputPort **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            InputPortCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            InputPortCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            InputPortCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ InputPortCollection **__MIDL_0437);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            InputPortCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ InputPort **__MIDL_0438);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            InputPortCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            InputPortCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0439);
        
        END_INTERFACE
    } InputPortCollectionVtbl;

    interface InputPortCollection
    {
        CONST_VTBL struct InputPortCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define InputPortCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define InputPortCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define InputPortCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define InputPortCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define InputPortCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define InputPortCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define InputPortCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define InputPortCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define InputPortCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define InputPortCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define InputPortCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0437)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0437)

#define InputPortCollection_Find(This,in_filter,__MIDL_0438)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0438)

#define InputPortCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define InputPortCollection_GetAsText(This,__MIDL_0439)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0439)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE InputPortCollection_get_Item_Proxy( 
    InputPortCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ InputPort **out_pParam);


void __RPC_STUB InputPortCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE InputPortCollection_get_Count_Proxy( 
    InputPortCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB InputPortCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE InputPortCollection_get_NewEnum_Proxy( 
    InputPortCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB InputPortCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE InputPortCollection_Filter_Proxy( 
    InputPortCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ InputPortCollection **__MIDL_0437);


void __RPC_STUB InputPortCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE InputPortCollection_Find_Proxy( 
    InputPortCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ InputPort **__MIDL_0438);


void __RPC_STUB InputPortCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE InputPortCollection_get__NewEnum_Proxy( 
    InputPortCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB InputPortCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE InputPortCollection_GetAsText_Proxy( 
    InputPortCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0439);


void __RPC_STUB InputPortCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __InputPortCollection_INTERFACE_DEFINED__ */


#ifndef __OutputPortCollection_INTERFACE_DEFINED__
#define __OutputPortCollection_INTERFACE_DEFINED__

/* interface OutputPortCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_OutputPortCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("815501E5-07BE-4833-8484-92AC11AEB139")
    OutputPortCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ OutputPort **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ OutputPortCollection **__MIDL_0440) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ OutputPort **__MIDL_0441) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0442) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OutputPortCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            OutputPortCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            OutputPortCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            OutputPortCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            OutputPortCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            OutputPortCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            OutputPortCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            OutputPortCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            OutputPortCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ OutputPort **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            OutputPortCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            OutputPortCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            OutputPortCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ OutputPortCollection **__MIDL_0440);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            OutputPortCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ OutputPort **__MIDL_0441);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            OutputPortCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            OutputPortCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0442);
        
        END_INTERFACE
    } OutputPortCollectionVtbl;

    interface OutputPortCollection
    {
        CONST_VTBL struct OutputPortCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define OutputPortCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define OutputPortCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define OutputPortCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define OutputPortCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define OutputPortCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define OutputPortCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define OutputPortCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define OutputPortCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define OutputPortCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define OutputPortCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define OutputPortCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0440)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0440)

#define OutputPortCollection_Find(This,in_filter,__MIDL_0441)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0441)

#define OutputPortCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define OutputPortCollection_GetAsText(This,__MIDL_0442)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0442)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE OutputPortCollection_get_Item_Proxy( 
    OutputPortCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ OutputPort **out_pParam);


void __RPC_STUB OutputPortCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE OutputPortCollection_get_Count_Proxy( 
    OutputPortCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB OutputPortCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE OutputPortCollection_get_NewEnum_Proxy( 
    OutputPortCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB OutputPortCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE OutputPortCollection_Filter_Proxy( 
    OutputPortCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ OutputPortCollection **__MIDL_0440);


void __RPC_STUB OutputPortCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE OutputPortCollection_Find_Proxy( 
    OutputPortCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ OutputPort **__MIDL_0441);


void __RPC_STUB OutputPortCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE OutputPortCollection_get__NewEnum_Proxy( 
    OutputPortCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB OutputPortCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE OutputPortCollection_GetAsText_Proxy( 
    OutputPortCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0442);


void __RPC_STUB OutputPortCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __OutputPortCollection_INTERFACE_DEFINED__ */


#ifndef __FacetCollection_INTERFACE_DEFINED__
#define __FacetCollection_INTERFACE_DEFINED__

/* interface FacetCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_FacetCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2B59DDBE-3CC2-11d4-812B-00A0C9AC19A9")
    FacetCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Facet **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ FacetCollection **out_ppFacetCol) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FacetCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FacetCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FacetCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FacetCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FacetCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FacetCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FacetCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FacetCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            FacetCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Facet **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            FacetCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            FacetCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalArray )( 
            FacetCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            FacetCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            FacetCollection * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            FacetCollection * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ FacetCollection **out_ppFacetCol);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            FacetCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } FacetCollectionVtbl;

    interface FacetCollection
    {
        CONST_VTBL struct FacetCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define FacetCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define FacetCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define FacetCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define FacetCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define FacetCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define FacetCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define FacetCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define FacetCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define FacetCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define FacetCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define FacetCollection_get_NormalArray(This,pVal)	\
    (This)->lpVtbl -> get_NormalArray(This,pVal)

#define FacetCollection_get_IndexArray(This,pVal)	\
    (This)->lpVtbl -> get_IndexArray(This,pVal)

#define FacetCollection_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define FacetCollection_Navigate(This,in_siNavigate,out_ppFacetCol)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppFacetCol)

#define FacetCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE FacetCollection_get_Item_Proxy( 
    FacetCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Facet **out_pParam);


void __RPC_STUB FacetCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE FacetCollection_get_Count_Proxy( 
    FacetCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB FacetCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FacetCollection_get_NewEnum_Proxy( 
    FacetCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FacetCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FacetCollection_get_NormalArray_Proxy( 
    FacetCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB FacetCollection_get_NormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FacetCollection_get_IndexArray_Proxy( 
    FacetCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB FacetCollection_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FacetCollection_get_SubComponent_Proxy( 
    FacetCollection * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB FacetCollection_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FacetCollection_Navigate_Proxy( 
    FacetCollection * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ FacetCollection **out_ppFacetCol);


void __RPC_STUB FacetCollection_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FacetCollection_get__NewEnum_Proxy( 
    FacetCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FacetCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FacetCollection_INTERFACE_DEFINED__ */


#ifndef __SegmentCollection_INTERFACE_DEFINED__
#define __SegmentCollection_INTERFACE_DEFINED__

/* interface SegmentCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SegmentCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2B59DDBF-3CC2-11d4-812B-00A0C9AC19A9")
    SegmentCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Segment **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ SegmentCollection **out_ppSegment) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SegmentCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SegmentCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SegmentCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SegmentCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SegmentCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SegmentCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SegmentCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SegmentCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            SegmentCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Segment **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            SegmentCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            SegmentCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalArray )( 
            SegmentCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            SegmentCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            SegmentCollection * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            SegmentCollection * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ SegmentCollection **out_ppSegment);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            SegmentCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } SegmentCollectionVtbl;

    interface SegmentCollection
    {
        CONST_VTBL struct SegmentCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define SegmentCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define SegmentCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define SegmentCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define SegmentCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define SegmentCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define SegmentCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define SegmentCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define SegmentCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define SegmentCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define SegmentCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define SegmentCollection_get_NormalArray(This,pVal)	\
    (This)->lpVtbl -> get_NormalArray(This,pVal)

#define SegmentCollection_get_IndexArray(This,pVal)	\
    (This)->lpVtbl -> get_IndexArray(This,pVal)

#define SegmentCollection_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define SegmentCollection_Navigate(This,in_siNavigate,out_ppSegment)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppSegment)

#define SegmentCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE SegmentCollection_get_Item_Proxy( 
    SegmentCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Segment **out_pParam);


void __RPC_STUB SegmentCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE SegmentCollection_get_Count_Proxy( 
    SegmentCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB SegmentCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SegmentCollection_get_NewEnum_Proxy( 
    SegmentCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SegmentCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SegmentCollection_get_NormalArray_Proxy( 
    SegmentCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB SegmentCollection_get_NormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SegmentCollection_get_IndexArray_Proxy( 
    SegmentCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB SegmentCollection_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SegmentCollection_get_SubComponent_Proxy( 
    SegmentCollection * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB SegmentCollection_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SegmentCollection_Navigate_Proxy( 
    SegmentCollection * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ SegmentCollection **out_ppSegment);


void __RPC_STUB SegmentCollection_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SegmentCollection_get__NewEnum_Proxy( 
    SegmentCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SegmentCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SegmentCollection_INTERFACE_DEFINED__ */


#ifndef __PointCollection_INTERFACE_DEFINED__
#define __PointCollection_INTERFACE_DEFINED__

/* interface PointCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PointCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2B59DDC0-3CC2-11d4-812B-00A0C9AC19A9")
    PointCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Point **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PositionArray( 
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **out_ppSubComponent) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ PointCollection **out_ppPointCol) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PointCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PointCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PointCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PointCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PointCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PointCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PointCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PointCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PointCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Point **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PointCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            PointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionArray )( 
            PointCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PositionArray )( 
            PointCollection * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalArray )( 
            PointCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            PointCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            PointCollection * This,
            /* [retval][out] */ SubComponent **out_ppSubComponent);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigate )( 
            PointCollection * This,
            /* [in] */ siNavigateComponentType in_siNavigate,
            /* [retval][out] */ PointCollection **out_ppPointCol);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } PointCollectionVtbl;

    interface PointCollection
    {
        CONST_VTBL struct PointCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PointCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PointCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PointCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PointCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PointCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PointCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PointCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PointCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PointCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PointCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define PointCollection_get_PositionArray(This,pVal)	\
    (This)->lpVtbl -> get_PositionArray(This,pVal)

#define PointCollection_put_PositionArray(This,newVal)	\
    (This)->lpVtbl -> put_PositionArray(This,newVal)

#define PointCollection_get_NormalArray(This,pVal)	\
    (This)->lpVtbl -> get_NormalArray(This,pVal)

#define PointCollection_get_IndexArray(This,pVal)	\
    (This)->lpVtbl -> get_IndexArray(This,pVal)

#define PointCollection_get_SubComponent(This,out_ppSubComponent)	\
    (This)->lpVtbl -> get_SubComponent(This,out_ppSubComponent)

#define PointCollection_Navigate(This,in_siNavigate,out_ppPointCol)	\
    (This)->lpVtbl -> Navigate(This,in_siNavigate,out_ppPointCol)

#define PointCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get_Item_Proxy( 
    PointCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Point **out_pParam);


void __RPC_STUB PointCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get_Count_Proxy( 
    PointCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PointCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get_NewEnum_Proxy( 
    PointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PointCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get_PositionArray_Proxy( 
    PointCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PointCollection_get_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PointCollection_put_PositionArray_Proxy( 
    PointCollection * This,
    /* [in] */ VARIANT newVal);


void __RPC_STUB PointCollection_put_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get_NormalArray_Proxy( 
    PointCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PointCollection_get_NormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get_IndexArray_Proxy( 
    PointCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB PointCollection_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get_SubComponent_Proxy( 
    PointCollection * This,
    /* [retval][out] */ SubComponent **out_ppSubComponent);


void __RPC_STUB PointCollection_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PointCollection_Navigate_Proxy( 
    PointCollection * This,
    /* [in] */ siNavigateComponentType in_siNavigate,
    /* [retval][out] */ PointCollection **out_ppPointCol);


void __RPC_STUB PointCollection_Navigate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PointCollection_get__NewEnum_Proxy( 
    PointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PointCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PointCollection_INTERFACE_DEFINED__ */


#ifndef __ClusterCollection_INTERFACE_DEFINED__
#define __ClusterCollection_INTERFACE_DEFINED__

/* interface ClusterCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ClusterCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4C4535BE-4861-11d4-812C-00A0C9AC19A9")
    ClusterCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Cluster **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClusterCollection **__MIDL_0175) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Cluster **__MIDL_0176) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0177) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClusterCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClusterCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClusterCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClusterCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClusterCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClusterCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClusterCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClusterCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ClusterCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Cluster **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ClusterCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ClusterCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ClusterCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClusterCollection **__MIDL_0175);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ClusterCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Cluster **__MIDL_0176);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ClusterCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ClusterCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0177);
        
        END_INTERFACE
    } ClusterCollectionVtbl;

    interface ClusterCollection
    {
        CONST_VTBL struct ClusterCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClusterCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClusterCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClusterCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClusterCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClusterCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClusterCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClusterCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClusterCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ClusterCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ClusterCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ClusterCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0175)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0175)

#define ClusterCollection_Find(This,in_filter,__MIDL_0176)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0176)

#define ClusterCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ClusterCollection_GetAsText(This,__MIDL_0177)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0177)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClusterCollection_get_Item_Proxy( 
    ClusterCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Cluster **out_pParam);


void __RPC_STUB ClusterCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClusterCollection_get_Count_Proxy( 
    ClusterCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ClusterCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClusterCollection_get_NewEnum_Proxy( 
    ClusterCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClusterCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClusterCollection_Filter_Proxy( 
    ClusterCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ClusterCollection **__MIDL_0175);


void __RPC_STUB ClusterCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClusterCollection_Find_Proxy( 
    ClusterCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Cluster **__MIDL_0176);


void __RPC_STUB ClusterCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClusterCollection_get__NewEnum_Proxy( 
    ClusterCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClusterCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClusterCollection_GetAsText_Proxy( 
    ClusterCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0177);


void __RPC_STUB ClusterCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClusterCollection_INTERFACE_DEFINED__ */


#ifndef __ClusterElementCollection_INTERFACE_DEFINED__
#define __ClusterElementCollection_INTERFACE_DEFINED__

/* interface ClusterElementCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ClusterElementCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("88CC088C-4861-11d4-812C-00A0C9AC19A9")
    ClusterElementCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT i,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Item( 
            /* [optional][in] */ VARIANT i,
            /* [in] */ VARIANT in_newVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Array( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Array( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemsByIndex( 
            /* [in] */ VARIANT vIndices,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ItemsByIndex( 
            /* [in] */ VARIANT vIndices,
            /* [in] */ VARIANT vValues) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindIndex( 
            /* [in] */ VARIANT vItem,
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClusterElementCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClusterElementCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClusterElementCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClusterElementCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClusterElementCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClusterElementCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClusterElementCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClusterElementCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ClusterElementCollection * This,
            /* [optional][in] */ VARIANT i,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Item )( 
            ClusterElementCollection * This,
            /* [optional][in] */ VARIANT i,
            /* [in] */ VARIANT in_newVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ClusterElementCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ClusterElementCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Array )( 
            ClusterElementCollection * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Array )( 
            ClusterElementCollection * This,
            /* [in] */ VARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemsByIndex )( 
            ClusterElementCollection * This,
            /* [in] */ VARIANT vIndices,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ItemsByIndex )( 
            ClusterElementCollection * This,
            /* [in] */ VARIANT vIndices,
            /* [in] */ VARIANT vValues);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindIndex )( 
            ClusterElementCollection * This,
            /* [in] */ VARIANT vItem,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ClusterElementCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } ClusterElementCollectionVtbl;

    interface ClusterElementCollection
    {
        CONST_VTBL struct ClusterElementCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClusterElementCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClusterElementCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClusterElementCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClusterElementCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClusterElementCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClusterElementCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClusterElementCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClusterElementCollection_get_Item(This,i,pVal)	\
    (This)->lpVtbl -> get_Item(This,i,pVal)

#define ClusterElementCollection_put_Item(This,i,in_newVal)	\
    (This)->lpVtbl -> put_Item(This,i,in_newVal)

#define ClusterElementCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ClusterElementCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ClusterElementCollection_get_Array(This,pVal)	\
    (This)->lpVtbl -> get_Array(This,pVal)

#define ClusterElementCollection_put_Array(This,pVal)	\
    (This)->lpVtbl -> put_Array(This,pVal)

#define ClusterElementCollection_get_ItemsByIndex(This,vIndices,pVal)	\
    (This)->lpVtbl -> get_ItemsByIndex(This,vIndices,pVal)

#define ClusterElementCollection_put_ItemsByIndex(This,vIndices,vValues)	\
    (This)->lpVtbl -> put_ItemsByIndex(This,vIndices,vValues)

#define ClusterElementCollection_FindIndex(This,vItem,vtRetVal)	\
    (This)->lpVtbl -> FindIndex(This,vItem,vtRetVal)

#define ClusterElementCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_get_Item_Proxy( 
    ClusterElementCollection * This,
    /* [optional][in] */ VARIANT i,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB ClusterElementCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_put_Item_Proxy( 
    ClusterElementCollection * This,
    /* [optional][in] */ VARIANT i,
    /* [in] */ VARIANT in_newVal);


void __RPC_STUB ClusterElementCollection_put_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_get_NewEnum_Proxy( 
    ClusterElementCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClusterElementCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_get_Count_Proxy( 
    ClusterElementCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ClusterElementCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_get_Array_Proxy( 
    ClusterElementCollection * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB ClusterElementCollection_get_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_put_Array_Proxy( 
    ClusterElementCollection * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB ClusterElementCollection_put_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_get_ItemsByIndex_Proxy( 
    ClusterElementCollection * This,
    /* [in] */ VARIANT vIndices,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB ClusterElementCollection_get_ItemsByIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_put_ItemsByIndex_Proxy( 
    ClusterElementCollection * This,
    /* [in] */ VARIANT vIndices,
    /* [in] */ VARIANT vValues);


void __RPC_STUB ClusterElementCollection_put_ItemsByIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_FindIndex_Proxy( 
    ClusterElementCollection * This,
    /* [in] */ VARIANT vItem,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ClusterElementCollection_FindIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClusterElementCollection_get__NewEnum_Proxy( 
    ClusterElementCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClusterElementCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClusterElementCollection_INTERFACE_DEFINED__ */


#ifndef __OperatorCollection_INTERFACE_DEFINED__
#define __OperatorCollection_INTERFACE_DEFINED__

/* interface OperatorCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_OperatorCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("63539736-5451-11d4-812E-00A0C9AC19A9")
    OperatorCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Operator **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ OperatorCollection **__MIDL_0461) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Operator **__MIDL_0462) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0463) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OperatorCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            OperatorCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            OperatorCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            OperatorCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            OperatorCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            OperatorCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            OperatorCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            OperatorCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            OperatorCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Operator **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            OperatorCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            OperatorCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            OperatorCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ OperatorCollection **__MIDL_0461);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            OperatorCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Operator **__MIDL_0462);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            OperatorCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            OperatorCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0463);
        
        END_INTERFACE
    } OperatorCollectionVtbl;

    interface OperatorCollection
    {
        CONST_VTBL struct OperatorCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define OperatorCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define OperatorCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define OperatorCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define OperatorCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define OperatorCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define OperatorCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define OperatorCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define OperatorCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define OperatorCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define OperatorCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define OperatorCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0461)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0461)

#define OperatorCollection_Find(This,in_filter,__MIDL_0462)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0462)

#define OperatorCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define OperatorCollection_GetAsText(This,__MIDL_0463)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0463)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE OperatorCollection_get_Item_Proxy( 
    OperatorCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Operator **out_pParam);


void __RPC_STUB OperatorCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE OperatorCollection_get_Count_Proxy( 
    OperatorCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB OperatorCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE OperatorCollection_get_NewEnum_Proxy( 
    OperatorCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB OperatorCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE OperatorCollection_Filter_Proxy( 
    OperatorCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ OperatorCollection **__MIDL_0461);


void __RPC_STUB OperatorCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE OperatorCollection_Find_Proxy( 
    OperatorCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Operator **__MIDL_0462);


void __RPC_STUB OperatorCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE OperatorCollection_get__NewEnum_Proxy( 
    OperatorCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB OperatorCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE OperatorCollection_GetAsText_Proxy( 
    OperatorCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0463);


void __RPC_STUB OperatorCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __OperatorCollection_INTERFACE_DEFINED__ */


#ifndef __EnvelopeCollection_INTERFACE_DEFINED__
#define __EnvelopeCollection_INTERFACE_DEFINED__

/* interface EnvelopeCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_EnvelopeCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A2D7B00C-8E7D-11d4-813F-00A0C9AC19A9")
    EnvelopeCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Envelope **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ EnvelopeCollection **__MIDL_0464) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Envelope **__MIDL_0465) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0466) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EnvelopeCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            EnvelopeCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            EnvelopeCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            EnvelopeCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            EnvelopeCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            EnvelopeCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            EnvelopeCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            EnvelopeCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            EnvelopeCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Envelope **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            EnvelopeCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            EnvelopeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            EnvelopeCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ EnvelopeCollection **__MIDL_0464);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            EnvelopeCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Envelope **__MIDL_0465);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            EnvelopeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            EnvelopeCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0466);
        
        END_INTERFACE
    } EnvelopeCollectionVtbl;

    interface EnvelopeCollection
    {
        CONST_VTBL struct EnvelopeCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define EnvelopeCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define EnvelopeCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define EnvelopeCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define EnvelopeCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define EnvelopeCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define EnvelopeCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define EnvelopeCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define EnvelopeCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define EnvelopeCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define EnvelopeCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define EnvelopeCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0464)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0464)

#define EnvelopeCollection_Find(This,in_filter,__MIDL_0465)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0465)

#define EnvelopeCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define EnvelopeCollection_GetAsText(This,__MIDL_0466)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0466)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE EnvelopeCollection_get_Item_Proxy( 
    EnvelopeCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Envelope **out_pParam);


void __RPC_STUB EnvelopeCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE EnvelopeCollection_get_Count_Proxy( 
    EnvelopeCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB EnvelopeCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE EnvelopeCollection_get_NewEnum_Proxy( 
    EnvelopeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB EnvelopeCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE EnvelopeCollection_Filter_Proxy( 
    EnvelopeCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ EnvelopeCollection **__MIDL_0464);


void __RPC_STUB EnvelopeCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE EnvelopeCollection_Find_Proxy( 
    EnvelopeCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Envelope **__MIDL_0465);


void __RPC_STUB EnvelopeCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE EnvelopeCollection_get__NewEnum_Proxy( 
    EnvelopeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB EnvelopeCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE EnvelopeCollection_GetAsText_Proxy( 
    EnvelopeCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0466);


void __RPC_STUB EnvelopeCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __EnvelopeCollection_INTERFACE_DEFINED__ */


#ifndef __ConstraintCollection_INTERFACE_DEFINED__
#define __ConstraintCollection_INTERFACE_DEFINED__

/* interface ConstraintCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ConstraintCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6C414F5C-574C-11d4-812E-00A0C9AC19A9")
    ConstraintCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Constraint **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ConstraintCollection **__MIDL_0467) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Constraint **__MIDL_0468) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0469) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ConstraintCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ConstraintCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ConstraintCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ConstraintCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ConstraintCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ConstraintCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ConstraintCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ConstraintCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ConstraintCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Constraint **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ConstraintCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ConstraintCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ConstraintCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ConstraintCollection **__MIDL_0467);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ConstraintCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Constraint **__MIDL_0468);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ConstraintCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ConstraintCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0469);
        
        END_INTERFACE
    } ConstraintCollectionVtbl;

    interface ConstraintCollection
    {
        CONST_VTBL struct ConstraintCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ConstraintCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ConstraintCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ConstraintCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ConstraintCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ConstraintCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ConstraintCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ConstraintCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ConstraintCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ConstraintCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ConstraintCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ConstraintCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0467)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0467)

#define ConstraintCollection_Find(This,in_filter,__MIDL_0468)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0468)

#define ConstraintCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ConstraintCollection_GetAsText(This,__MIDL_0469)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0469)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ConstraintCollection_get_Item_Proxy( 
    ConstraintCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Constraint **out_pParam);


void __RPC_STUB ConstraintCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ConstraintCollection_get_Count_Proxy( 
    ConstraintCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ConstraintCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ConstraintCollection_get_NewEnum_Proxy( 
    ConstraintCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ConstraintCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConstraintCollection_Filter_Proxy( 
    ConstraintCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ConstraintCollection **__MIDL_0467);


void __RPC_STUB ConstraintCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConstraintCollection_Find_Proxy( 
    ConstraintCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Constraint **__MIDL_0468);


void __RPC_STUB ConstraintCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ConstraintCollection_get__NewEnum_Proxy( 
    ConstraintCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ConstraintCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConstraintCollection_GetAsText_Proxy( 
    ConstraintCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0469);


void __RPC_STUB ConstraintCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ConstraintCollection_INTERFACE_DEFINED__ */


#ifndef __ShaderCollection_INTERFACE_DEFINED__
#define __ShaderCollection_INTERFACE_DEFINED__

/* interface ShaderCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ShaderCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6C285294-55CF-11d4-ACDE-0090275802BF")
    ShaderCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Shader **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ShaderCollection **__MIDL_0470) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Shader **__MIDL_0471) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0472) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ShaderCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ShaderCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ShaderCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ShaderCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ShaderCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ShaderCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ShaderCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ShaderCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ShaderCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Shader **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ShaderCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ShaderCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ShaderCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ShaderCollection **__MIDL_0470);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ShaderCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Shader **__MIDL_0471);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ShaderCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ShaderCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0472);
        
        END_INTERFACE
    } ShaderCollectionVtbl;

    interface ShaderCollection
    {
        CONST_VTBL struct ShaderCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ShaderCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ShaderCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ShaderCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ShaderCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ShaderCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ShaderCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ShaderCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ShaderCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ShaderCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ShaderCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ShaderCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0470)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0470)

#define ShaderCollection_Find(This,in_filter,__MIDL_0471)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0471)

#define ShaderCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ShaderCollection_GetAsText(This,__MIDL_0472)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0472)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ShaderCollection_get_Item_Proxy( 
    ShaderCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Shader **out_pParam);


void __RPC_STUB ShaderCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ShaderCollection_get_Count_Proxy( 
    ShaderCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ShaderCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ShaderCollection_get_NewEnum_Proxy( 
    ShaderCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ShaderCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ShaderCollection_Filter_Proxy( 
    ShaderCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ShaderCollection **__MIDL_0470);


void __RPC_STUB ShaderCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ShaderCollection_Find_Proxy( 
    ShaderCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Shader **__MIDL_0471);


void __RPC_STUB ShaderCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ShaderCollection_get__NewEnum_Proxy( 
    ShaderCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ShaderCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ShaderCollection_GetAsText_Proxy( 
    ShaderCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0472);


void __RPC_STUB ShaderCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ShaderCollection_INTERFACE_DEFINED__ */


#ifndef __ImageClipCollection_INTERFACE_DEFINED__
#define __ImageClipCollection_INTERFACE_DEFINED__

/* interface ImageClipCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ImageClipCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0D9574BF-1909-4699-A7C2-A4E586EEBF83")
    ImageClipCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ImageClip **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ImageClipCollection **__MIDL_0473) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ImageClip **__MIDL_0474) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0475) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImageClipCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ImageClipCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ImageClipCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ImageClipCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ImageClipCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ImageClipCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ImageClipCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ImageClipCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ImageClipCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ImageClip **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ImageClipCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ImageClipCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ImageClipCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ImageClipCollection **__MIDL_0473);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ImageClipCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ImageClip **__MIDL_0474);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ImageClipCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ImageClipCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0475);
        
        END_INTERFACE
    } ImageClipCollectionVtbl;

    interface ImageClipCollection
    {
        CONST_VTBL struct ImageClipCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ImageClipCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ImageClipCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ImageClipCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ImageClipCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ImageClipCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ImageClipCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ImageClipCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ImageClipCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ImageClipCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ImageClipCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ImageClipCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0473)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0473)

#define ImageClipCollection_Find(This,in_filter,__MIDL_0474)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0474)

#define ImageClipCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ImageClipCollection_GetAsText(This,__MIDL_0475)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0475)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ImageClipCollection_get_Item_Proxy( 
    ImageClipCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ImageClip **out_pParam);


void __RPC_STUB ImageClipCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ImageClipCollection_get_Count_Proxy( 
    ImageClipCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ImageClipCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ImageClipCollection_get_NewEnum_Proxy( 
    ImageClipCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ImageClipCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ImageClipCollection_Filter_Proxy( 
    ImageClipCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ImageClipCollection **__MIDL_0473);


void __RPC_STUB ImageClipCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ImageClipCollection_Find_Proxy( 
    ImageClipCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ImageClip **__MIDL_0474);


void __RPC_STUB ImageClipCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ImageClipCollection_get__NewEnum_Proxy( 
    ImageClipCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ImageClipCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ImageClipCollection_GetAsText_Proxy( 
    ImageClipCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0475);


void __RPC_STUB ImageClipCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ImageClipCollection_INTERFACE_DEFINED__ */


#ifndef __TextureLayerCollection_INTERFACE_DEFINED__
#define __TextureLayerCollection_INTERFACE_DEFINED__

/* interface TextureLayerCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_TextureLayerCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7CB10EE6-B732-4ea8-BB61-C60590973D26")
    TextureLayerCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ TextureLayer **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TextureLayerCollection **__MIDL_0515) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ TextureLayer **__MIDL_0516) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0517) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TextureLayerCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TextureLayerCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TextureLayerCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TextureLayerCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TextureLayerCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TextureLayerCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TextureLayerCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TextureLayerCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            TextureLayerCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ TextureLayer **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            TextureLayerCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            TextureLayerCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            TextureLayerCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TextureLayerCollection **__MIDL_0515);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            TextureLayerCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ TextureLayer **__MIDL_0516);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            TextureLayerCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0517);
        
        END_INTERFACE
    } TextureLayerCollectionVtbl;

    interface TextureLayerCollection
    {
        CONST_VTBL struct TextureLayerCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TextureLayerCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TextureLayerCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TextureLayerCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TextureLayerCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TextureLayerCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TextureLayerCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TextureLayerCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TextureLayerCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define TextureLayerCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define TextureLayerCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define TextureLayerCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0515)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0515)

#define TextureLayerCollection_Find(This,in_filter,__MIDL_0516)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0516)

#define TextureLayerCollection_GetAsText(This,__MIDL_0517)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0517)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE TextureLayerCollection_get_Item_Proxy( 
    TextureLayerCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ TextureLayer **out_pParam);


void __RPC_STUB TextureLayerCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE TextureLayerCollection_get_Count_Proxy( 
    TextureLayerCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB TextureLayerCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TextureLayerCollection_get__NewEnum_Proxy( 
    TextureLayerCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TextureLayerCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TextureLayerCollection_Filter_Proxy( 
    TextureLayerCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ TextureLayerCollection **__MIDL_0515);


void __RPC_STUB TextureLayerCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TextureLayerCollection_Find_Proxy( 
    TextureLayerCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ TextureLayer **__MIDL_0516);


void __RPC_STUB TextureLayerCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TextureLayerCollection_GetAsText_Proxy( 
    TextureLayerCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0517);


void __RPC_STUB TextureLayerCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TextureLayerCollection_INTERFACE_DEFINED__ */


#ifndef __TextureLayerPortCollection_INTERFACE_DEFINED__
#define __TextureLayerPortCollection_INTERFACE_DEFINED__

/* interface TextureLayerPortCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_TextureLayerPortCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("66BC189B-1BB9-4962-AD75-7C3C4BCEB559")
    TextureLayerPortCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ TextureLayerPort **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TextureLayerPortCollection **__MIDL_0518) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ TextureLayerPort **__MIDL_0519) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0520) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TextureLayerPortCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TextureLayerPortCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TextureLayerPortCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TextureLayerPortCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TextureLayerPortCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TextureLayerPortCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TextureLayerPortCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TextureLayerPortCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            TextureLayerPortCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ TextureLayerPort **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            TextureLayerPortCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            TextureLayerPortCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            TextureLayerPortCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TextureLayerPortCollection **__MIDL_0518);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            TextureLayerPortCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ TextureLayerPort **__MIDL_0519);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            TextureLayerPortCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0520);
        
        END_INTERFACE
    } TextureLayerPortCollectionVtbl;

    interface TextureLayerPortCollection
    {
        CONST_VTBL struct TextureLayerPortCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TextureLayerPortCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TextureLayerPortCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TextureLayerPortCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TextureLayerPortCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TextureLayerPortCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TextureLayerPortCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TextureLayerPortCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TextureLayerPortCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define TextureLayerPortCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define TextureLayerPortCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define TextureLayerPortCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0518)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0518)

#define TextureLayerPortCollection_Find(This,in_filter,__MIDL_0519)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0519)

#define TextureLayerPortCollection_GetAsText(This,__MIDL_0520)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0520)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE TextureLayerPortCollection_get_Item_Proxy( 
    TextureLayerPortCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ TextureLayerPort **out_pParam);


void __RPC_STUB TextureLayerPortCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE TextureLayerPortCollection_get_Count_Proxy( 
    TextureLayerPortCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB TextureLayerPortCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TextureLayerPortCollection_get__NewEnum_Proxy( 
    TextureLayerPortCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TextureLayerPortCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TextureLayerPortCollection_Filter_Proxy( 
    TextureLayerPortCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ TextureLayerPortCollection **__MIDL_0518);


void __RPC_STUB TextureLayerPortCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TextureLayerPortCollection_Find_Proxy( 
    TextureLayerPortCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ TextureLayerPort **__MIDL_0519);


void __RPC_STUB TextureLayerPortCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TextureLayerPortCollection_GetAsText_Proxy( 
    TextureLayerPortCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0520);


void __RPC_STUB TextureLayerPortCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TextureLayerPortCollection_INTERFACE_DEFINED__ */


#ifndef __ConnectionPointCollection_INTERFACE_DEFINED__
#define __ConnectionPointCollection_INTERFACE_DEFINED__

/* interface ConnectionPointCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ConnectionPointCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6C285295-55CF-11d4-ACDE-0090275802BF")
    ConnectionPointCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ConnectionPoint **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ConnectionPointCollection **__MIDL_0476) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ConnectionPoint **__MIDL_0477) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0478) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ConnectionPointCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ConnectionPointCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ConnectionPointCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ConnectionPointCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ConnectionPointCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ConnectionPointCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ConnectionPointCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ConnectionPointCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ConnectionPointCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ConnectionPoint **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ConnectionPointCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ConnectionPointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ConnectionPointCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ConnectionPointCollection **__MIDL_0476);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ConnectionPointCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ConnectionPoint **__MIDL_0477);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ConnectionPointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ConnectionPointCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0478);
        
        END_INTERFACE
    } ConnectionPointCollectionVtbl;

    interface ConnectionPointCollection
    {
        CONST_VTBL struct ConnectionPointCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ConnectionPointCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ConnectionPointCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ConnectionPointCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ConnectionPointCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ConnectionPointCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ConnectionPointCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ConnectionPointCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ConnectionPointCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ConnectionPointCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ConnectionPointCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ConnectionPointCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0476)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0476)

#define ConnectionPointCollection_Find(This,in_filter,__MIDL_0477)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0477)

#define ConnectionPointCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ConnectionPointCollection_GetAsText(This,__MIDL_0478)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0478)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ConnectionPointCollection_get_Item_Proxy( 
    ConnectionPointCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ConnectionPoint **out_pParam);


void __RPC_STUB ConnectionPointCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ConnectionPointCollection_get_Count_Proxy( 
    ConnectionPointCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ConnectionPointCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ConnectionPointCollection_get_NewEnum_Proxy( 
    ConnectionPointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ConnectionPointCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConnectionPointCollection_Filter_Proxy( 
    ConnectionPointCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ConnectionPointCollection **__MIDL_0476);


void __RPC_STUB ConnectionPointCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConnectionPointCollection_Find_Proxy( 
    ConnectionPointCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ConnectionPoint **__MIDL_0477);


void __RPC_STUB ConnectionPointCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ConnectionPointCollection_get__NewEnum_Proxy( 
    ConnectionPointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ConnectionPointCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConnectionPointCollection_GetAsText_Proxy( 
    ConnectionPointCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0478);


void __RPC_STUB ConnectionPointCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ConnectionPointCollection_INTERFACE_DEFINED__ */


#ifndef __ChainBoneCollection_INTERFACE_DEFINED__
#define __ChainBoneCollection_INTERFACE_DEFINED__

/* interface ChainBoneCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ChainBoneCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8F0B49B1-5F16-11d4-ACE2-0090275802BF")
    ChainBoneCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ChainBone **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ChainBoneCollection **__MIDL_0482) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ChainBone **__MIDL_0483) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0484) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ChainBoneCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ChainBoneCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ChainBoneCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ChainBoneCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ChainBoneCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ChainBoneCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ChainBoneCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ChainBoneCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ChainBoneCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ChainBone **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ChainBoneCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ChainBoneCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ChainBoneCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ChainBoneCollection **__MIDL_0482);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ChainBoneCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ChainBone **__MIDL_0483);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ChainBoneCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ChainBoneCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0484);
        
        END_INTERFACE
    } ChainBoneCollectionVtbl;

    interface ChainBoneCollection
    {
        CONST_VTBL struct ChainBoneCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ChainBoneCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ChainBoneCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ChainBoneCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ChainBoneCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ChainBoneCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ChainBoneCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ChainBoneCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ChainBoneCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ChainBoneCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ChainBoneCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ChainBoneCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0482)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0482)

#define ChainBoneCollection_Find(This,in_filter,__MIDL_0483)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0483)

#define ChainBoneCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ChainBoneCollection_GetAsText(This,__MIDL_0484)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0484)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ChainBoneCollection_get_Item_Proxy( 
    ChainBoneCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ChainBone **out_pParam);


void __RPC_STUB ChainBoneCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ChainBoneCollection_get_Count_Proxy( 
    ChainBoneCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ChainBoneCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ChainBoneCollection_get_NewEnum_Proxy( 
    ChainBoneCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ChainBoneCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ChainBoneCollection_Filter_Proxy( 
    ChainBoneCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ChainBoneCollection **__MIDL_0482);


void __RPC_STUB ChainBoneCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ChainBoneCollection_Find_Proxy( 
    ChainBoneCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ChainBone **__MIDL_0483);


void __RPC_STUB ChainBoneCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ChainBoneCollection_get__NewEnum_Proxy( 
    ChainBoneCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ChainBoneCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ChainBoneCollection_GetAsText_Proxy( 
    ChainBoneCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0484);


void __RPC_STUB ChainBoneCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ChainBoneCollection_INTERFACE_DEFINED__ */


#ifndef __PassCollection_INTERFACE_DEFINED__
#define __PassCollection_INTERFACE_DEFINED__

/* interface PassCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PassCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8DD706A2-649C-11d4-811E-00A024189A69")
    PassCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Pass **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PassCollection **__MIDL_0449) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Pass **__MIDL_0450) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0451) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PassCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PassCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PassCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PassCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PassCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PassCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PassCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PassCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PassCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Pass **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PassCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            PassCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            PassCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PassCollection **__MIDL_0449);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            PassCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Pass **__MIDL_0450);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PassCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            PassCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0451);
        
        END_INTERFACE
    } PassCollectionVtbl;

    interface PassCollection
    {
        CONST_VTBL struct PassCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PassCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PassCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PassCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PassCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PassCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PassCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PassCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PassCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PassCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PassCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define PassCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0449)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0449)

#define PassCollection_Find(This,in_filter,__MIDL_0450)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0450)

#define PassCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define PassCollection_GetAsText(This,__MIDL_0451)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0451)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PassCollection_get_Item_Proxy( 
    PassCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Pass **out_pParam);


void __RPC_STUB PassCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PassCollection_get_Count_Proxy( 
    PassCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PassCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PassCollection_get_NewEnum_Proxy( 
    PassCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PassCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PassCollection_Filter_Proxy( 
    PassCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ PassCollection **__MIDL_0449);


void __RPC_STUB PassCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PassCollection_Find_Proxy( 
    PassCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Pass **__MIDL_0450);


void __RPC_STUB PassCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PassCollection_get__NewEnum_Proxy( 
    PassCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PassCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PassCollection_GetAsText_Proxy( 
    PassCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0451);


void __RPC_STUB PassCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PassCollection_INTERFACE_DEFINED__ */


#ifndef __LayerCollection_INTERFACE_DEFINED__
#define __LayerCollection_INTERFACE_DEFINED__

/* interface LayerCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_LayerCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8DD706A1-649C-11d4-811E-00A024189A69")
    LayerCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Layer **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ LayerCollection **__MIDL_0446) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Layer **__MIDL_0447) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0448) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct LayerCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            LayerCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            LayerCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            LayerCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            LayerCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            LayerCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            LayerCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            LayerCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            LayerCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Layer **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            LayerCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            LayerCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            LayerCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ LayerCollection **__MIDL_0446);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            LayerCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Layer **__MIDL_0447);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            LayerCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            LayerCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0448);
        
        END_INTERFACE
    } LayerCollectionVtbl;

    interface LayerCollection
    {
        CONST_VTBL struct LayerCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define LayerCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define LayerCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define LayerCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define LayerCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define LayerCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define LayerCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define LayerCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define LayerCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define LayerCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define LayerCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define LayerCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0446)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0446)

#define LayerCollection_Find(This,in_filter,__MIDL_0447)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0447)

#define LayerCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define LayerCollection_GetAsText(This,__MIDL_0448)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0448)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE LayerCollection_get_Item_Proxy( 
    LayerCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Layer **out_pParam);


void __RPC_STUB LayerCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE LayerCollection_get_Count_Proxy( 
    LayerCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB LayerCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE LayerCollection_get_NewEnum_Proxy( 
    LayerCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB LayerCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LayerCollection_Filter_Proxy( 
    LayerCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ LayerCollection **__MIDL_0446);


void __RPC_STUB LayerCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LayerCollection_Find_Proxy( 
    LayerCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Layer **__MIDL_0447);


void __RPC_STUB LayerCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE LayerCollection_get__NewEnum_Proxy( 
    LayerCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB LayerCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LayerCollection_GetAsText_Proxy( 
    LayerCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0448);


void __RPC_STUB LayerCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __LayerCollection_INTERFACE_DEFINED__ */


#ifndef __TriangleCollection_INTERFACE_DEFINED__
#define __TriangleCollection_INTERFACE_DEFINED__

/* interface TriangleCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_TriangleCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D4507101-750E-11d4-ACE4-0090275802BF")
    TriangleCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Triangle **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Array( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PolygonNodeNormalArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ColorArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UVArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TriangleCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TriangleCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TriangleCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TriangleCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TriangleCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TriangleCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TriangleCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TriangleCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            TriangleCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Triangle **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            TriangleCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            TriangleCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Array )( 
            TriangleCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionArray )( 
            TriangleCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PolygonNodeNormalArray )( 
            TriangleCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColorArray )( 
            TriangleCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UVArray )( 
            TriangleCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            TriangleCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            TriangleCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } TriangleCollectionVtbl;

    interface TriangleCollection
    {
        CONST_VTBL struct TriangleCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TriangleCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TriangleCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TriangleCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TriangleCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TriangleCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TriangleCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TriangleCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TriangleCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define TriangleCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define TriangleCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define TriangleCollection_get_Array(This,out_pArray)	\
    (This)->lpVtbl -> get_Array(This,out_pArray)

#define TriangleCollection_get_PositionArray(This,out_pArray)	\
    (This)->lpVtbl -> get_PositionArray(This,out_pArray)

#define TriangleCollection_get_PolygonNodeNormalArray(This,out_pArray)	\
    (This)->lpVtbl -> get_PolygonNodeNormalArray(This,out_pArray)

#define TriangleCollection_get_ColorArray(This,out_pArray)	\
    (This)->lpVtbl -> get_ColorArray(This,out_pArray)

#define TriangleCollection_get_UVArray(This,out_pArray)	\
    (This)->lpVtbl -> get_UVArray(This,out_pArray)

#define TriangleCollection_get_IndexArray(This,out_pArray)	\
    (This)->lpVtbl -> get_IndexArray(This,out_pArray)

#define TriangleCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_Item_Proxy( 
    TriangleCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Triangle **out_pParam);


void __RPC_STUB TriangleCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_Count_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB TriangleCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_NewEnum_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TriangleCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_Array_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TriangleCollection_get_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_PositionArray_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TriangleCollection_get_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_PolygonNodeNormalArray_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TriangleCollection_get_PolygonNodeNormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_ColorArray_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TriangleCollection_get_ColorArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_UVArray_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TriangleCollection_get_UVArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get_IndexArray_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TriangleCollection_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TriangleCollection_get__NewEnum_Proxy( 
    TriangleCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TriangleCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TriangleCollection_INTERFACE_DEFINED__ */


#ifndef __TrianglePointCollection_INTERFACE_DEFINED__
#define __TrianglePointCollection_INTERFACE_DEFINED__

/* interface TrianglePointCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_TrianglePointCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("73D2DEE2-7518-11d4-ACE4-0090275802BF")
    TrianglePointCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ TrianglePoint **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Array( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ColorArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UVArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IndexArray( 
            /* [retval][out] */ VARIANT *out_pArray) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TrianglePointCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TrianglePointCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TrianglePointCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TrianglePointCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TrianglePointCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TrianglePointCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TrianglePointCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TrianglePointCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            TrianglePointCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ TrianglePoint **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            TrianglePointCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            TrianglePointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Array )( 
            TrianglePointCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionArray )( 
            TrianglePointCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalArray )( 
            TrianglePointCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColorArray )( 
            TrianglePointCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UVArray )( 
            TrianglePointCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IndexArray )( 
            TrianglePointCollection * This,
            /* [retval][out] */ VARIANT *out_pArray);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            TrianglePointCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } TrianglePointCollectionVtbl;

    interface TrianglePointCollection
    {
        CONST_VTBL struct TrianglePointCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TrianglePointCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TrianglePointCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TrianglePointCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TrianglePointCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TrianglePointCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TrianglePointCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TrianglePointCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TrianglePointCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define TrianglePointCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define TrianglePointCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define TrianglePointCollection_get_Array(This,out_pArray)	\
    (This)->lpVtbl -> get_Array(This,out_pArray)

#define TrianglePointCollection_get_PositionArray(This,out_pArray)	\
    (This)->lpVtbl -> get_PositionArray(This,out_pArray)

#define TrianglePointCollection_get_NormalArray(This,out_pArray)	\
    (This)->lpVtbl -> get_NormalArray(This,out_pArray)

#define TrianglePointCollection_get_ColorArray(This,out_pArray)	\
    (This)->lpVtbl -> get_ColorArray(This,out_pArray)

#define TrianglePointCollection_get_UVArray(This,out_pArray)	\
    (This)->lpVtbl -> get_UVArray(This,out_pArray)

#define TrianglePointCollection_get_IndexArray(This,out_pArray)	\
    (This)->lpVtbl -> get_IndexArray(This,out_pArray)

#define TrianglePointCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_Item_Proxy( 
    TrianglePointCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ TrianglePoint **out_pParam);


void __RPC_STUB TrianglePointCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_Count_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB TrianglePointCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_NewEnum_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TrianglePointCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_Array_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePointCollection_get_Array_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_PositionArray_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePointCollection_get_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_NormalArray_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePointCollection_get_NormalArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_ColorArray_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePointCollection_get_ColorArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_UVArray_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePointCollection_get_UVArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get_IndexArray_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ VARIANT *out_pArray);


void __RPC_STUB TrianglePointCollection_get_IndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TrianglePointCollection_get__NewEnum_Proxy( 
    TrianglePointCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TrianglePointCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TrianglePointCollection_INTERFACE_DEFINED__ */


#ifndef __ParticleCollection_INTERFACE_DEFINED__
#define __ParticleCollection_INTERFACE_DEFINED__

/* interface ParticleCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ParticleCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("211D8F02-8A81-11d4-80CA-0090275AE734")
    ParticleCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Particle **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AgeArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvAgeArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AgeArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vAgeArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DensityArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvDensityArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PositionArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvPositionArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PositionArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vPositionArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SizeArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSizeArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SizeArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSizeArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AgeLimitArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvAgeLimitArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AgeLimitArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_pvAgeLimitArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IDArray( 
            /* [retval][out] */ VARIANT *out_pvIDArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PressureArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvPressureArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VelocityArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvVelocityArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_VelocityArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vVelocityArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ColorArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvColorArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ColorArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vColorArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AngularVelocityArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvAngularVelocityArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AngularVelocityArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vAngularVelocityArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PathLengthArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvPathLengthArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SeedArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSeedArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SeedArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSeedArray) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ LONG in_lID,
            /* [retval][out] */ Particle **out_pParticle) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SpriteAngleArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSpriteAngleArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SpriteAngleArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSpriteAngleArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RotationArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvRotationArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RotationArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vRotationArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SpriteIndexArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSpriteIndexArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SpriteIndexArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSpriteIndexArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TypeIDArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvTypeIDArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TypeIDArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vTypeIDArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MassArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvMassArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MassArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vMassArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UVWArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvUVWArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UVWArray( 
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vUVWArray) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParticleCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParticleCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParticleCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParticleCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParticleCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParticleCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParticleCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Particle **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ParticleCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ParticleCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AgeArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvAgeArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AgeArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vAgeArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DensityArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvDensityArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PositionArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvPositionArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PositionArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vPositionArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SizeArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSizeArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SizeArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSizeArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AgeLimitArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvAgeLimitArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AgeLimitArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_pvAgeLimitArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IDArray )( 
            ParticleCollection * This,
            /* [retval][out] */ VARIANT *out_pvIDArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PressureArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvPressureArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VelocityArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvVelocityArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_VelocityArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vVelocityArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColorArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvColorArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ColorArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vColorArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AngularVelocityArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvAngularVelocityArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AngularVelocityArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vAngularVelocityArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathLengthArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvPathLengthArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SeedArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSeedArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SeedArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSeedArray);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ParticleCollection * This,
            /* [in] */ LONG in_lID,
            /* [retval][out] */ Particle **out_pParticle);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SpriteAngleArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSpriteAngleArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SpriteAngleArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSpriteAngleArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RotationArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvRotationArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RotationArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vRotationArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SpriteIndexArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvSpriteIndexArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SpriteIndexArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vSpriteIndexArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TypeIDArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvTypeIDArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TypeIDArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vTypeIDArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MassArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvMassArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MassArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vMassArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UVWArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [retval][out] */ VARIANT *out_pvUVWArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UVWArray )( 
            ParticleCollection * This,
            /* [optional][in] */ VARIANT in_vParticleIDArray,
            /* [in] */ VARIANT in_vUVWArray);
        
        END_INTERFACE
    } ParticleCollectionVtbl;

    interface ParticleCollection
    {
        CONST_VTBL struct ParticleCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ParticleCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ParticleCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ParticleCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ParticleCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ParticleCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ParticleCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ParticleCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ParticleCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ParticleCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ParticleCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ParticleCollection_get_AgeArray(This,in_vParticleIDArray,out_pvAgeArray)	\
    (This)->lpVtbl -> get_AgeArray(This,in_vParticleIDArray,out_pvAgeArray)

#define ParticleCollection_put_AgeArray(This,in_vParticleIDArray,in_vAgeArray)	\
    (This)->lpVtbl -> put_AgeArray(This,in_vParticleIDArray,in_vAgeArray)

#define ParticleCollection_get_DensityArray(This,in_vParticleIDArray,out_pvDensityArray)	\
    (This)->lpVtbl -> get_DensityArray(This,in_vParticleIDArray,out_pvDensityArray)

#define ParticleCollection_get_PositionArray(This,in_vParticleIDArray,out_pvPositionArray)	\
    (This)->lpVtbl -> get_PositionArray(This,in_vParticleIDArray,out_pvPositionArray)

#define ParticleCollection_put_PositionArray(This,in_vParticleIDArray,in_vPositionArray)	\
    (This)->lpVtbl -> put_PositionArray(This,in_vParticleIDArray,in_vPositionArray)

#define ParticleCollection_get_SizeArray(This,in_vParticleIDArray,out_pvSizeArray)	\
    (This)->lpVtbl -> get_SizeArray(This,in_vParticleIDArray,out_pvSizeArray)

#define ParticleCollection_put_SizeArray(This,in_vParticleIDArray,in_vSizeArray)	\
    (This)->lpVtbl -> put_SizeArray(This,in_vParticleIDArray,in_vSizeArray)

#define ParticleCollection_get_AgeLimitArray(This,in_vParticleIDArray,out_pvAgeLimitArray)	\
    (This)->lpVtbl -> get_AgeLimitArray(This,in_vParticleIDArray,out_pvAgeLimitArray)

#define ParticleCollection_put_AgeLimitArray(This,in_vParticleIDArray,in_pvAgeLimitArray)	\
    (This)->lpVtbl -> put_AgeLimitArray(This,in_vParticleIDArray,in_pvAgeLimitArray)

#define ParticleCollection_get_IDArray(This,out_pvIDArray)	\
    (This)->lpVtbl -> get_IDArray(This,out_pvIDArray)

#define ParticleCollection_get_PressureArray(This,in_vParticleIDArray,out_pvPressureArray)	\
    (This)->lpVtbl -> get_PressureArray(This,in_vParticleIDArray,out_pvPressureArray)

#define ParticleCollection_get_VelocityArray(This,in_vParticleIDArray,out_pvVelocityArray)	\
    (This)->lpVtbl -> get_VelocityArray(This,in_vParticleIDArray,out_pvVelocityArray)

#define ParticleCollection_put_VelocityArray(This,in_vParticleIDArray,in_vVelocityArray)	\
    (This)->lpVtbl -> put_VelocityArray(This,in_vParticleIDArray,in_vVelocityArray)

#define ParticleCollection_get_ColorArray(This,in_vParticleIDArray,out_pvColorArray)	\
    (This)->lpVtbl -> get_ColorArray(This,in_vParticleIDArray,out_pvColorArray)

#define ParticleCollection_put_ColorArray(This,in_vParticleIDArray,in_vColorArray)	\
    (This)->lpVtbl -> put_ColorArray(This,in_vParticleIDArray,in_vColorArray)

#define ParticleCollection_get_AngularVelocityArray(This,in_vParticleIDArray,out_pvAngularVelocityArray)	\
    (This)->lpVtbl -> get_AngularVelocityArray(This,in_vParticleIDArray,out_pvAngularVelocityArray)

#define ParticleCollection_put_AngularVelocityArray(This,in_vParticleIDArray,in_vAngularVelocityArray)	\
    (This)->lpVtbl -> put_AngularVelocityArray(This,in_vParticleIDArray,in_vAngularVelocityArray)

#define ParticleCollection_get_PathLengthArray(This,in_vParticleIDArray,out_pvPathLengthArray)	\
    (This)->lpVtbl -> get_PathLengthArray(This,in_vParticleIDArray,out_pvPathLengthArray)

#define ParticleCollection_get_SeedArray(This,in_vParticleIDArray,out_pvSeedArray)	\
    (This)->lpVtbl -> get_SeedArray(This,in_vParticleIDArray,out_pvSeedArray)

#define ParticleCollection_put_SeedArray(This,in_vParticleIDArray,in_vSeedArray)	\
    (This)->lpVtbl -> put_SeedArray(This,in_vParticleIDArray,in_vSeedArray)

#define ParticleCollection_Find(This,in_lID,out_pParticle)	\
    (This)->lpVtbl -> Find(This,in_lID,out_pParticle)

#define ParticleCollection_get_SpriteAngleArray(This,in_vParticleIDArray,out_pvSpriteAngleArray)	\
    (This)->lpVtbl -> get_SpriteAngleArray(This,in_vParticleIDArray,out_pvSpriteAngleArray)

#define ParticleCollection_put_SpriteAngleArray(This,in_vParticleIDArray,in_vSpriteAngleArray)	\
    (This)->lpVtbl -> put_SpriteAngleArray(This,in_vParticleIDArray,in_vSpriteAngleArray)

#define ParticleCollection_get_RotationArray(This,in_vParticleIDArray,out_pvRotationArray)	\
    (This)->lpVtbl -> get_RotationArray(This,in_vParticleIDArray,out_pvRotationArray)

#define ParticleCollection_put_RotationArray(This,in_vParticleIDArray,in_vRotationArray)	\
    (This)->lpVtbl -> put_RotationArray(This,in_vParticleIDArray,in_vRotationArray)

#define ParticleCollection_get_SpriteIndexArray(This,in_vParticleIDArray,out_pvSpriteIndexArray)	\
    (This)->lpVtbl -> get_SpriteIndexArray(This,in_vParticleIDArray,out_pvSpriteIndexArray)

#define ParticleCollection_put_SpriteIndexArray(This,in_vParticleIDArray,in_vSpriteIndexArray)	\
    (This)->lpVtbl -> put_SpriteIndexArray(This,in_vParticleIDArray,in_vSpriteIndexArray)

#define ParticleCollection_get_TypeIDArray(This,in_vParticleIDArray,out_pvTypeIDArray)	\
    (This)->lpVtbl -> get_TypeIDArray(This,in_vParticleIDArray,out_pvTypeIDArray)

#define ParticleCollection_put_TypeIDArray(This,in_vParticleIDArray,in_vTypeIDArray)	\
    (This)->lpVtbl -> put_TypeIDArray(This,in_vParticleIDArray,in_vTypeIDArray)

#define ParticleCollection_get_MassArray(This,in_vParticleIDArray,out_pvMassArray)	\
    (This)->lpVtbl -> get_MassArray(This,in_vParticleIDArray,out_pvMassArray)

#define ParticleCollection_put_MassArray(This,in_vParticleIDArray,in_vMassArray)	\
    (This)->lpVtbl -> put_MassArray(This,in_vParticleIDArray,in_vMassArray)

#define ParticleCollection_get_UVWArray(This,in_vParticleIDArray,out_pvUVWArray)	\
    (This)->lpVtbl -> get_UVWArray(This,in_vParticleIDArray,out_pvUVWArray)

#define ParticleCollection_put_UVWArray(This,in_vParticleIDArray,in_vUVWArray)	\
    (This)->lpVtbl -> put_UVWArray(This,in_vParticleIDArray,in_vUVWArray)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_Item_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Particle **out_pParam);


void __RPC_STUB ParticleCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_Count_Proxy( 
    ParticleCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ParticleCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get__NewEnum_Proxy( 
    ParticleCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ParticleCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_AgeArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvAgeArray);


void __RPC_STUB ParticleCollection_get_AgeArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_AgeArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vAgeArray);


void __RPC_STUB ParticleCollection_put_AgeArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_DensityArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvDensityArray);


void __RPC_STUB ParticleCollection_get_DensityArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_PositionArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvPositionArray);


void __RPC_STUB ParticleCollection_get_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_PositionArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vPositionArray);


void __RPC_STUB ParticleCollection_put_PositionArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_SizeArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvSizeArray);


void __RPC_STUB ParticleCollection_get_SizeArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_SizeArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vSizeArray);


void __RPC_STUB ParticleCollection_put_SizeArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_AgeLimitArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvAgeLimitArray);


void __RPC_STUB ParticleCollection_get_AgeLimitArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_AgeLimitArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_pvAgeLimitArray);


void __RPC_STUB ParticleCollection_put_AgeLimitArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_IDArray_Proxy( 
    ParticleCollection * This,
    /* [retval][out] */ VARIANT *out_pvIDArray);


void __RPC_STUB ParticleCollection_get_IDArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_PressureArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvPressureArray);


void __RPC_STUB ParticleCollection_get_PressureArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_VelocityArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvVelocityArray);


void __RPC_STUB ParticleCollection_get_VelocityArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_VelocityArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vVelocityArray);


void __RPC_STUB ParticleCollection_put_VelocityArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_ColorArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvColorArray);


void __RPC_STUB ParticleCollection_get_ColorArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_ColorArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vColorArray);


void __RPC_STUB ParticleCollection_put_ColorArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_AngularVelocityArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvAngularVelocityArray);


void __RPC_STUB ParticleCollection_get_AngularVelocityArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_AngularVelocityArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vAngularVelocityArray);


void __RPC_STUB ParticleCollection_put_AngularVelocityArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_PathLengthArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvPathLengthArray);


void __RPC_STUB ParticleCollection_get_PathLengthArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_SeedArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvSeedArray);


void __RPC_STUB ParticleCollection_get_SeedArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_SeedArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vSeedArray);


void __RPC_STUB ParticleCollection_put_SeedArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParticleCollection_Find_Proxy( 
    ParticleCollection * This,
    /* [in] */ LONG in_lID,
    /* [retval][out] */ Particle **out_pParticle);


void __RPC_STUB ParticleCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_SpriteAngleArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvSpriteAngleArray);


void __RPC_STUB ParticleCollection_get_SpriteAngleArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_SpriteAngleArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vSpriteAngleArray);


void __RPC_STUB ParticleCollection_put_SpriteAngleArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_RotationArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvRotationArray);


void __RPC_STUB ParticleCollection_get_RotationArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_RotationArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vRotationArray);


void __RPC_STUB ParticleCollection_put_RotationArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_SpriteIndexArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvSpriteIndexArray);


void __RPC_STUB ParticleCollection_get_SpriteIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_SpriteIndexArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vSpriteIndexArray);


void __RPC_STUB ParticleCollection_put_SpriteIndexArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_TypeIDArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvTypeIDArray);


void __RPC_STUB ParticleCollection_get_TypeIDArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_TypeIDArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vTypeIDArray);


void __RPC_STUB ParticleCollection_put_TypeIDArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_MassArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvMassArray);


void __RPC_STUB ParticleCollection_get_MassArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_MassArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vMassArray);


void __RPC_STUB ParticleCollection_put_MassArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleCollection_get_UVWArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [retval][out] */ VARIANT *out_pvUVWArray);


void __RPC_STUB ParticleCollection_get_UVWArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleCollection_put_UVWArray_Proxy( 
    ParticleCollection * This,
    /* [optional][in] */ VARIANT in_vParticleIDArray,
    /* [in] */ VARIANT in_vUVWArray);


void __RPC_STUB ParticleCollection_put_UVWArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParticleCollection_INTERFACE_DEFINED__ */


#ifndef __AnimationSourceItemCollection_INTERFACE_DEFINED__
#define __AnimationSourceItemCollection_INTERFACE_DEFINED__

/* interface AnimationSourceItemCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_AnimationSourceItemCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AC8001C4-9F87-11d4-80CD-0090275AE734")
    AnimationSourceItemCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ AnimationSourceItem **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ AnimationSourceItemCollection **__MIDL_0488) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ AnimationSourceItem **__MIDL_0489) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0490) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct AnimationSourceItemCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            AnimationSourceItemCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            AnimationSourceItemCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            AnimationSourceItemCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            AnimationSourceItemCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            AnimationSourceItemCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            AnimationSourceItemCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            AnimationSourceItemCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            AnimationSourceItemCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ AnimationSourceItem **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            AnimationSourceItemCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            AnimationSourceItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            AnimationSourceItemCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ AnimationSourceItemCollection **__MIDL_0488);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            AnimationSourceItemCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ AnimationSourceItem **__MIDL_0489);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            AnimationSourceItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            AnimationSourceItemCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0490);
        
        END_INTERFACE
    } AnimationSourceItemCollectionVtbl;

    interface AnimationSourceItemCollection
    {
        CONST_VTBL struct AnimationSourceItemCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define AnimationSourceItemCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define AnimationSourceItemCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define AnimationSourceItemCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define AnimationSourceItemCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define AnimationSourceItemCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define AnimationSourceItemCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define AnimationSourceItemCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define AnimationSourceItemCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define AnimationSourceItemCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define AnimationSourceItemCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define AnimationSourceItemCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0488)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0488)

#define AnimationSourceItemCollection_Find(This,in_filter,__MIDL_0489)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0489)

#define AnimationSourceItemCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define AnimationSourceItemCollection_GetAsText(This,__MIDL_0490)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0490)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE AnimationSourceItemCollection_get_Item_Proxy( 
    AnimationSourceItemCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ AnimationSourceItem **out_pParam);


void __RPC_STUB AnimationSourceItemCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE AnimationSourceItemCollection_get_Count_Proxy( 
    AnimationSourceItemCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB AnimationSourceItemCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE AnimationSourceItemCollection_get_NewEnum_Proxy( 
    AnimationSourceItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB AnimationSourceItemCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE AnimationSourceItemCollection_Filter_Proxy( 
    AnimationSourceItemCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ AnimationSourceItemCollection **__MIDL_0488);


void __RPC_STUB AnimationSourceItemCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE AnimationSourceItemCollection_Find_Proxy( 
    AnimationSourceItemCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ AnimationSourceItem **__MIDL_0489);


void __RPC_STUB AnimationSourceItemCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE AnimationSourceItemCollection_get__NewEnum_Proxy( 
    AnimationSourceItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB AnimationSourceItemCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE AnimationSourceItemCollection_GetAsText_Proxy( 
    AnimationSourceItemCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0490);


void __RPC_STUB AnimationSourceItemCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __AnimationSourceItemCollection_INTERFACE_DEFINED__ */


#ifndef __MappedItemCollection_INTERFACE_DEFINED__
#define __MappedItemCollection_INTERFACE_DEFINED__

/* interface MappedItemCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_MappedItemCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9DD417F2-9E47-11d4-ACE9-0090275802BF")
    MappedItemCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ MappedItem **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ MappedItemCollection **__MIDL_0485) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ MappedItem **__MIDL_0486) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0487) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct MappedItemCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            MappedItemCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            MappedItemCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            MappedItemCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            MappedItemCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            MappedItemCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            MappedItemCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            MappedItemCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            MappedItemCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ MappedItem **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            MappedItemCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            MappedItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            MappedItemCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ MappedItemCollection **__MIDL_0485);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            MappedItemCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ MappedItem **__MIDL_0486);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            MappedItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            MappedItemCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0487);
        
        END_INTERFACE
    } MappedItemCollectionVtbl;

    interface MappedItemCollection
    {
        CONST_VTBL struct MappedItemCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define MappedItemCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define MappedItemCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define MappedItemCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define MappedItemCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define MappedItemCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define MappedItemCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define MappedItemCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define MappedItemCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define MappedItemCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define MappedItemCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define MappedItemCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0485)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0485)

#define MappedItemCollection_Find(This,in_filter,__MIDL_0486)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0486)

#define MappedItemCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define MappedItemCollection_GetAsText(This,__MIDL_0487)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0487)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE MappedItemCollection_get_Item_Proxy( 
    MappedItemCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ MappedItem **out_pParam);


void __RPC_STUB MappedItemCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE MappedItemCollection_get_Count_Proxy( 
    MappedItemCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB MappedItemCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE MappedItemCollection_get_NewEnum_Proxy( 
    MappedItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB MappedItemCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE MappedItemCollection_Filter_Proxy( 
    MappedItemCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ MappedItemCollection **__MIDL_0485);


void __RPC_STUB MappedItemCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE MappedItemCollection_Find_Proxy( 
    MappedItemCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ MappedItem **__MIDL_0486);


void __RPC_STUB MappedItemCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE MappedItemCollection_get__NewEnum_Proxy( 
    MappedItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB MappedItemCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE MappedItemCollection_GetAsText_Proxy( 
    MappedItemCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0487);


void __RPC_STUB MappedItemCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __MappedItemCollection_INTERFACE_DEFINED__ */


#ifndef __ParameterCollection_INTERFACE_DEFINED__
#define __ParameterCollection_INTERFACE_DEFINED__

/* interface ParameterCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ParameterCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B1A46F00-31C0-11d4-ACD7-0090275802BF")
    ParameterCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Parameter **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ParameterCollection **__MIDL_0491) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Parameter **__MIDL_0492) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0493) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParameterCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParameterCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParameterCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParameterCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParameterCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParameterCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParameterCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParameterCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ParameterCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Parameter **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ParameterCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ParameterCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ParameterCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ParameterCollection **__MIDL_0491);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ParameterCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Parameter **__MIDL_0492);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ParameterCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ParameterCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0493);
        
        END_INTERFACE
    } ParameterCollectionVtbl;

    interface ParameterCollection
    {
        CONST_VTBL struct ParameterCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ParameterCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ParameterCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ParameterCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ParameterCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ParameterCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ParameterCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ParameterCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ParameterCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ParameterCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ParameterCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ParameterCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0491)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0491)

#define ParameterCollection_Find(This,in_filter,__MIDL_0492)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0492)

#define ParameterCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ParameterCollection_GetAsText(This,__MIDL_0493)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0493)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParameterCollection_get_Item_Proxy( 
    ParameterCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Parameter **out_pParam);


void __RPC_STUB ParameterCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParameterCollection_get_Count_Proxy( 
    ParameterCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ParameterCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ParameterCollection_get_NewEnum_Proxy( 
    ParameterCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ParameterCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParameterCollection_Filter_Proxy( 
    ParameterCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ParameterCollection **__MIDL_0491);


void __RPC_STUB ParameterCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParameterCollection_Find_Proxy( 
    ParameterCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Parameter **__MIDL_0492);


void __RPC_STUB ParameterCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ParameterCollection_get__NewEnum_Proxy( 
    ParameterCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ParameterCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParameterCollection_GetAsText_Proxy( 
    ParameterCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0493);


void __RPC_STUB ParameterCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParameterCollection_INTERFACE_DEFINED__ */


#ifndef __DataSourceCollection_INTERFACE_DEFINED__
#define __DataSourceCollection_INTERFACE_DEFINED__

/* interface DataSourceCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_DataSourceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C83A37D2-9A21-11d4-80CD-0090275AE734")
    DataSourceCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ DataSource **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ DataSourceCollection **__MIDL_0497) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ DataSource **__MIDL_0498) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0499) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct DataSourceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            DataSourceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            DataSourceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            DataSourceCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            DataSourceCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            DataSourceCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            DataSourceCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            DataSourceCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            DataSourceCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ DataSource **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            DataSourceCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            DataSourceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            DataSourceCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ DataSourceCollection **__MIDL_0497);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            DataSourceCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ DataSource **__MIDL_0498);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            DataSourceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            DataSourceCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0499);
        
        END_INTERFACE
    } DataSourceCollectionVtbl;

    interface DataSourceCollection
    {
        CONST_VTBL struct DataSourceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define DataSourceCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define DataSourceCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define DataSourceCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define DataSourceCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define DataSourceCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define DataSourceCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define DataSourceCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define DataSourceCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define DataSourceCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define DataSourceCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define DataSourceCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0497)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0497)

#define DataSourceCollection_Find(This,in_filter,__MIDL_0498)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0498)

#define DataSourceCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define DataSourceCollection_GetAsText(This,__MIDL_0499)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0499)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE DataSourceCollection_get_Item_Proxy( 
    DataSourceCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ DataSource **out_pParam);


void __RPC_STUB DataSourceCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE DataSourceCollection_get_Count_Proxy( 
    DataSourceCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB DataSourceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE DataSourceCollection_get_NewEnum_Proxy( 
    DataSourceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB DataSourceCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE DataSourceCollection_Filter_Proxy( 
    DataSourceCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ DataSourceCollection **__MIDL_0497);


void __RPC_STUB DataSourceCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE DataSourceCollection_Find_Proxy( 
    DataSourceCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ DataSource **__MIDL_0498);


void __RPC_STUB DataSourceCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE DataSourceCollection_get__NewEnum_Proxy( 
    DataSourceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB DataSourceCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE DataSourceCollection_GetAsText_Proxy( 
    DataSourceCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0499);


void __RPC_STUB DataSourceCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __DataSourceCollection_INTERFACE_DEFINED__ */


#ifndef __FCurveCollection_INTERFACE_DEFINED__
#define __FCurveCollection_INTERFACE_DEFINED__

/* interface FCurveCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_FCurveCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F277BC3B-52A5-4ecd-9423-C78A2FFEE1F9")
    FCurveCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FCurve **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FCurveCollection **__MIDL_0503) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FCurve **__MIDL_0504) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0505) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FCurveCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FCurveCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FCurveCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FCurveCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FCurveCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FCurveCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FCurveCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FCurveCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            FCurveCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FCurve **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            FCurveCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            FCurveCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            FCurveCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FCurveCollection **__MIDL_0503);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            FCurveCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FCurve **__MIDL_0504);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            FCurveCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            FCurveCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0505);
        
        END_INTERFACE
    } FCurveCollectionVtbl;

    interface FCurveCollection
    {
        CONST_VTBL struct FCurveCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define FCurveCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define FCurveCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define FCurveCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define FCurveCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define FCurveCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define FCurveCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define FCurveCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define FCurveCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define FCurveCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define FCurveCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define FCurveCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0503)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0503)

#define FCurveCollection_Find(This,in_filter,__MIDL_0504)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0504)

#define FCurveCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define FCurveCollection_GetAsText(This,__MIDL_0505)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0505)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE FCurveCollection_get_Item_Proxy( 
    FCurveCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ FCurve **out_pParam);


void __RPC_STUB FCurveCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE FCurveCollection_get_Count_Proxy( 
    FCurveCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB FCurveCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FCurveCollection_get_NewEnum_Proxy( 
    FCurveCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FCurveCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FCurveCollection_Filter_Proxy( 
    FCurveCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ FCurveCollection **__MIDL_0503);


void __RPC_STUB FCurveCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FCurveCollection_Find_Proxy( 
    FCurveCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ FCurve **__MIDL_0504);


void __RPC_STUB FCurveCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FCurveCollection_get__NewEnum_Proxy( 
    FCurveCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FCurveCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FCurveCollection_GetAsText_Proxy( 
    FCurveCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0505);


void __RPC_STUB FCurveCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FCurveCollection_INTERFACE_DEFINED__ */


#ifndef __FCurveKeyCollection_INTERFACE_DEFINED__
#define __FCurveKeyCollection_INTERFACE_DEFINED__

/* interface FCurveKeyCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_FCurveKeyCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("196B73A1-493E-11d4-ACDB-0090275802BF")
    FCurveKeyCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FCurveKey **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FCurveKeyCollection **__MIDL_0494) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FCurveKey **__MIDL_0495) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0496) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FCurveKeyCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FCurveKeyCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FCurveKeyCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FCurveKeyCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FCurveKeyCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FCurveKeyCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FCurveKeyCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FCurveKeyCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            FCurveKeyCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ FCurveKey **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            FCurveKeyCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            FCurveKeyCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            FCurveKeyCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ FCurveKeyCollection **__MIDL_0494);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            FCurveKeyCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ FCurveKey **__MIDL_0495);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            FCurveKeyCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            FCurveKeyCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0496);
        
        END_INTERFACE
    } FCurveKeyCollectionVtbl;

    interface FCurveKeyCollection
    {
        CONST_VTBL struct FCurveKeyCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define FCurveKeyCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define FCurveKeyCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define FCurveKeyCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define FCurveKeyCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define FCurveKeyCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define FCurveKeyCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define FCurveKeyCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define FCurveKeyCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define FCurveKeyCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define FCurveKeyCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define FCurveKeyCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0494)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0494)

#define FCurveKeyCollection_Find(This,in_filter,__MIDL_0495)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0495)

#define FCurveKeyCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define FCurveKeyCollection_GetAsText(This,__MIDL_0496)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0496)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKeyCollection_get_Item_Proxy( 
    FCurveKeyCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ FCurveKey **out_pParam);


void __RPC_STUB FCurveKeyCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE FCurveKeyCollection_get_Count_Proxy( 
    FCurveKeyCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB FCurveKeyCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FCurveKeyCollection_get_NewEnum_Proxy( 
    FCurveKeyCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FCurveKeyCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FCurveKeyCollection_Filter_Proxy( 
    FCurveKeyCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ FCurveKeyCollection **__MIDL_0494);


void __RPC_STUB FCurveKeyCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FCurveKeyCollection_Find_Proxy( 
    FCurveKeyCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ FCurveKey **__MIDL_0495);


void __RPC_STUB FCurveKeyCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FCurveKeyCollection_get__NewEnum_Proxy( 
    FCurveKeyCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FCurveKeyCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE FCurveKeyCollection_GetAsText_Proxy( 
    FCurveKeyCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0496);


void __RPC_STUB FCurveKeyCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FCurveKeyCollection_INTERFACE_DEFINED__ */


#ifndef __IDispatchCollection_INTERFACE_DEFINED__
#define __IDispatchCollection_INTERFACE_DEFINED__

/* interface IDispatchCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IDispatchCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B2C26010-C192-11d4-ACF4-0090275802BF")
    IDispatchCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ IDispatch **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ IDispatchCollection **__MIDL_0500) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ IDispatch **__MIDL_0501) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0502) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDispatchCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDispatchCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDispatchCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDispatchCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IDispatchCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IDispatchCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IDispatchCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IDispatchCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            IDispatchCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ IDispatch **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IDispatchCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            IDispatchCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            IDispatchCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ IDispatchCollection **__MIDL_0500);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            IDispatchCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ IDispatch **__MIDL_0501);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            IDispatchCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            IDispatchCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0502);
        
        END_INTERFACE
    } IDispatchCollectionVtbl;

    interface IDispatchCollection
    {
        CONST_VTBL struct IDispatchCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDispatchCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDispatchCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDispatchCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDispatchCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IDispatchCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IDispatchCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IDispatchCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IDispatchCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define IDispatchCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define IDispatchCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define IDispatchCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0500)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0500)

#define IDispatchCollection_Find(This,in_filter,__MIDL_0501)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0501)

#define IDispatchCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define IDispatchCollection_GetAsText(This,__MIDL_0502)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0502)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE IDispatchCollection_get_Item_Proxy( 
    IDispatchCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ IDispatch **out_pParam);


void __RPC_STUB IDispatchCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE IDispatchCollection_get_Count_Proxy( 
    IDispatchCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB IDispatchCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE IDispatchCollection_get_NewEnum_Proxy( 
    IDispatchCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB IDispatchCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IDispatchCollection_Filter_Proxy( 
    IDispatchCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ IDispatchCollection **__MIDL_0500);


void __RPC_STUB IDispatchCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IDispatchCollection_Find_Proxy( 
    IDispatchCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ IDispatch **__MIDL_0501);


void __RPC_STUB IDispatchCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE IDispatchCollection_get__NewEnum_Proxy( 
    IDispatchCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB IDispatchCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE IDispatchCollection_GetAsText_Proxy( 
    IDispatchCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0502);


void __RPC_STUB IDispatchCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDispatchCollection_INTERFACE_DEFINED__ */


#ifndef __ParticleTypeCollection_INTERFACE_DEFINED__
#define __ParticleTypeCollection_INTERFACE_DEFINED__

/* interface ParticleTypeCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ParticleTypeCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("27acc1b9-311b-40dc-9398-b3d31c183e7d")
    ParticleTypeCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ParticleType **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ParticleTypeCollection **__MIDL_0509) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ParticleType **__MIDL_0510) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0511) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleTypeCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParticleTypeCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParticleTypeCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParticleTypeCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParticleTypeCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParticleTypeCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParticleTypeCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParticleTypeCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ParticleTypeCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ParticleType **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ParticleTypeCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ParticleTypeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ParticleTypeCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ParticleTypeCollection **__MIDL_0509);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ParticleTypeCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ParticleType **__MIDL_0510);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ParticleTypeCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0511);
        
        END_INTERFACE
    } ParticleTypeCollectionVtbl;

    interface ParticleTypeCollection
    {
        CONST_VTBL struct ParticleTypeCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ParticleTypeCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ParticleTypeCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ParticleTypeCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ParticleTypeCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ParticleTypeCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ParticleTypeCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ParticleTypeCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ParticleTypeCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ParticleTypeCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ParticleTypeCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ParticleTypeCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0509)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0509)

#define ParticleTypeCollection_Find(This,in_filter,__MIDL_0510)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0510)

#define ParticleTypeCollection_GetAsText(This,__MIDL_0511)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0511)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParticleTypeCollection_get_Item_Proxy( 
    ParticleTypeCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ParticleType **out_pParam);


void __RPC_STUB ParticleTypeCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParticleTypeCollection_get_Count_Proxy( 
    ParticleTypeCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ParticleTypeCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ParticleTypeCollection_get__NewEnum_Proxy( 
    ParticleTypeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ParticleTypeCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParticleTypeCollection_Filter_Proxy( 
    ParticleTypeCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ParticleTypeCollection **__MIDL_0509);


void __RPC_STUB ParticleTypeCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParticleTypeCollection_Find_Proxy( 
    ParticleTypeCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ParticleType **__MIDL_0510);


void __RPC_STUB ParticleTypeCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParticleTypeCollection_GetAsText_Proxy( 
    ParticleTypeCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0511);


void __RPC_STUB ParticleTypeCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParticleTypeCollection_INTERFACE_DEFINED__ */


#ifndef __ParticleAttributeCollection_INTERFACE_DEFINED__
#define __ParticleAttributeCollection_INTERFACE_DEFINED__

/* interface ParticleAttributeCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ParticleAttributeCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6d58ff4f-01f6-45ca-82a5-8e6120ea7392")
    ParticleAttributeCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ParticleAttribute **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ParticleAttributeCollection **__MIDL_0512) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ParticleAttribute **__MIDL_0513) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0514) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleAttributeCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParticleAttributeCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParticleAttributeCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParticleAttributeCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParticleAttributeCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParticleAttributeCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParticleAttributeCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParticleAttributeCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ParticleAttributeCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ParticleAttribute **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ParticleAttributeCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ParticleAttributeCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ParticleAttributeCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ParticleAttributeCollection **__MIDL_0512);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ParticleAttributeCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ParticleAttribute **__MIDL_0513);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ParticleAttributeCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0514);
        
        END_INTERFACE
    } ParticleAttributeCollectionVtbl;

    interface ParticleAttributeCollection
    {
        CONST_VTBL struct ParticleAttributeCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ParticleAttributeCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ParticleAttributeCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ParticleAttributeCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ParticleAttributeCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ParticleAttributeCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ParticleAttributeCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ParticleAttributeCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ParticleAttributeCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ParticleAttributeCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ParticleAttributeCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ParticleAttributeCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0512)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0512)

#define ParticleAttributeCollection_Find(This,in_filter,__MIDL_0513)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0513)

#define ParticleAttributeCollection_GetAsText(This,__MIDL_0514)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0514)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParticleAttributeCollection_get_Item_Proxy( 
    ParticleAttributeCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ParticleAttribute **out_pParam);


void __RPC_STUB ParticleAttributeCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ParticleAttributeCollection_get_Count_Proxy( 
    ParticleAttributeCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ParticleAttributeCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ParticleAttributeCollection_get__NewEnum_Proxy( 
    ParticleAttributeCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ParticleAttributeCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParticleAttributeCollection_Filter_Proxy( 
    ParticleAttributeCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ParticleAttributeCollection **__MIDL_0512);


void __RPC_STUB ParticleAttributeCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParticleAttributeCollection_Find_Proxy( 
    ParticleAttributeCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ParticleAttribute **__MIDL_0513);


void __RPC_STUB ParticleAttributeCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ParticleAttributeCollection_GetAsText_Proxy( 
    ParticleAttributeCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0514);


void __RPC_STUB ParticleAttributeCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParticleAttributeCollection_INTERFACE_DEFINED__ */


#ifndef __ClipCollection_INTERFACE_DEFINED__
#define __ClipCollection_INTERFACE_DEFINED__

/* interface ClipCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ClipCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("542416E7-23CE-4881-A26F-67D3FE9EBFC8")
    ClipCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Clip **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClipCollection **__MIDL_0527) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Clip **__MIDL_0528) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0529) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClipCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClipCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClipCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClipCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClipCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClipCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClipCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ClipCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Clip **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ClipCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ClipCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ClipCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClipCollection **__MIDL_0527);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ClipCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Clip **__MIDL_0528);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ClipCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0529);
        
        END_INTERFACE
    } ClipCollectionVtbl;

    interface ClipCollection
    {
        CONST_VTBL struct ClipCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClipCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClipCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClipCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClipCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClipCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClipCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClipCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClipCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ClipCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ClipCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ClipCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0527)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0527)

#define ClipCollection_Find(This,in_filter,__MIDL_0528)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0528)

#define ClipCollection_GetAsText(This,__MIDL_0529)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0529)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClipCollection_get_Item_Proxy( 
    ClipCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Clip **out_pParam);


void __RPC_STUB ClipCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClipCollection_get_Count_Proxy( 
    ClipCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ClipCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClipCollection_get__NewEnum_Proxy( 
    ClipCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClipCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipCollection_Filter_Proxy( 
    ClipCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ClipCollection **__MIDL_0527);


void __RPC_STUB ClipCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipCollection_Find_Proxy( 
    ClipCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Clip **__MIDL_0528);


void __RPC_STUB ClipCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipCollection_GetAsText_Proxy( 
    ClipCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0529);


void __RPC_STUB ClipCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClipCollection_INTERFACE_DEFINED__ */


#ifndef __TrackCollection_INTERFACE_DEFINED__
#define __TrackCollection_INTERFACE_DEFINED__

/* interface TrackCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_TrackCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1BCDB8ED-4ACE-4B5F-A655-38D1F72ECB51")
    TrackCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Track **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TrackCollection **__MIDL_0530) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Track **__MIDL_0531) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0532) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TrackCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TrackCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TrackCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TrackCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TrackCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TrackCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TrackCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TrackCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            TrackCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Track **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            TrackCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            TrackCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            TrackCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TrackCollection **__MIDL_0530);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            TrackCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Track **__MIDL_0531);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            TrackCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0532);
        
        END_INTERFACE
    } TrackCollectionVtbl;

    interface TrackCollection
    {
        CONST_VTBL struct TrackCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TrackCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TrackCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TrackCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TrackCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TrackCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TrackCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TrackCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TrackCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define TrackCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define TrackCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define TrackCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0530)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0530)

#define TrackCollection_Find(This,in_filter,__MIDL_0531)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0531)

#define TrackCollection_GetAsText(This,__MIDL_0532)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0532)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE TrackCollection_get_Item_Proxy( 
    TrackCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Track **out_pParam);


void __RPC_STUB TrackCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE TrackCollection_get_Count_Proxy( 
    TrackCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB TrackCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TrackCollection_get__NewEnum_Proxy( 
    TrackCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TrackCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TrackCollection_Filter_Proxy( 
    TrackCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ TrackCollection **__MIDL_0530);


void __RPC_STUB TrackCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TrackCollection_Find_Proxy( 
    TrackCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Track **__MIDL_0531);


void __RPC_STUB TrackCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TrackCollection_GetAsText_Proxy( 
    TrackCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0532);


void __RPC_STUB TrackCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TrackCollection_INTERFACE_DEFINED__ */


#ifndef __TransitionCollection_INTERFACE_DEFINED__
#define __TransitionCollection_INTERFACE_DEFINED__

/* interface TransitionCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_TransitionCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E63A64CC-F0E0-4E84-AB7D-18561465DCED")
    TransitionCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Transition **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TransitionCollection **__MIDL_0533) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Transition **__MIDL_0534) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0535) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TransitionCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TransitionCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TransitionCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TransitionCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TransitionCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TransitionCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TransitionCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TransitionCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            TransitionCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Transition **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            TransitionCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            TransitionCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            TransitionCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ TransitionCollection **__MIDL_0533);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            TransitionCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Transition **__MIDL_0534);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            TransitionCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0535);
        
        END_INTERFACE
    } TransitionCollectionVtbl;

    interface TransitionCollection
    {
        CONST_VTBL struct TransitionCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TransitionCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TransitionCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TransitionCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TransitionCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TransitionCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TransitionCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TransitionCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TransitionCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define TransitionCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define TransitionCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define TransitionCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0533)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0533)

#define TransitionCollection_Find(This,in_filter,__MIDL_0534)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0534)

#define TransitionCollection_GetAsText(This,__MIDL_0535)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0535)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE TransitionCollection_get_Item_Proxy( 
    TransitionCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Transition **out_pParam);


void __RPC_STUB TransitionCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE TransitionCollection_get_Count_Proxy( 
    TransitionCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB TransitionCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE TransitionCollection_get__NewEnum_Proxy( 
    TransitionCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB TransitionCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TransitionCollection_Filter_Proxy( 
    TransitionCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ TransitionCollection **__MIDL_0533);


void __RPC_STUB TransitionCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TransitionCollection_Find_Proxy( 
    TransitionCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Transition **__MIDL_0534);


void __RPC_STUB TransitionCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE TransitionCollection_GetAsText_Proxy( 
    TransitionCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0535);


void __RPC_STUB TransitionCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TransitionCollection_INTERFACE_DEFINED__ */


#ifndef __SourceCollection_INTERFACE_DEFINED__
#define __SourceCollection_INTERFACE_DEFINED__

/* interface SourceCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SourceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0F1D6F7B-9458-40E1-865A-B4CC7219490B")
    SourceCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Source **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SourceCollection **__MIDL_0536) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Source **__MIDL_0537) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0538) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SourceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SourceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SourceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SourceCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SourceCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SourceCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SourceCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SourceCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            SourceCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Source **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            SourceCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            SourceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            SourceCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SourceCollection **__MIDL_0536);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            SourceCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Source **__MIDL_0537);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            SourceCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0538);
        
        END_INTERFACE
    } SourceCollectionVtbl;

    interface SourceCollection
    {
        CONST_VTBL struct SourceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define SourceCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define SourceCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define SourceCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define SourceCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define SourceCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define SourceCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define SourceCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define SourceCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define SourceCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define SourceCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define SourceCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0536)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0536)

#define SourceCollection_Find(This,in_filter,__MIDL_0537)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0537)

#define SourceCollection_GetAsText(This,__MIDL_0538)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0538)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE SourceCollection_get_Item_Proxy( 
    SourceCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Source **out_pParam);


void __RPC_STUB SourceCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE SourceCollection_get_Count_Proxy( 
    SourceCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB SourceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SourceCollection_get__NewEnum_Proxy( 
    SourceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SourceCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SourceCollection_Filter_Proxy( 
    SourceCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ SourceCollection **__MIDL_0536);


void __RPC_STUB SourceCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SourceCollection_Find_Proxy( 
    SourceCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Source **__MIDL_0537);


void __RPC_STUB SourceCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SourceCollection_GetAsText_Proxy( 
    SourceCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0538);


void __RPC_STUB SourceCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SourceCollection_INTERFACE_DEFINED__ */


#ifndef __ClipEffectItemCollection_INTERFACE_DEFINED__
#define __ClipEffectItemCollection_INTERFACE_DEFINED__

/* interface ClipEffectItemCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ClipEffectItemCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E3935B77-C94D-4a07-BCBB-B589E3905E9A")
    ClipEffectItemCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ClipEffectItem **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClipEffectItemCollection **__MIDL_0539) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ClipEffectItem **__MIDL_0540) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0541) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipEffectItemCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClipEffectItemCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClipEffectItemCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClipEffectItemCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClipEffectItemCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClipEffectItemCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClipEffectItemCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClipEffectItemCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ClipEffectItemCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ClipEffectItem **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ClipEffectItemCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ClipEffectItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ClipEffectItemCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClipEffectItemCollection **__MIDL_0539);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ClipEffectItemCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ClipEffectItem **__MIDL_0540);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ClipEffectItemCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0541);
        
        END_INTERFACE
    } ClipEffectItemCollectionVtbl;

    interface ClipEffectItemCollection
    {
        CONST_VTBL struct ClipEffectItemCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClipEffectItemCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClipEffectItemCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClipEffectItemCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClipEffectItemCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClipEffectItemCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClipEffectItemCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClipEffectItemCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClipEffectItemCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ClipEffectItemCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ClipEffectItemCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ClipEffectItemCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0539)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0539)

#define ClipEffectItemCollection_Find(This,in_filter,__MIDL_0540)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0540)

#define ClipEffectItemCollection_GetAsText(This,__MIDL_0541)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0541)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffectItemCollection_get_Item_Proxy( 
    ClipEffectItemCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ClipEffectItem **out_pParam);


void __RPC_STUB ClipEffectItemCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffectItemCollection_get_Count_Proxy( 
    ClipEffectItemCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ClipEffectItemCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClipEffectItemCollection_get__NewEnum_Proxy( 
    ClipEffectItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClipEffectItemCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipEffectItemCollection_Filter_Proxy( 
    ClipEffectItemCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ClipEffectItemCollection **__MIDL_0539);


void __RPC_STUB ClipEffectItemCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipEffectItemCollection_Find_Proxy( 
    ClipEffectItemCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ClipEffectItem **__MIDL_0540);


void __RPC_STUB ClipEffectItemCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipEffectItemCollection_GetAsText_Proxy( 
    ClipEffectItemCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0541);


void __RPC_STUB ClipEffectItemCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClipEffectItemCollection_INTERFACE_DEFINED__ */


#ifndef __ClipRelationCollection_INTERFACE_DEFINED__
#define __ClipRelationCollection_INTERFACE_DEFINED__

/* interface ClipRelationCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ClipRelationCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EE66A007-325B-4080-90D1-0528B0E88812")
    ClipRelationCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ClipRelation **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClipRelationCollection **__MIDL_0542) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ClipRelation **__MIDL_0543) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0544) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipRelationCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClipRelationCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClipRelationCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClipRelationCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClipRelationCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClipRelationCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClipRelationCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClipRelationCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ClipRelationCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ ClipRelation **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ClipRelationCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ClipRelationCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ClipRelationCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ClipRelationCollection **__MIDL_0542);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ClipRelationCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ ClipRelation **__MIDL_0543);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ClipRelationCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0544);
        
        END_INTERFACE
    } ClipRelationCollectionVtbl;

    interface ClipRelationCollection
    {
        CONST_VTBL struct ClipRelationCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClipRelationCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClipRelationCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClipRelationCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClipRelationCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClipRelationCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClipRelationCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClipRelationCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClipRelationCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ClipRelationCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ClipRelationCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ClipRelationCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0542)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0542)

#define ClipRelationCollection_Find(This,in_filter,__MIDL_0543)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0543)

#define ClipRelationCollection_GetAsText(This,__MIDL_0544)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0544)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClipRelationCollection_get_Item_Proxy( 
    ClipRelationCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ ClipRelation **out_pParam);


void __RPC_STUB ClipRelationCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ClipRelationCollection_get_Count_Proxy( 
    ClipRelationCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ClipRelationCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ClipRelationCollection_get__NewEnum_Proxy( 
    ClipRelationCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ClipRelationCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipRelationCollection_Filter_Proxy( 
    ClipRelationCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ClipRelationCollection **__MIDL_0542);


void __RPC_STUB ClipRelationCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipRelationCollection_Find_Proxy( 
    ClipRelationCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ ClipRelation **__MIDL_0543);


void __RPC_STUB ClipRelationCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ClipRelationCollection_GetAsText_Proxy( 
    ClipRelationCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0544);


void __RPC_STUB ClipRelationCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClipRelationCollection_INTERFACE_DEFINED__ */


#ifndef __LibraryCollection_INTERFACE_DEFINED__
#define __LibraryCollection_INTERFACE_DEFINED__

/* interface LibraryCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_LibraryCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3B2DD1A8-F0D0-4feb-B5CB-5C2BB3868C52")
    LibraryCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Library **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ LibraryCollection **__MIDL_0545) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Library **__MIDL_0546) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0547) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct LibraryCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            LibraryCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            LibraryCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            LibraryCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            LibraryCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            LibraryCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            LibraryCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            LibraryCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            LibraryCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Library **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            LibraryCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            LibraryCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            LibraryCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ LibraryCollection **__MIDL_0545);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            LibraryCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Library **__MIDL_0546);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            LibraryCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0547);
        
        END_INTERFACE
    } LibraryCollectionVtbl;

    interface LibraryCollection
    {
        CONST_VTBL struct LibraryCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define LibraryCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define LibraryCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define LibraryCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define LibraryCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define LibraryCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define LibraryCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define LibraryCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define LibraryCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define LibraryCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define LibraryCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define LibraryCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0545)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0545)

#define LibraryCollection_Find(This,in_filter,__MIDL_0546)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0546)

#define LibraryCollection_GetAsText(This,__MIDL_0547)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0547)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE LibraryCollection_get_Item_Proxy( 
    LibraryCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Library **out_pParam);


void __RPC_STUB LibraryCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE LibraryCollection_get_Count_Proxy( 
    LibraryCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB LibraryCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE LibraryCollection_get__NewEnum_Proxy( 
    LibraryCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB LibraryCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LibraryCollection_Filter_Proxy( 
    LibraryCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ LibraryCollection **__MIDL_0545);


void __RPC_STUB LibraryCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LibraryCollection_Find_Proxy( 
    LibraryCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Library **__MIDL_0546);


void __RPC_STUB LibraryCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LibraryCollection_GetAsText_Proxy( 
    LibraryCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0547);


void __RPC_STUB LibraryCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __LibraryCollection_INTERFACE_DEFINED__ */


#ifndef __SceneCollection_INTERFACE_DEFINED__
#define __SceneCollection_INTERFACE_DEFINED__

/* interface SceneCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SceneCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E8456032-406A-11d4-ACD9-0090275802BF")
    SceneCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Scene **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SceneCollection **__MIDL_0428) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Scene **__MIDL_0429) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0430) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SceneCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SceneCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SceneCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SceneCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SceneCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SceneCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SceneCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SceneCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            SceneCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Scene **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            SceneCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            SceneCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            SceneCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ SceneCollection **__MIDL_0428);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            SceneCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Scene **__MIDL_0429);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            SceneCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            SceneCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0430);
        
        END_INTERFACE
    } SceneCollectionVtbl;

    interface SceneCollection
    {
        CONST_VTBL struct SceneCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define SceneCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define SceneCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define SceneCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define SceneCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define SceneCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define SceneCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define SceneCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define SceneCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define SceneCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define SceneCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define SceneCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0428)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0428)

#define SceneCollection_Find(This,in_filter,__MIDL_0429)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0429)

#define SceneCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define SceneCollection_GetAsText(This,__MIDL_0430)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0430)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE SceneCollection_get_Item_Proxy( 
    SceneCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Scene **out_pParam);


void __RPC_STUB SceneCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE SceneCollection_get_Count_Proxy( 
    SceneCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB SceneCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SceneCollection_get_NewEnum_Proxy( 
    SceneCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SceneCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SceneCollection_Filter_Proxy( 
    SceneCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ SceneCollection **__MIDL_0428);


void __RPC_STUB SceneCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SceneCollection_Find_Proxy( 
    SceneCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Scene **__MIDL_0429);


void __RPC_STUB SceneCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE SceneCollection_get__NewEnum_Proxy( 
    SceneCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB SceneCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE SceneCollection_GetAsText_Proxy( 
    SceneCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0430);


void __RPC_STUB SceneCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SceneCollection_INTERFACE_DEFINED__ */


#ifndef __GroupCollection_INTERFACE_DEFINED__
#define __GroupCollection_INTERFACE_DEFINED__

/* interface GroupCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_GroupCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D56D7D3-4183-11d4-ACDA-0090275802BF")
    GroupCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Group **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ GroupCollection **__MIDL_0443) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Group **__MIDL_0444) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0445) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct GroupCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            GroupCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            GroupCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            GroupCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            GroupCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            GroupCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            GroupCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            GroupCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            GroupCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Group **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            GroupCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            GroupCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            GroupCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ GroupCollection **__MIDL_0443);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            GroupCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Group **__MIDL_0444);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            GroupCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            GroupCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0445);
        
        END_INTERFACE
    } GroupCollectionVtbl;

    interface GroupCollection
    {
        CONST_VTBL struct GroupCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define GroupCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define GroupCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define GroupCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define GroupCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define GroupCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define GroupCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define GroupCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define GroupCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define GroupCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define GroupCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define GroupCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0443)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0443)

#define GroupCollection_Find(This,in_filter,__MIDL_0444)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0444)

#define GroupCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define GroupCollection_GetAsText(This,__MIDL_0445)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0445)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE GroupCollection_get_Item_Proxy( 
    GroupCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Group **out_pParam);


void __RPC_STUB GroupCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE GroupCollection_get_Count_Proxy( 
    GroupCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB GroupCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE GroupCollection_get_NewEnum_Proxy( 
    GroupCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB GroupCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GroupCollection_Filter_Proxy( 
    GroupCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ GroupCollection **__MIDL_0443);


void __RPC_STUB GroupCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GroupCollection_Find_Proxy( 
    GroupCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Group **__MIDL_0444);


void __RPC_STUB GroupCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE GroupCollection_get__NewEnum_Proxy( 
    GroupCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB GroupCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GroupCollection_GetAsText_Proxy( 
    GroupCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0445);


void __RPC_STUB GroupCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __GroupCollection_INTERFACE_DEFINED__ */


#ifndef __MaterialCollection_INTERFACE_DEFINED__
#define __MaterialCollection_INTERFACE_DEFINED__

/* interface MaterialCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_MaterialCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D56D7D4-4183-11d4-ACDA-0090275802BF")
    MaterialCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Material **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ MaterialCollection **__MIDL_0452) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Material **__MIDL_0453) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0454) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct MaterialCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            MaterialCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            MaterialCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            MaterialCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            MaterialCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            MaterialCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            MaterialCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            MaterialCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            MaterialCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Material **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            MaterialCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            MaterialCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            MaterialCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ MaterialCollection **__MIDL_0452);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            MaterialCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Material **__MIDL_0453);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            MaterialCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            MaterialCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0454);
        
        END_INTERFACE
    } MaterialCollectionVtbl;

    interface MaterialCollection
    {
        CONST_VTBL struct MaterialCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define MaterialCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define MaterialCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define MaterialCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define MaterialCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define MaterialCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define MaterialCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define MaterialCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define MaterialCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define MaterialCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define MaterialCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define MaterialCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0452)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0452)

#define MaterialCollection_Find(This,in_filter,__MIDL_0453)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0453)

#define MaterialCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define MaterialCollection_GetAsText(This,__MIDL_0454)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0454)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE MaterialCollection_get_Item_Proxy( 
    MaterialCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Material **out_pParam);


void __RPC_STUB MaterialCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE MaterialCollection_get_Count_Proxy( 
    MaterialCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB MaterialCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE MaterialCollection_get_NewEnum_Proxy( 
    MaterialCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB MaterialCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE MaterialCollection_Filter_Proxy( 
    MaterialCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ MaterialCollection **__MIDL_0452);


void __RPC_STUB MaterialCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE MaterialCollection_Find_Proxy( 
    MaterialCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Material **__MIDL_0453);


void __RPC_STUB MaterialCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE MaterialCollection_get__NewEnum_Proxy( 
    MaterialCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB MaterialCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE MaterialCollection_GetAsText_Proxy( 
    MaterialCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0454);


void __RPC_STUB MaterialCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __MaterialCollection_INTERFACE_DEFINED__ */


#ifndef __PropertyCollection_INTERFACE_DEFINED__
#define __PropertyCollection_INTERFACE_DEFINED__

/* interface PropertyCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PropertyCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D56D7D5-4183-11d4-ACDA-0090275802BF")
    PropertyCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Property **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PropertyCollection **__MIDL_0455) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Property **__MIDL_0456) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0457) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PropertyCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PropertyCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PropertyCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PropertyCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PropertyCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PropertyCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PropertyCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PropertyCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PropertyCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Property **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PropertyCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            PropertyCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            PropertyCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ PropertyCollection **__MIDL_0455);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            PropertyCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Property **__MIDL_0456);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PropertyCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            PropertyCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0457);
        
        END_INTERFACE
    } PropertyCollectionVtbl;

    interface PropertyCollection
    {
        CONST_VTBL struct PropertyCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PropertyCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PropertyCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PropertyCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PropertyCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PropertyCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PropertyCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PropertyCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PropertyCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PropertyCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PropertyCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define PropertyCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0455)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0455)

#define PropertyCollection_Find(This,in_filter,__MIDL_0456)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0456)

#define PropertyCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define PropertyCollection_GetAsText(This,__MIDL_0457)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0457)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PropertyCollection_get_Item_Proxy( 
    PropertyCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Property **out_pParam);


void __RPC_STUB PropertyCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PropertyCollection_get_Count_Proxy( 
    PropertyCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PropertyCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PropertyCollection_get_NewEnum_Proxy( 
    PropertyCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PropertyCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PropertyCollection_Filter_Proxy( 
    PropertyCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ PropertyCollection **__MIDL_0455);


void __RPC_STUB PropertyCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PropertyCollection_Find_Proxy( 
    PropertyCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Property **__MIDL_0456);


void __RPC_STUB PropertyCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PropertyCollection_get__NewEnum_Proxy( 
    PropertyCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PropertyCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PropertyCollection_GetAsText_Proxy( 
    PropertyCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0457);


void __RPC_STUB PropertyCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PropertyCollection_INTERFACE_DEFINED__ */


#ifndef __StaticKinematicStateCollection_INTERFACE_DEFINED__
#define __StaticKinematicStateCollection_INTERFACE_DEFINED__

/* interface StaticKinematicStateCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_StaticKinematicStateCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9f13fc80-f5e2-4a4d-9215-e917e52bd3be")
    StaticKinematicStateCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ StaticKinematicState **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ StaticKinematicStateCollection **__MIDL_0458) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ StaticKinematicState **__MIDL_0459) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0460) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct StaticKinematicStateCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            StaticKinematicStateCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            StaticKinematicStateCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            StaticKinematicStateCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            StaticKinematicStateCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            StaticKinematicStateCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            StaticKinematicStateCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            StaticKinematicStateCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            StaticKinematicStateCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ StaticKinematicState **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            StaticKinematicStateCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            StaticKinematicStateCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            StaticKinematicStateCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ StaticKinematicStateCollection **__MIDL_0458);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            StaticKinematicStateCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ StaticKinematicState **__MIDL_0459);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            StaticKinematicStateCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            StaticKinematicStateCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0460);
        
        END_INTERFACE
    } StaticKinematicStateCollectionVtbl;

    interface StaticKinematicStateCollection
    {
        CONST_VTBL struct StaticKinematicStateCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define StaticKinematicStateCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define StaticKinematicStateCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define StaticKinematicStateCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define StaticKinematicStateCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define StaticKinematicStateCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define StaticKinematicStateCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define StaticKinematicStateCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define StaticKinematicStateCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define StaticKinematicStateCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define StaticKinematicStateCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define StaticKinematicStateCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0458)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0458)

#define StaticKinematicStateCollection_Find(This,in_filter,__MIDL_0459)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0459)

#define StaticKinematicStateCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define StaticKinematicStateCollection_GetAsText(This,__MIDL_0460)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0460)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE StaticKinematicStateCollection_get_Item_Proxy( 
    StaticKinematicStateCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ StaticKinematicState **out_pParam);


void __RPC_STUB StaticKinematicStateCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE StaticKinematicStateCollection_get_Count_Proxy( 
    StaticKinematicStateCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB StaticKinematicStateCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE StaticKinematicStateCollection_get_NewEnum_Proxy( 
    StaticKinematicStateCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB StaticKinematicStateCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE StaticKinematicStateCollection_Filter_Proxy( 
    StaticKinematicStateCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ StaticKinematicStateCollection **__MIDL_0458);


void __RPC_STUB StaticKinematicStateCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE StaticKinematicStateCollection_Find_Proxy( 
    StaticKinematicStateCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ StaticKinematicState **__MIDL_0459);


void __RPC_STUB StaticKinematicStateCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE StaticKinematicStateCollection_get__NewEnum_Proxy( 
    StaticKinematicStateCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB StaticKinematicStateCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE StaticKinematicStateCollection_GetAsText_Proxy( 
    StaticKinematicStateCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0460);


void __RPC_STUB StaticKinematicStateCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __StaticKinematicStateCollection_INTERFACE_DEFINED__ */


#ifndef __Color_INTERFACE_DEFINED__
#define __Color_INTERFACE_DEFINED__

/* interface Color */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Color;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C83B6C11-5912-11d4-ACE0-0090275802BF")
    Color : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Red( 
            /* [retval][out] */ double *__MIDL_0111) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Red( 
            /* [in] */ double __MIDL_0112) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Green( 
            /* [retval][out] */ double *__MIDL_0113) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Green( 
            /* [in] */ double __MIDL_0114) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Blue( 
            /* [retval][out] */ double *__MIDL_0115) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Blue( 
            /* [in] */ double __MIDL_0116) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Alpha( 
            /* [retval][out] */ double *__MIDL_0117) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Alpha( 
            /* [in] */ double __MIDL_0118) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ColorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Color * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Color * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Color * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Color * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Color * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Color * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Color * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Red )( 
            Color * This,
            /* [retval][out] */ double *__MIDL_0111);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Red )( 
            Color * This,
            /* [in] */ double __MIDL_0112);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Green )( 
            Color * This,
            /* [retval][out] */ double *__MIDL_0113);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Green )( 
            Color * This,
            /* [in] */ double __MIDL_0114);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Blue )( 
            Color * This,
            /* [retval][out] */ double *__MIDL_0115);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Blue )( 
            Color * This,
            /* [in] */ double __MIDL_0116);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Alpha )( 
            Color * This,
            /* [retval][out] */ double *__MIDL_0117);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Alpha )( 
            Color * This,
            /* [in] */ double __MIDL_0118);
        
        END_INTERFACE
    } ColorVtbl;

    interface Color
    {
        CONST_VTBL struct ColorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Color_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Color_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Color_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Color_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Color_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Color_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Color_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Color_get_Red(This,__MIDL_0111)	\
    (This)->lpVtbl -> get_Red(This,__MIDL_0111)

#define Color_put_Red(This,__MIDL_0112)	\
    (This)->lpVtbl -> put_Red(This,__MIDL_0112)

#define Color_get_Green(This,__MIDL_0113)	\
    (This)->lpVtbl -> get_Green(This,__MIDL_0113)

#define Color_put_Green(This,__MIDL_0114)	\
    (This)->lpVtbl -> put_Green(This,__MIDL_0114)

#define Color_get_Blue(This,__MIDL_0115)	\
    (This)->lpVtbl -> get_Blue(This,__MIDL_0115)

#define Color_put_Blue(This,__MIDL_0116)	\
    (This)->lpVtbl -> put_Blue(This,__MIDL_0116)

#define Color_get_Alpha(This,__MIDL_0117)	\
    (This)->lpVtbl -> get_Alpha(This,__MIDL_0117)

#define Color_put_Alpha(This,__MIDL_0118)	\
    (This)->lpVtbl -> put_Alpha(This,__MIDL_0118)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Color_get_Red_Proxy( 
    Color * This,
    /* [retval][out] */ double *__MIDL_0111);


void __RPC_STUB Color_get_Red_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Color_put_Red_Proxy( 
    Color * This,
    /* [in] */ double __MIDL_0112);


void __RPC_STUB Color_put_Red_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Color_get_Green_Proxy( 
    Color * This,
    /* [retval][out] */ double *__MIDL_0113);


void __RPC_STUB Color_get_Green_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Color_put_Green_Proxy( 
    Color * This,
    /* [in] */ double __MIDL_0114);


void __RPC_STUB Color_put_Green_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Color_get_Blue_Proxy( 
    Color * This,
    /* [retval][out] */ double *__MIDL_0115);


void __RPC_STUB Color_get_Blue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Color_put_Blue_Proxy( 
    Color * This,
    /* [in] */ double __MIDL_0116);


void __RPC_STUB Color_put_Blue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Color_get_Alpha_Proxy( 
    Color * This,
    /* [retval][out] */ double *__MIDL_0117);


void __RPC_STUB Color_get_Alpha_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Color_put_Alpha_Proxy( 
    Color * This,
    /* [in] */ double __MIDL_0118);


void __RPC_STUB Color_put_Alpha_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Color_INTERFACE_DEFINED__ */


#ifndef __OGLMaterial_INTERFACE_DEFINED__
#define __OGLMaterial_INTERFACE_DEFINED__

/* interface OGLMaterial */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_OGLMaterial;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FED20681-59AC-11d4-ACE0-0090275802BF")
    OGLMaterial : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Diffuse( 
            /* [retval][out] */ Color **__MIDL_0103) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Specular( 
            /* [retval][out] */ Color **__MIDL_0104) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Ambient( 
            /* [retval][out] */ Color **__MIDL_0105) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Decay( 
            /* [retval][out] */ double *__MIDL_0106) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShadingModel( 
            /* [retval][out] */ siShadingModel *__MIDL_0107) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OGLMaterialVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            OGLMaterial * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            OGLMaterial * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            OGLMaterial * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            OGLMaterial * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            OGLMaterial * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            OGLMaterial * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            OGLMaterial * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Diffuse )( 
            OGLMaterial * This,
            /* [retval][out] */ Color **__MIDL_0103);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Specular )( 
            OGLMaterial * This,
            /* [retval][out] */ Color **__MIDL_0104);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ambient )( 
            OGLMaterial * This,
            /* [retval][out] */ Color **__MIDL_0105);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Decay )( 
            OGLMaterial * This,
            /* [retval][out] */ double *__MIDL_0106);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShadingModel )( 
            OGLMaterial * This,
            /* [retval][out] */ siShadingModel *__MIDL_0107);
        
        END_INTERFACE
    } OGLMaterialVtbl;

    interface OGLMaterial
    {
        CONST_VTBL struct OGLMaterialVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define OGLMaterial_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define OGLMaterial_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define OGLMaterial_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define OGLMaterial_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define OGLMaterial_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define OGLMaterial_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define OGLMaterial_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define OGLMaterial_get_Diffuse(This,__MIDL_0103)	\
    (This)->lpVtbl -> get_Diffuse(This,__MIDL_0103)

#define OGLMaterial_get_Specular(This,__MIDL_0104)	\
    (This)->lpVtbl -> get_Specular(This,__MIDL_0104)

#define OGLMaterial_get_Ambient(This,__MIDL_0105)	\
    (This)->lpVtbl -> get_Ambient(This,__MIDL_0105)

#define OGLMaterial_get_Decay(This,__MIDL_0106)	\
    (This)->lpVtbl -> get_Decay(This,__MIDL_0106)

#define OGLMaterial_get_ShadingModel(This,__MIDL_0107)	\
    (This)->lpVtbl -> get_ShadingModel(This,__MIDL_0107)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLMaterial_get_Diffuse_Proxy( 
    OGLMaterial * This,
    /* [retval][out] */ Color **__MIDL_0103);


void __RPC_STUB OGLMaterial_get_Diffuse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLMaterial_get_Specular_Proxy( 
    OGLMaterial * This,
    /* [retval][out] */ Color **__MIDL_0104);


void __RPC_STUB OGLMaterial_get_Specular_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLMaterial_get_Ambient_Proxy( 
    OGLMaterial * This,
    /* [retval][out] */ Color **__MIDL_0105);


void __RPC_STUB OGLMaterial_get_Ambient_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLMaterial_get_Decay_Proxy( 
    OGLMaterial * This,
    /* [retval][out] */ double *__MIDL_0106);


void __RPC_STUB OGLMaterial_get_Decay_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLMaterial_get_ShadingModel_Proxy( 
    OGLMaterial * This,
    /* [retval][out] */ siShadingModel *__MIDL_0107);


void __RPC_STUB OGLMaterial_get_ShadingModel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __OGLMaterial_INTERFACE_DEFINED__ */


#ifndef __OGLLight_INTERFACE_DEFINED__
#define __OGLLight_INTERFACE_DEFINED__

/* interface OGLLight */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_OGLLight;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F736AF42-5C0F-11d4-ACE0-0090275802BF")
    OGLLight : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ siLightType *__MIDL_0064) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Color( 
            /* [retval][out] */ Color **__MIDL_0065) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LightPosition( 
            /* [retval][out] */ IDispatch **__MIDL_0066) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InterestPosition( 
            /* [retval][out] */ IDispatch **__MIDL_0067) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ConeAngle( 
            /* [retval][out] */ double *__MIDL_0068) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OGLLightVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            OGLLight * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            OGLLight * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            OGLLight * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            OGLLight * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            OGLLight * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            OGLLight * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            OGLLight * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            OGLLight * This,
            /* [retval][out] */ siLightType *__MIDL_0064);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( 
            OGLLight * This,
            /* [retval][out] */ Color **__MIDL_0065);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LightPosition )( 
            OGLLight * This,
            /* [retval][out] */ IDispatch **__MIDL_0066);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterestPosition )( 
            OGLLight * This,
            /* [retval][out] */ IDispatch **__MIDL_0067);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ConeAngle )( 
            OGLLight * This,
            /* [retval][out] */ double *__MIDL_0068);
        
        END_INTERFACE
    } OGLLightVtbl;

    interface OGLLight
    {
        CONST_VTBL struct OGLLightVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define OGLLight_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define OGLLight_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define OGLLight_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define OGLLight_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define OGLLight_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define OGLLight_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define OGLLight_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define OGLLight_get_Type(This,__MIDL_0064)	\
    (This)->lpVtbl -> get_Type(This,__MIDL_0064)

#define OGLLight_get_Color(This,__MIDL_0065)	\
    (This)->lpVtbl -> get_Color(This,__MIDL_0065)

#define OGLLight_get_LightPosition(This,__MIDL_0066)	\
    (This)->lpVtbl -> get_LightPosition(This,__MIDL_0066)

#define OGLLight_get_InterestPosition(This,__MIDL_0067)	\
    (This)->lpVtbl -> get_InterestPosition(This,__MIDL_0067)

#define OGLLight_get_ConeAngle(This,__MIDL_0068)	\
    (This)->lpVtbl -> get_ConeAngle(This,__MIDL_0068)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLLight_get_Type_Proxy( 
    OGLLight * This,
    /* [retval][out] */ siLightType *__MIDL_0064);


void __RPC_STUB OGLLight_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLLight_get_Color_Proxy( 
    OGLLight * This,
    /* [retval][out] */ Color **__MIDL_0065);


void __RPC_STUB OGLLight_get_Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLLight_get_LightPosition_Proxy( 
    OGLLight * This,
    /* [retval][out] */ IDispatch **__MIDL_0066);


void __RPC_STUB OGLLight_get_LightPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLLight_get_InterestPosition_Proxy( 
    OGLLight * This,
    /* [retval][out] */ IDispatch **__MIDL_0067);


void __RPC_STUB OGLLight_get_InterestPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLLight_get_ConeAngle_Proxy( 
    OGLLight * This,
    /* [retval][out] */ double *__MIDL_0068);


void __RPC_STUB OGLLight_get_ConeAngle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __OGLLight_INTERFACE_DEFINED__ */


#ifndef __OGLTexture_INTERFACE_DEFINED__
#define __OGLTexture_INTERFACE_DEFINED__

/* interface OGLTexture */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_OGLTexture;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F736AF41-5C0F-11d4-ACE0-0090275802BF")
    OGLTexture : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ INT *__MIDL_0108) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ INT *__MIDL_0109) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FullName( 
            /* [retval][out] */ BSTR *__MIDL_0110) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct OGLTextureVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            OGLTexture * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            OGLTexture * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            OGLTexture * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            OGLTexture * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            OGLTexture * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            OGLTexture * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            OGLTexture * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            OGLTexture * This,
            /* [retval][out] */ INT *__MIDL_0108);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            OGLTexture * This,
            /* [retval][out] */ INT *__MIDL_0109);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FullName )( 
            OGLTexture * This,
            /* [retval][out] */ BSTR *__MIDL_0110);
        
        END_INTERFACE
    } OGLTextureVtbl;

    interface OGLTexture
    {
        CONST_VTBL struct OGLTextureVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define OGLTexture_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define OGLTexture_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define OGLTexture_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define OGLTexture_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define OGLTexture_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define OGLTexture_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define OGLTexture_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define OGLTexture_get_Width(This,__MIDL_0108)	\
    (This)->lpVtbl -> get_Width(This,__MIDL_0108)

#define OGLTexture_get_Height(This,__MIDL_0109)	\
    (This)->lpVtbl -> get_Height(This,__MIDL_0109)

#define OGLTexture_get_FullName(This,__MIDL_0110)	\
    (This)->lpVtbl -> get_FullName(This,__MIDL_0110)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLTexture_get_Width_Proxy( 
    OGLTexture * This,
    /* [retval][out] */ INT *__MIDL_0108);


void __RPC_STUB OGLTexture_get_Width_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLTexture_get_Height_Proxy( 
    OGLTexture * This,
    /* [retval][out] */ INT *__MIDL_0109);


void __RPC_STUB OGLTexture_get_Height_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE OGLTexture_get_FullName_Proxy( 
    OGLTexture * This,
    /* [retval][out] */ BSTR *__MIDL_0110);


void __RPC_STUB OGLTexture_get_FullName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __OGLTexture_INTERFACE_DEFINED__ */


#ifndef __ParticleAttribute_INTERFACE_DEFINED__
#define __ParticleAttribute_INTERFACE_DEFINED__

/* interface ParticleAttribute */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ParticleAttribute;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a7d62b43-a260-4020-a57e-7548842612fb")
    ParticleAttribute : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ VARIANT *out_pvValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT in_vValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AttributeType( 
            /* [retval][out] */ siParticleAttributeType *out_pType) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ParticleAttributeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ParticleAttribute * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ParticleAttribute * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ParticleAttribute * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ParticleAttribute * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ParticleAttribute * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ParticleAttribute * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ParticleAttribute * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            ParticleAttribute * This,
            /* [retval][out] */ VARIANT *out_pvValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            ParticleAttribute * This,
            /* [in] */ VARIANT in_vValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AttributeType )( 
            ParticleAttribute * This,
            /* [retval][out] */ siParticleAttributeType *out_pType);
        
        END_INTERFACE
    } ParticleAttributeVtbl;

    interface ParticleAttribute
    {
        CONST_VTBL struct ParticleAttributeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ParticleAttribute_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ParticleAttribute_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ParticleAttribute_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ParticleAttribute_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ParticleAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ParticleAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ParticleAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ParticleAttribute_get_Value(This,out_pvValue)	\
    (This)->lpVtbl -> get_Value(This,out_pvValue)

#define ParticleAttribute_put_Value(This,in_vValue)	\
    (This)->lpVtbl -> put_Value(This,in_vValue)

#define ParticleAttribute_get_AttributeType(This,out_pType)	\
    (This)->lpVtbl -> get_AttributeType(This,out_pType)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleAttribute_get_Value_Proxy( 
    ParticleAttribute * This,
    /* [retval][out] */ VARIANT *out_pvValue);


void __RPC_STUB ParticleAttribute_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ParticleAttribute_put_Value_Proxy( 
    ParticleAttribute * This,
    /* [in] */ VARIANT in_vValue);


void __RPC_STUB ParticleAttribute_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ParticleAttribute_get_AttributeType_Proxy( 
    ParticleAttribute * This,
    /* [retval][out] */ siParticleAttributeType *out_pType);


void __RPC_STUB ParticleAttribute_get_AttributeType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ParticleAttribute_INTERFACE_DEFINED__ */


#ifndef __Filter_INTERFACE_DEFINED__
#define __Filter_INTERFACE_DEFINED__

/* interface Filter */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Filter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A0E068A0-1228-4dd1-BB74-0E5C42343A7B")
    Filter : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Match( 
            /* [defaultvalue][in] */ IDispatch *in_pObj,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsApplicable( 
            /* [defaultvalue][in] */ IDispatch *in_pObjects,
            /* [retval][out] */ VARIANT_BOOL *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Subset( 
            /* [defaultvalue][in] */ IDispatch *in_pObjects,
            /* [retval][out] */ XSICollection **out_pColl) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FilterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Filter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Filter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Filter * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Filter * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Filter * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Filter * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Filter * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Match )( 
            Filter * This,
            /* [defaultvalue][in] */ IDispatch *in_pObj,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsApplicable )( 
            Filter * This,
            /* [defaultvalue][in] */ IDispatch *in_pObjects,
            /* [retval][out] */ VARIANT_BOOL *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Subset )( 
            Filter * This,
            /* [defaultvalue][in] */ IDispatch *in_pObjects,
            /* [retval][out] */ XSICollection **out_pColl);
        
        END_INTERFACE
    } FilterVtbl;

    interface Filter
    {
        CONST_VTBL struct FilterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Filter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Filter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Filter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Filter_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Filter_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Filter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Filter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Filter_Match(This,in_pObj,out_pVal)	\
    (This)->lpVtbl -> Match(This,in_pObj,out_pVal)

#define Filter_IsApplicable(This,in_pObjects,out_pVal)	\
    (This)->lpVtbl -> IsApplicable(This,in_pObjects,out_pVal)

#define Filter_Subset(This,in_pObjects,out_pColl)	\
    (This)->lpVtbl -> Subset(This,in_pObjects,out_pColl)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Filter_Match_Proxy( 
    Filter * This,
    /* [defaultvalue][in] */ IDispatch *in_pObj,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB Filter_Match_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Filter_IsApplicable_Proxy( 
    Filter * This,
    /* [defaultvalue][in] */ IDispatch *in_pObjects,
    /* [retval][out] */ VARIANT_BOOL *out_pVal);


void __RPC_STUB Filter_IsApplicable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Filter_Subset_Proxy( 
    Filter * This,
    /* [defaultvalue][in] */ IDispatch *in_pObjects,
    /* [retval][out] */ XSICollection **out_pColl);


void __RPC_STUB Filter_Subset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Filter_INTERFACE_DEFINED__ */


#ifndef __FilterCollection_INTERFACE_DEFINED__
#define __FilterCollection_INTERFACE_DEFINED__

/* interface FilterCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_FilterCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("34D9C6CB-CB52-4d9d-B194-B767F618494F")
    FilterCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Filter **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FilterCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FilterCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FilterCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FilterCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FilterCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FilterCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FilterCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FilterCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            FilterCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Filter **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            FilterCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            FilterCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } FilterCollectionVtbl;

    interface FilterCollection
    {
        CONST_VTBL struct FilterCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define FilterCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define FilterCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define FilterCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define FilterCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define FilterCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define FilterCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define FilterCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define FilterCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define FilterCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define FilterCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE FilterCollection_get_Item_Proxy( 
    FilterCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Filter **out_pParam);


void __RPC_STUB FilterCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE FilterCollection_get_Count_Proxy( 
    FilterCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB FilterCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE FilterCollection_get__NewEnum_Proxy( 
    FilterCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB FilterCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FilterCollection_INTERFACE_DEFINED__ */


#ifndef __GridData_INTERFACE_DEFINED__
#define __GridData_INTERFACE_DEFINED__

/* interface GridData */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_GridData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("51BAFD67-E3E8-451d-895A-92FAFD3F677C")
    GridData : public IDispatch
    {
    public:
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Data( 
            /* [in] */ VARIANT in_ArrayAllCells) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Data( 
            /* [retval][out] */ VARIANT *out_ArrayAllCells) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ColumnCount( 
            /* [retval][out] */ LONG *out_Columns) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_ColumnCount( 
            /* [in] */ LONG in_Columns) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_RowCount( 
            /* [retval][out] */ LONG *out_Rows) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_RowCount( 
            /* [in] */ LONG in_Rows) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetCell( 
            /* [in] */ VARIANT in_Column,
            /* [in] */ VARIANT in_Row,
            /* [in] */ VARIANT in_CellValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCell( 
            /* [in] */ VARIANT in_Column,
            /* [in] */ VARIANT in_Row,
            /* [retval][out] */ VARIANT *out_CellValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetColumnValues( 
            /* [in] */ VARIANT in_Column,
            /* [in] */ VARIANT in_1DArray) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetColumnValues( 
            /* [in] */ VARIANT in_Column,
            /* [retval][out] */ VARIANT *out_p1DArray) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetRowValues( 
            /* [in] */ VARIANT in_Row,
            /* [in] */ VARIANT in_1DArray) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetRowValues( 
            /* [in] */ VARIANT in_Row,
            /* [retval][out] */ VARIANT *out_p1DArray) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetRowLabel( 
            /* [in] */ LONG in_RowIndex,
            /* [in] */ BSTR in_Label) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetRowLabel( 
            /* [in] */ LONG in_RowIndex,
            /* [retval][out] */ BSTR *out_pLabel) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetColumnLabel( 
            /* [in] */ LONG in_ColumnIndex,
            /* [in] */ BSTR in_Label) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetColumnLabel( 
            /* [in] */ LONG in_ColumnIndex,
            /* [retval][out] */ BSTR *out_pLabel) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetColumnType( 
            /* [in] */ LONG in_ColumnIndex,
            /* [in] */ siGridWidgetColumnType in_Type) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetColumnType( 
            /* [in] */ LONG in_ColumnIndex,
            /* [retval][out] */ siGridWidgetColumnType *out_Type) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetColumnComboItems( 
            /* [in] */ LONG in_ColumnIndex,
            /* [in] */ VARIANT in_Items) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetColumnComboItems( 
            /* [in] */ LONG in_ColumnIndex,
            /* [retval][out] */ VARIANT *out_Items) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE BeginEdit( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EndEdit( void) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_GridWidget( 
            /* [retval][out] */ GridWidget **out_GridWidget) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetRowBackgroundColor( 
            /* [in] */ LONG in_Row,
            /* [in] */ Color *in_pColor) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetRowBackgroundColor( 
            /* [in] */ LONG in_Row,
            /* [retval][out] */ Color **out_ppColor) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct GridDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            GridData * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            GridData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            GridData * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            GridData * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            GridData * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            GridData * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            GridData * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Data )( 
            GridData * This,
            /* [in] */ VARIANT in_ArrayAllCells);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Data )( 
            GridData * This,
            /* [retval][out] */ VARIANT *out_ArrayAllCells);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColumnCount )( 
            GridData * This,
            /* [retval][out] */ LONG *out_Columns);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ColumnCount )( 
            GridData * This,
            /* [in] */ LONG in_Columns);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RowCount )( 
            GridData * This,
            /* [retval][out] */ LONG *out_Rows);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RowCount )( 
            GridData * This,
            /* [in] */ LONG in_Rows);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetCell )( 
            GridData * This,
            /* [in] */ VARIANT in_Column,
            /* [in] */ VARIANT in_Row,
            /* [in] */ VARIANT in_CellValue);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCell )( 
            GridData * This,
            /* [in] */ VARIANT in_Column,
            /* [in] */ VARIANT in_Row,
            /* [retval][out] */ VARIANT *out_CellValue);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetColumnValues )( 
            GridData * This,
            /* [in] */ VARIANT in_Column,
            /* [in] */ VARIANT in_1DArray);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetColumnValues )( 
            GridData * This,
            /* [in] */ VARIANT in_Column,
            /* [retval][out] */ VARIANT *out_p1DArray);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetRowValues )( 
            GridData * This,
            /* [in] */ VARIANT in_Row,
            /* [in] */ VARIANT in_1DArray);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetRowValues )( 
            GridData * This,
            /* [in] */ VARIANT in_Row,
            /* [retval][out] */ VARIANT *out_p1DArray);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetRowLabel )( 
            GridData * This,
            /* [in] */ LONG in_RowIndex,
            /* [in] */ BSTR in_Label);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetRowLabel )( 
            GridData * This,
            /* [in] */ LONG in_RowIndex,
            /* [retval][out] */ BSTR *out_pLabel);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetColumnLabel )( 
            GridData * This,
            /* [in] */ LONG in_ColumnIndex,
            /* [in] */ BSTR in_Label);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetColumnLabel )( 
            GridData * This,
            /* [in] */ LONG in_ColumnIndex,
            /* [retval][out] */ BSTR *out_pLabel);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetColumnType )( 
            GridData * This,
            /* [in] */ LONG in_ColumnIndex,
            /* [in] */ siGridWidgetColumnType in_Type);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetColumnType )( 
            GridData * This,
            /* [in] */ LONG in_ColumnIndex,
            /* [retval][out] */ siGridWidgetColumnType *out_Type);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetColumnComboItems )( 
            GridData * This,
            /* [in] */ LONG in_ColumnIndex,
            /* [in] */ VARIANT in_Items);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetColumnComboItems )( 
            GridData * This,
            /* [in] */ LONG in_ColumnIndex,
            /* [retval][out] */ VARIANT *out_Items);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *BeginEdit )( 
            GridData * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EndEdit )( 
            GridData * This);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GridWidget )( 
            GridData * This,
            /* [retval][out] */ GridWidget **out_GridWidget);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetRowBackgroundColor )( 
            GridData * This,
            /* [in] */ LONG in_Row,
            /* [in] */ Color *in_pColor);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetRowBackgroundColor )( 
            GridData * This,
            /* [in] */ LONG in_Row,
            /* [retval][out] */ Color **out_ppColor);
        
        END_INTERFACE
    } GridDataVtbl;

    interface GridData
    {
        CONST_VTBL struct GridDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define GridData_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define GridData_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define GridData_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define GridData_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define GridData_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define GridData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define GridData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define GridData_put_Data(This,in_ArrayAllCells)	\
    (This)->lpVtbl -> put_Data(This,in_ArrayAllCells)

#define GridData_get_Data(This,out_ArrayAllCells)	\
    (This)->lpVtbl -> get_Data(This,out_ArrayAllCells)

#define GridData_get_ColumnCount(This,out_Columns)	\
    (This)->lpVtbl -> get_ColumnCount(This,out_Columns)

#define GridData_put_ColumnCount(This,in_Columns)	\
    (This)->lpVtbl -> put_ColumnCount(This,in_Columns)

#define GridData_get_RowCount(This,out_Rows)	\
    (This)->lpVtbl -> get_RowCount(This,out_Rows)

#define GridData_put_RowCount(This,in_Rows)	\
    (This)->lpVtbl -> put_RowCount(This,in_Rows)

#define GridData_SetCell(This,in_Column,in_Row,in_CellValue)	\
    (This)->lpVtbl -> SetCell(This,in_Column,in_Row,in_CellValue)

#define GridData_GetCell(This,in_Column,in_Row,out_CellValue)	\
    (This)->lpVtbl -> GetCell(This,in_Column,in_Row,out_CellValue)

#define GridData_SetColumnValues(This,in_Column,in_1DArray)	\
    (This)->lpVtbl -> SetColumnValues(This,in_Column,in_1DArray)

#define GridData_GetColumnValues(This,in_Column,out_p1DArray)	\
    (This)->lpVtbl -> GetColumnValues(This,in_Column,out_p1DArray)

#define GridData_SetRowValues(This,in_Row,in_1DArray)	\
    (This)->lpVtbl -> SetRowValues(This,in_Row,in_1DArray)

#define GridData_GetRowValues(This,in_Row,out_p1DArray)	\
    (This)->lpVtbl -> GetRowValues(This,in_Row,out_p1DArray)

#define GridData_SetRowLabel(This,in_RowIndex,in_Label)	\
    (This)->lpVtbl -> SetRowLabel(This,in_RowIndex,in_Label)

#define GridData_GetRowLabel(This,in_RowIndex,out_pLabel)	\
    (This)->lpVtbl -> GetRowLabel(This,in_RowIndex,out_pLabel)

#define GridData_SetColumnLabel(This,in_ColumnIndex,in_Label)	\
    (This)->lpVtbl -> SetColumnLabel(This,in_ColumnIndex,in_Label)

#define GridData_GetColumnLabel(This,in_ColumnIndex,out_pLabel)	\
    (This)->lpVtbl -> GetColumnLabel(This,in_ColumnIndex,out_pLabel)

#define GridData_SetColumnType(This,in_ColumnIndex,in_Type)	\
    (This)->lpVtbl -> SetColumnType(This,in_ColumnIndex,in_Type)

#define GridData_GetColumnType(This,in_ColumnIndex,out_Type)	\
    (This)->lpVtbl -> GetColumnType(This,in_ColumnIndex,out_Type)

#define GridData_SetColumnComboItems(This,in_ColumnIndex,in_Items)	\
    (This)->lpVtbl -> SetColumnComboItems(This,in_ColumnIndex,in_Items)

#define GridData_GetColumnComboItems(This,in_ColumnIndex,out_Items)	\
    (This)->lpVtbl -> GetColumnComboItems(This,in_ColumnIndex,out_Items)

#define GridData_BeginEdit(This)	\
    (This)->lpVtbl -> BeginEdit(This)

#define GridData_EndEdit(This)	\
    (This)->lpVtbl -> EndEdit(This)

#define GridData_get_GridWidget(This,out_GridWidget)	\
    (This)->lpVtbl -> get_GridWidget(This,out_GridWidget)

#define GridData_SetRowBackgroundColor(This,in_Row,in_pColor)	\
    (This)->lpVtbl -> SetRowBackgroundColor(This,in_Row,in_pColor)

#define GridData_GetRowBackgroundColor(This,in_Row,out_ppColor)	\
    (This)->lpVtbl -> GetRowBackgroundColor(This,in_Row,out_ppColor)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propput] */ HRESULT STDMETHODCALLTYPE GridData_put_Data_Proxy( 
    GridData * This,
    /* [in] */ VARIANT in_ArrayAllCells);


void __RPC_STUB GridData_put_Data_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE GridData_get_Data_Proxy( 
    GridData * This,
    /* [retval][out] */ VARIANT *out_ArrayAllCells);


void __RPC_STUB GridData_get_Data_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE GridData_get_ColumnCount_Proxy( 
    GridData * This,
    /* [retval][out] */ LONG *out_Columns);


void __RPC_STUB GridData_get_ColumnCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE GridData_put_ColumnCount_Proxy( 
    GridData * This,
    /* [in] */ LONG in_Columns);


void __RPC_STUB GridData_put_ColumnCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE GridData_get_RowCount_Proxy( 
    GridData * This,
    /* [retval][out] */ LONG *out_Rows);


void __RPC_STUB GridData_get_RowCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE GridData_put_RowCount_Proxy( 
    GridData * This,
    /* [in] */ LONG in_Rows);


void __RPC_STUB GridData_put_RowCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetCell_Proxy( 
    GridData * This,
    /* [in] */ VARIANT in_Column,
    /* [in] */ VARIANT in_Row,
    /* [in] */ VARIANT in_CellValue);


void __RPC_STUB GridData_SetCell_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetCell_Proxy( 
    GridData * This,
    /* [in] */ VARIANT in_Column,
    /* [in] */ VARIANT in_Row,
    /* [retval][out] */ VARIANT *out_CellValue);


void __RPC_STUB GridData_GetCell_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetColumnValues_Proxy( 
    GridData * This,
    /* [in] */ VARIANT in_Column,
    /* [in] */ VARIANT in_1DArray);


void __RPC_STUB GridData_SetColumnValues_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetColumnValues_Proxy( 
    GridData * This,
    /* [in] */ VARIANT in_Column,
    /* [retval][out] */ VARIANT *out_p1DArray);


void __RPC_STUB GridData_GetColumnValues_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetRowValues_Proxy( 
    GridData * This,
    /* [in] */ VARIANT in_Row,
    /* [in] */ VARIANT in_1DArray);


void __RPC_STUB GridData_SetRowValues_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetRowValues_Proxy( 
    GridData * This,
    /* [in] */ VARIANT in_Row,
    /* [retval][out] */ VARIANT *out_p1DArray);


void __RPC_STUB GridData_GetRowValues_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetRowLabel_Proxy( 
    GridData * This,
    /* [in] */ LONG in_RowIndex,
    /* [in] */ BSTR in_Label);


void __RPC_STUB GridData_SetRowLabel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetRowLabel_Proxy( 
    GridData * This,
    /* [in] */ LONG in_RowIndex,
    /* [retval][out] */ BSTR *out_pLabel);


void __RPC_STUB GridData_GetRowLabel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetColumnLabel_Proxy( 
    GridData * This,
    /* [in] */ LONG in_ColumnIndex,
    /* [in] */ BSTR in_Label);


void __RPC_STUB GridData_SetColumnLabel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetColumnLabel_Proxy( 
    GridData * This,
    /* [in] */ LONG in_ColumnIndex,
    /* [retval][out] */ BSTR *out_pLabel);


void __RPC_STUB GridData_GetColumnLabel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetColumnType_Proxy( 
    GridData * This,
    /* [in] */ LONG in_ColumnIndex,
    /* [in] */ siGridWidgetColumnType in_Type);


void __RPC_STUB GridData_SetColumnType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetColumnType_Proxy( 
    GridData * This,
    /* [in] */ LONG in_ColumnIndex,
    /* [retval][out] */ siGridWidgetColumnType *out_Type);


void __RPC_STUB GridData_GetColumnType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetColumnComboItems_Proxy( 
    GridData * This,
    /* [in] */ LONG in_ColumnIndex,
    /* [in] */ VARIANT in_Items);


void __RPC_STUB GridData_SetColumnComboItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetColumnComboItems_Proxy( 
    GridData * This,
    /* [in] */ LONG in_ColumnIndex,
    /* [retval][out] */ VARIANT *out_Items);


void __RPC_STUB GridData_GetColumnComboItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_BeginEdit_Proxy( 
    GridData * This);


void __RPC_STUB GridData_BeginEdit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_EndEdit_Proxy( 
    GridData * This);


void __RPC_STUB GridData_EndEdit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE GridData_get_GridWidget_Proxy( 
    GridData * This,
    /* [retval][out] */ GridWidget **out_GridWidget);


void __RPC_STUB GridData_get_GridWidget_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_SetRowBackgroundColor_Proxy( 
    GridData * This,
    /* [in] */ LONG in_Row,
    /* [in] */ Color *in_pColor);


void __RPC_STUB GridData_SetRowBackgroundColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridData_GetRowBackgroundColor_Proxy( 
    GridData * This,
    /* [in] */ LONG in_Row,
    /* [retval][out] */ Color **out_ppColor);


void __RPC_STUB GridData_GetRowBackgroundColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __GridData_INTERFACE_DEFINED__ */


#ifndef __GridWidget_INTERFACE_DEFINED__
#define __GridWidget_INTERFACE_DEFINED__

/* interface GridWidget */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_GridWidget;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E023A3A2-818F-4185-9E3A-6354E0A55C9B")
    GridWidget : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE IsCellSelected( 
            /* [in] */ LONG in_Column,
            /* [in] */ LONG in_Row,
            /* [retval][out] */ VARIANT_BOOL *out_pIsSel) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE IsRowSelected( 
            /* [in] */ LONG in_Row,
            /* [retval][out] */ VARIANT_BOOL *out_pIsSel) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE IsColumnSelected( 
            /* [in] */ LONG in_Column,
            /* [retval][out] */ VARIANT_BOOL *out_pIsSel) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddToSelection( 
            /* [in] */ LONG in_Column,
            /* [in] */ LONG in_Row) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE ClearSelection( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SortColumn( 
            /* [in] */ LONG in_Column,
            /* [in] */ VARIANT_BOOL in_bAscending) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct GridWidgetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            GridWidget * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            GridWidget * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            GridWidget * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            GridWidget * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            GridWidget * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            GridWidget * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            GridWidget * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsCellSelected )( 
            GridWidget * This,
            /* [in] */ LONG in_Column,
            /* [in] */ LONG in_Row,
            /* [retval][out] */ VARIANT_BOOL *out_pIsSel);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsRowSelected )( 
            GridWidget * This,
            /* [in] */ LONG in_Row,
            /* [retval][out] */ VARIANT_BOOL *out_pIsSel);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsColumnSelected )( 
            GridWidget * This,
            /* [in] */ LONG in_Column,
            /* [retval][out] */ VARIANT_BOOL *out_pIsSel);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddToSelection )( 
            GridWidget * This,
            /* [in] */ LONG in_Column,
            /* [in] */ LONG in_Row);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ClearSelection )( 
            GridWidget * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SortColumn )( 
            GridWidget * This,
            /* [in] */ LONG in_Column,
            /* [in] */ VARIANT_BOOL in_bAscending);
        
        END_INTERFACE
    } GridWidgetVtbl;

    interface GridWidget
    {
        CONST_VTBL struct GridWidgetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define GridWidget_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define GridWidget_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define GridWidget_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define GridWidget_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define GridWidget_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define GridWidget_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define GridWidget_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define GridWidget_IsCellSelected(This,in_Column,in_Row,out_pIsSel)	\
    (This)->lpVtbl -> IsCellSelected(This,in_Column,in_Row,out_pIsSel)

#define GridWidget_IsRowSelected(This,in_Row,out_pIsSel)	\
    (This)->lpVtbl -> IsRowSelected(This,in_Row,out_pIsSel)

#define GridWidget_IsColumnSelected(This,in_Column,out_pIsSel)	\
    (This)->lpVtbl -> IsColumnSelected(This,in_Column,out_pIsSel)

#define GridWidget_AddToSelection(This,in_Column,in_Row)	\
    (This)->lpVtbl -> AddToSelection(This,in_Column,in_Row)

#define GridWidget_ClearSelection(This)	\
    (This)->lpVtbl -> ClearSelection(This)

#define GridWidget_SortColumn(This,in_Column,in_bAscending)	\
    (This)->lpVtbl -> SortColumn(This,in_Column,in_bAscending)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id] */ HRESULT STDMETHODCALLTYPE GridWidget_IsCellSelected_Proxy( 
    GridWidget * This,
    /* [in] */ LONG in_Column,
    /* [in] */ LONG in_Row,
    /* [retval][out] */ VARIANT_BOOL *out_pIsSel);


void __RPC_STUB GridWidget_IsCellSelected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridWidget_IsRowSelected_Proxy( 
    GridWidget * This,
    /* [in] */ LONG in_Row,
    /* [retval][out] */ VARIANT_BOOL *out_pIsSel);


void __RPC_STUB GridWidget_IsRowSelected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridWidget_IsColumnSelected_Proxy( 
    GridWidget * This,
    /* [in] */ LONG in_Column,
    /* [retval][out] */ VARIANT_BOOL *out_pIsSel);


void __RPC_STUB GridWidget_IsColumnSelected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridWidget_AddToSelection_Proxy( 
    GridWidget * This,
    /* [in] */ LONG in_Column,
    /* [in] */ LONG in_Row);


void __RPC_STUB GridWidget_AddToSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridWidget_ClearSelection_Proxy( 
    GridWidget * This);


void __RPC_STUB GridWidget_ClearSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE GridWidget_SortColumn_Proxy( 
    GridWidget * This,
    /* [in] */ LONG in_Column,
    /* [in] */ VARIANT_BOOL in_bAscending);


void __RPC_STUB GridWidget_SortColumn_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __GridWidget_INTERFACE_DEFINED__ */


#ifndef __Library_INTERFACE_DEFINED__
#define __Library_INTERFACE_DEFINED__

/* interface Library */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Library;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9635522F-0459-4138-AE5D-8900E6857EB9")
    Library : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Items( 
            /* [retval][out] */ ProjectItemCollection **out_ppItemCol) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct LibraryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Library * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Library * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Library * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Library * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Library * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Library * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Library * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Items )( 
            Library * This,
            /* [retval][out] */ ProjectItemCollection **out_ppItemCol);
        
        END_INTERFACE
    } LibraryVtbl;

    interface Library
    {
        CONST_VTBL struct LibraryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Library_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Library_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Library_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Library_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Library_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Library_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Library_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Library_get_Items(This,out_ppItemCol)	\
    (This)->lpVtbl -> get_Items(This,out_ppItemCol)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Library_get_Items_Proxy( 
    Library * This,
    /* [retval][out] */ ProjectItemCollection **out_ppItemCol);


void __RPC_STUB Library_get_Items_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Library_INTERFACE_DEFINED__ */


#ifndef __MaterialLibrary_INTERFACE_DEFINED__
#define __MaterialLibrary_INTERFACE_DEFINED__

/* interface MaterialLibrary */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_MaterialLibrary;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D2EA14E6-3AEA-4bea-BDEE-578794649D61")
    MaterialLibrary : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateMaterial( 
            BSTR presetName,
            BSTR matName,
            /* [retval][out] */ Material **out_ppMat) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct MaterialLibraryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            MaterialLibrary * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            MaterialLibrary * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            MaterialLibrary * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            MaterialLibrary * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            MaterialLibrary * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            MaterialLibrary * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            MaterialLibrary * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateMaterial )( 
            MaterialLibrary * This,
            BSTR presetName,
            BSTR matName,
            /* [retval][out] */ Material **out_ppMat);
        
        END_INTERFACE
    } MaterialLibraryVtbl;

    interface MaterialLibrary
    {
        CONST_VTBL struct MaterialLibraryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define MaterialLibrary_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define MaterialLibrary_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define MaterialLibrary_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define MaterialLibrary_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define MaterialLibrary_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define MaterialLibrary_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define MaterialLibrary_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define MaterialLibrary_CreateMaterial(This,presetName,matName,out_ppMat)	\
    (This)->lpVtbl -> CreateMaterial(This,presetName,matName,out_ppMat)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MaterialLibrary_CreateMaterial_Proxy( 
    MaterialLibrary * This,
    BSTR presetName,
    BSTR matName,
    /* [retval][out] */ Material **out_ppMat);


void __RPC_STUB MaterialLibrary_CreateMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __MaterialLibrary_INTERFACE_DEFINED__ */


#ifndef __CollectionItemLegacy_INTERFACE_DEFINED__
#define __CollectionItemLegacy_INTERFACE_DEFINED__

/* interface CollectionItemLegacy */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_CollectionItemLegacy;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BA4A0558-E609-4746-B185-8082B707A1C6")
    CollectionItemLegacy : public IDispatch
    {
    public:
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SubElements( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_SubElements( 
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PathItems( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BranchFlag( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_BranchFlag( 
            /* [in] */ LONG newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Families( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Capabilities( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Obj( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Obj( 
            /* [in] */ LPUNKNOWN newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Singleton( 
            /* [retval][out] */ BOOL *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindAttrib( 
            BSTR __MIDL_0589,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_IsA( 
            LONG __MIDL_0590,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Selected( 
            /* [optional][in] */ LONG newVal,
            /* [retval][out] */ BOOL *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SubElements2( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CollectionItemLegacyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            CollectionItemLegacy * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            CollectionItemLegacy * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            CollectionItemLegacy * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            CollectionItemLegacy * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            CollectionItemLegacy * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            CollectionItemLegacy * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            CollectionItemLegacy * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            CollectionItemLegacy * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubElements )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SubElements )( 
            CollectionItemLegacy * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathItems )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BranchFlag )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BranchFlag )( 
            CollectionItemLegacy * This,
            /* [in] */ LONG newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Families )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Capabilities )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Obj )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Obj )( 
            CollectionItemLegacy * This,
            /* [in] */ LPUNKNOWN newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Singleton )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ BOOL *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindAttrib )( 
            CollectionItemLegacy * This,
            BSTR __MIDL_0589,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsA )( 
            CollectionItemLegacy * This,
            LONG __MIDL_0590,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Selected )( 
            CollectionItemLegacy * This,
            /* [optional][in] */ LONG newVal,
            /* [retval][out] */ BOOL *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ SubComponent **pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubElements2 )( 
            CollectionItemLegacy * This,
            /* [retval][out] */ VARIANT *pVal);
        
        END_INTERFACE
    } CollectionItemLegacyVtbl;

    interface CollectionItemLegacy
    {
        CONST_VTBL struct CollectionItemLegacyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define CollectionItemLegacy_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define CollectionItemLegacy_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define CollectionItemLegacy_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define CollectionItemLegacy_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define CollectionItemLegacy_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define CollectionItemLegacy_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define CollectionItemLegacy_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define CollectionItemLegacy_get_Value(This,pVal)	\
    (This)->lpVtbl -> get_Value(This,pVal)

#define CollectionItemLegacy_put_Value(This,newVal)	\
    (This)->lpVtbl -> put_Value(This,newVal)

#define CollectionItemLegacy_get_SubElements(This,pVal)	\
    (This)->lpVtbl -> get_SubElements(This,pVal)

#define CollectionItemLegacy_put_SubElements(This,newVal)	\
    (This)->lpVtbl -> put_SubElements(This,newVal)

#define CollectionItemLegacy_get_PathItems(This,pVal)	\
    (This)->lpVtbl -> get_PathItems(This,pVal)

#define CollectionItemLegacy_get_BranchFlag(This,pVal)	\
    (This)->lpVtbl -> get_BranchFlag(This,pVal)

#define CollectionItemLegacy_put_BranchFlag(This,newVal)	\
    (This)->lpVtbl -> put_BranchFlag(This,newVal)

#define CollectionItemLegacy_get_Families(This,pVal)	\
    (This)->lpVtbl -> get_Families(This,pVal)

#define CollectionItemLegacy_get_Capabilities(This,pVal)	\
    (This)->lpVtbl -> get_Capabilities(This,pVal)

#define CollectionItemLegacy_get_Obj(This,pVal)	\
    (This)->lpVtbl -> get_Obj(This,pVal)

#define CollectionItemLegacy_put_Obj(This,newVal)	\
    (This)->lpVtbl -> put_Obj(This,newVal)

#define CollectionItemLegacy_get_Singleton(This,pVal)	\
    (This)->lpVtbl -> get_Singleton(This,pVal)

#define CollectionItemLegacy_FindAttrib(This,__MIDL_0589,pVal)	\
    (This)->lpVtbl -> FindAttrib(This,__MIDL_0589,pVal)

#define CollectionItemLegacy_get_IsA(This,__MIDL_0590,pVal)	\
    (This)->lpVtbl -> get_IsA(This,__MIDL_0590,pVal)

#define CollectionItemLegacy_get_Selected(This,newVal,pVal)	\
    (This)->lpVtbl -> get_Selected(This,newVal,pVal)

#define CollectionItemLegacy_get_SubComponent(This,pVal)	\
    (This)->lpVtbl -> get_SubComponent(This,pVal)

#define CollectionItemLegacy_get_SubElements2(This,pVal)	\
    (This)->lpVtbl -> get_SubElements2(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_Value_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItemLegacy_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_put_Value_Proxy( 
    CollectionItemLegacy * This,
    /* [in] */ BSTR newVal);


void __RPC_STUB CollectionItemLegacy_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_SubElements_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItemLegacy_get_SubElements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_put_SubElements_Proxy( 
    CollectionItemLegacy * This,
    /* [in] */ VARIANT newVal);


void __RPC_STUB CollectionItemLegacy_put_SubElements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_PathItems_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB CollectionItemLegacy_get_PathItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_BranchFlag_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB CollectionItemLegacy_get_BranchFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_put_BranchFlag_Proxy( 
    CollectionItemLegacy * This,
    /* [in] */ LONG newVal);


void __RPC_STUB CollectionItemLegacy_put_BranchFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_Families_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItemLegacy_get_Families_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_Capabilities_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB CollectionItemLegacy_get_Capabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_Obj_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB CollectionItemLegacy_get_Obj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_put_Obj_Proxy( 
    CollectionItemLegacy * This,
    /* [in] */ LPUNKNOWN newVal);


void __RPC_STUB CollectionItemLegacy_put_Obj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_Singleton_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ BOOL *pVal);


void __RPC_STUB CollectionItemLegacy_get_Singleton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_FindAttrib_Proxy( 
    CollectionItemLegacy * This,
    BSTR __MIDL_0589,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItemLegacy_FindAttrib_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_IsA_Proxy( 
    CollectionItemLegacy * This,
    LONG __MIDL_0590,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItemLegacy_get_IsA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_Selected_Proxy( 
    CollectionItemLegacy * This,
    /* [optional][in] */ LONG newVal,
    /* [retval][out] */ BOOL *pVal);


void __RPC_STUB CollectionItemLegacy_get_Selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_SubComponent_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ SubComponent **pVal);


void __RPC_STUB CollectionItemLegacy_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItemLegacy_get_SubElements2_Proxy( 
    CollectionItemLegacy * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItemLegacy_get_SubElements2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __CollectionItemLegacy_INTERFACE_DEFINED__ */


#ifndef __ShapeClip_INTERFACE_DEFINED__
#define __ShapeClip_INTERFACE_DEFINED__

/* interface ShapeClip */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ShapeClip;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B5FC3332-970F-11d4-ACE8-0090275802BF")
    ShapeClip : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct ShapeClipVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ShapeClip * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ShapeClip * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ShapeClip * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ShapeClip * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ShapeClip * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ShapeClip * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ShapeClip * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } ShapeClipVtbl;

    interface ShapeClip
    {
        CONST_VTBL struct ShapeClipVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ShapeClip_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ShapeClip_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ShapeClip_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ShapeClip_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ShapeClip_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ShapeClip_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ShapeClip_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ShapeClip_INTERFACE_DEFINED__ */


#ifndef __Clip_INTERFACE_DEFINED__
#define __Clip_INTERFACE_DEFINED__

/* interface Clip */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Clip;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B5FC3331-970F-11d4-ACE8-0090275802BF")
    Clip : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MappedItems( 
            /* [retval][out] */ MappedItemCollection **out_ppItems) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get__obsolete( 
            /* [retval][out] */ ClipContainer **__MIDL_0398) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TimeControl( 
            /* [retval][out] */ TimeControl **out_ppTimeControl) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ Source **out_ppSource) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Effect( 
            /* [retval][out] */ ClipEffect **out_ppClipEffect) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddProperty( 
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Properties( 
            /* [retval][out] */ PropertyCollection **out_ppProps) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Relations( 
            /* [retval][out] */ ClipRelationCollection **out_ppRelations) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Clip * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Clip * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Clip * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Clip * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Clip * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Clip * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Clip * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MappedItems )( 
            Clip * This,
            /* [retval][out] */ MappedItemCollection **out_ppItems);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__obsolete )( 
            Clip * This,
            /* [retval][out] */ ClipContainer **__MIDL_0398);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TimeControl )( 
            Clip * This,
            /* [retval][out] */ TimeControl **out_ppTimeControl);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            Clip * This,
            /* [retval][out] */ Source **out_ppSource);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Effect )( 
            Clip * This,
            /* [retval][out] */ ClipEffect **out_ppClipEffect);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddProperty )( 
            Clip * This,
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )( 
            Clip * This,
            /* [retval][out] */ PropertyCollection **out_ppProps);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Relations )( 
            Clip * This,
            /* [retval][out] */ ClipRelationCollection **out_ppRelations);
        
        END_INTERFACE
    } ClipVtbl;

    interface Clip
    {
        CONST_VTBL struct ClipVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Clip_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Clip_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Clip_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Clip_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Clip_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Clip_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Clip_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Clip_get_MappedItems(This,out_ppItems)	\
    (This)->lpVtbl -> get_MappedItems(This,out_ppItems)

#define Clip_get__obsolete(This,__MIDL_0398)	\
    (This)->lpVtbl -> get__obsolete(This,__MIDL_0398)

#define Clip_get_TimeControl(This,out_ppTimeControl)	\
    (This)->lpVtbl -> get_TimeControl(This,out_ppTimeControl)

#define Clip_get_Source(This,out_ppSource)	\
    (This)->lpVtbl -> get_Source(This,out_ppSource)

#define Clip_get_Effect(This,out_ppClipEffect)	\
    (This)->lpVtbl -> get_Effect(This,out_ppClipEffect)

#define Clip_AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)	\
    (This)->lpVtbl -> AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)

#define Clip_get_Properties(This,out_ppProps)	\
    (This)->lpVtbl -> get_Properties(This,out_ppProps)

#define Clip_get_Relations(This,out_ppRelations)	\
    (This)->lpVtbl -> get_Relations(This,out_ppRelations)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Clip_get_MappedItems_Proxy( 
    Clip * This,
    /* [retval][out] */ MappedItemCollection **out_ppItems);


void __RPC_STUB Clip_get_MappedItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Clip_get__obsolete_Proxy( 
    Clip * This,
    /* [retval][out] */ ClipContainer **__MIDL_0398);


void __RPC_STUB Clip_get__obsolete_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Clip_get_TimeControl_Proxy( 
    Clip * This,
    /* [retval][out] */ TimeControl **out_ppTimeControl);


void __RPC_STUB Clip_get_TimeControl_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Clip_get_Source_Proxy( 
    Clip * This,
    /* [retval][out] */ Source **out_ppSource);


void __RPC_STUB Clip_get_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Clip_get_Effect_Proxy( 
    Clip * This,
    /* [retval][out] */ ClipEffect **out_ppClipEffect);


void __RPC_STUB Clip_get_Effect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE Clip_AddProperty_Proxy( 
    Clip * This,
    /* [in] */ VARIANT in_Preset,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Property **out_ppProp);


void __RPC_STUB Clip_AddProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Clip_get_Properties_Proxy( 
    Clip * This,
    /* [retval][out] */ PropertyCollection **out_ppProps);


void __RPC_STUB Clip_get_Properties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Clip_get_Relations_Proxy( 
    Clip * This,
    /* [retval][out] */ ClipRelationCollection **out_ppRelations);


void __RPC_STUB Clip_get_Relations_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Clip_INTERFACE_DEFINED__ */


#ifndef __MappedItem_INTERFACE_DEFINED__
#define __MappedItem_INTERFACE_DEFINED__

/* interface MappedItem */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_MappedItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9DD417F1-9E47-11d4-ACE9-0090275802BF")
    MappedItem : public IDispatch
    {
    public:
        virtual /* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ ProjectItem **out_ppItem) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Source2( 
            /* [retval][out] */ SIObject **out_ppItem) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClipEffectItem( 
            /* [retval][out] */ ClipEffectItem **out_ppItem) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Destination( 
            /* [retval][out] */ SIObject **out_ppItem) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct MappedItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            MappedItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            MappedItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            MappedItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            MappedItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            MappedItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            MappedItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            MappedItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][hidden][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            MappedItem * This,
            /* [retval][out] */ ProjectItem **out_ppItem);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source2 )( 
            MappedItem * This,
            /* [retval][out] */ SIObject **out_ppItem);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClipEffectItem )( 
            MappedItem * This,
            /* [retval][out] */ ClipEffectItem **out_ppItem);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Destination )( 
            MappedItem * This,
            /* [retval][out] */ SIObject **out_ppItem);
        
        END_INTERFACE
    } MappedItemVtbl;

    interface MappedItem
    {
        CONST_VTBL struct MappedItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define MappedItem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define MappedItem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define MappedItem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define MappedItem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define MappedItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define MappedItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define MappedItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define MappedItem_get_Source(This,out_ppItem)	\
    (This)->lpVtbl -> get_Source(This,out_ppItem)

#define MappedItem_get_Source2(This,out_ppItem)	\
    (This)->lpVtbl -> get_Source2(This,out_ppItem)

#define MappedItem_get_ClipEffectItem(This,out_ppItem)	\
    (This)->lpVtbl -> get_ClipEffectItem(This,out_ppItem)

#define MappedItem_get_Destination(This,out_ppItem)	\
    (This)->lpVtbl -> get_Destination(This,out_ppItem)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE MappedItem_get_Source_Proxy( 
    MappedItem * This,
    /* [retval][out] */ ProjectItem **out_ppItem);


void __RPC_STUB MappedItem_get_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MappedItem_get_Source2_Proxy( 
    MappedItem * This,
    /* [retval][out] */ SIObject **out_ppItem);


void __RPC_STUB MappedItem_get_Source2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MappedItem_get_ClipEffectItem_Proxy( 
    MappedItem * This,
    /* [retval][out] */ ClipEffectItem **out_ppItem);


void __RPC_STUB MappedItem_get_ClipEffectItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MappedItem_get_Destination_Proxy( 
    MappedItem * This,
    /* [retval][out] */ SIObject **out_ppItem);


void __RPC_STUB MappedItem_get_Destination_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __MappedItem_INTERFACE_DEFINED__ */


#ifndef __ClipContainer_INTERFACE_DEFINED__
#define __ClipContainer_INTERFACE_DEFINED__

/* interface ClipContainer */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ClipContainer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("46d3f8e9-066f-4158-810a-522b013b71da")
    ClipContainer : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Clips( 
            /* [retval][out] */ ClipCollection **__MIDL_0399) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Tracks( 
            /* [retval][out] */ TrackCollection **__MIDL_0400) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Transitions( 
            /* [retval][out] */ TransitionCollection **__MIDL_0401) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NestedRelations( 
            /* [retval][out] */ ClipRelationCollection **__MIDL_0402) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddRelation( 
            /* [in] */ Clip *in_pMaster,
            /* [in] */ Clip *in_pSlave,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ClipRelation **out_ppRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipContainerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClipContainer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClipContainer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClipContainer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClipContainer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClipContainer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClipContainer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClipContainer * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Clips )( 
            ClipContainer * This,
            /* [retval][out] */ ClipCollection **__MIDL_0399);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tracks )( 
            ClipContainer * This,
            /* [retval][out] */ TrackCollection **__MIDL_0400);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Transitions )( 
            ClipContainer * This,
            /* [retval][out] */ TransitionCollection **__MIDL_0401);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NestedRelations )( 
            ClipContainer * This,
            /* [retval][out] */ ClipRelationCollection **__MIDL_0402);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddRelation )( 
            ClipContainer * This,
            /* [in] */ Clip *in_pMaster,
            /* [in] */ Clip *in_pSlave,
            /* [defaultvalue][in] */ BSTR in_bstrName,
            /* [retval][out] */ ClipRelation **out_ppRetVal);
        
        END_INTERFACE
    } ClipContainerVtbl;

    interface ClipContainer
    {
        CONST_VTBL struct ClipContainerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClipContainer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClipContainer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClipContainer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClipContainer_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClipContainer_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClipContainer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClipContainer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClipContainer_get_Clips(This,__MIDL_0399)	\
    (This)->lpVtbl -> get_Clips(This,__MIDL_0399)

#define ClipContainer_get_Tracks(This,__MIDL_0400)	\
    (This)->lpVtbl -> get_Tracks(This,__MIDL_0400)

#define ClipContainer_get_Transitions(This,__MIDL_0401)	\
    (This)->lpVtbl -> get_Transitions(This,__MIDL_0401)

#define ClipContainer_get_NestedRelations(This,__MIDL_0402)	\
    (This)->lpVtbl -> get_NestedRelations(This,__MIDL_0402)

#define ClipContainer_AddRelation(This,in_pMaster,in_pSlave,in_bstrName,out_ppRetVal)	\
    (This)->lpVtbl -> AddRelation(This,in_pMaster,in_pSlave,in_bstrName,out_ppRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipContainer_get_Clips_Proxy( 
    ClipContainer * This,
    /* [retval][out] */ ClipCollection **__MIDL_0399);


void __RPC_STUB ClipContainer_get_Clips_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipContainer_get_Tracks_Proxy( 
    ClipContainer * This,
    /* [retval][out] */ TrackCollection **__MIDL_0400);


void __RPC_STUB ClipContainer_get_Tracks_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipContainer_get_Transitions_Proxy( 
    ClipContainer * This,
    /* [retval][out] */ TransitionCollection **__MIDL_0401);


void __RPC_STUB ClipContainer_get_Transitions_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipContainer_get_NestedRelations_Proxy( 
    ClipContainer * This,
    /* [retval][out] */ ClipRelationCollection **__MIDL_0402);


void __RPC_STUB ClipContainer_get_NestedRelations_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClipContainer_AddRelation_Proxy( 
    ClipContainer * This,
    /* [in] */ Clip *in_pMaster,
    /* [in] */ Clip *in_pSlave,
    /* [defaultvalue][in] */ BSTR in_bstrName,
    /* [retval][out] */ ClipRelation **out_ppRetVal);


void __RPC_STUB ClipContainer_AddRelation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClipContainer_INTERFACE_DEFINED__ */


#ifndef __Track_INTERFACE_DEFINED__
#define __Track_INTERFACE_DEFINED__

/* interface Track */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Track;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B68B8334-7511-4FE6-98C6-5036017B1B37")
    Track : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Clips( 
            /* [retval][out] */ ClipCollection **out_ppClips) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TrackVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Track * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Track * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Track * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Track * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Track * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Track * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Track * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Clips )( 
            Track * This,
            /* [retval][out] */ ClipCollection **out_ppClips);
        
        END_INTERFACE
    } TrackVtbl;

    interface Track
    {
        CONST_VTBL struct TrackVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Track_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Track_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Track_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Track_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Track_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Track_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Track_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Track_get_Clips(This,out_ppClips)	\
    (This)->lpVtbl -> get_Clips(This,out_ppClips)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Track_get_Clips_Proxy( 
    Track * This,
    /* [retval][out] */ ClipCollection **out_ppClips);


void __RPC_STUB Track_get_Clips_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Track_INTERFACE_DEFINED__ */


#ifndef __Transition_INTERFACE_DEFINED__
#define __Transition_INTERFACE_DEFINED__

/* interface Transition */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Transition;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("156e1437-f1db-4070-a4d7-5ab7d83b1f08")
    Transition : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_StartClip( 
            /* [retval][out] */ Clip **__MIDL_0403) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EndClip( 
            /* [retval][out] */ Clip **__MIDL_0404) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TransitionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Transition * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Transition * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Transition * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Transition * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Transition * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Transition * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Transition * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StartClip )( 
            Transition * This,
            /* [retval][out] */ Clip **__MIDL_0403);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndClip )( 
            Transition * This,
            /* [retval][out] */ Clip **__MIDL_0404);
        
        END_INTERFACE
    } TransitionVtbl;

    interface Transition
    {
        CONST_VTBL struct TransitionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Transition_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Transition_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Transition_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Transition_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Transition_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Transition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Transition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Transition_get_StartClip(This,__MIDL_0403)	\
    (This)->lpVtbl -> get_StartClip(This,__MIDL_0403)

#define Transition_get_EndClip(This,__MIDL_0404)	\
    (This)->lpVtbl -> get_EndClip(This,__MIDL_0404)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Transition_get_StartClip_Proxy( 
    Transition * This,
    /* [retval][out] */ Clip **__MIDL_0403);


void __RPC_STUB Transition_get_StartClip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Transition_get_EndClip_Proxy( 
    Transition * This,
    /* [retval][out] */ Clip **__MIDL_0404);


void __RPC_STUB Transition_get_EndClip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Transition_INTERFACE_DEFINED__ */


#ifndef __TimeControl_INTERFACE_DEFINED__
#define __TimeControl_INTERFACE_DEFINED__

/* interface TimeControl */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_TimeControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("08B90719-F9C1-40A2-82F5-B80A7B523121")
    TimeControl : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Scale( 
            /* [retval][out] */ double *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_StartOffset( 
            /* [retval][out] */ double *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClipIn( 
            /* [retval][out] */ double *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClipOut( 
            /* [retval][out] */ double *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExtrapolationBeforeType( 
            /* [retval][out] */ siTimeControlExtrapolationType *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExtrapolationBeforeValue( 
            /* [retval][out] */ double *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExtrapolationAfterType( 
            /* [retval][out] */ siTimeControlExtrapolationType *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExtrapolationAfterValue( 
            /* [retval][out] */ double *out_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TimeControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TimeControl * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TimeControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TimeControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TimeControl * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TimeControl * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TimeControl * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TimeControl * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Scale )( 
            TimeControl * This,
            /* [retval][out] */ double *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StartOffset )( 
            TimeControl * This,
            /* [retval][out] */ double *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClipIn )( 
            TimeControl * This,
            /* [retval][out] */ double *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClipOut )( 
            TimeControl * This,
            /* [retval][out] */ double *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtrapolationBeforeType )( 
            TimeControl * This,
            /* [retval][out] */ siTimeControlExtrapolationType *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtrapolationBeforeValue )( 
            TimeControl * This,
            /* [retval][out] */ double *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtrapolationAfterType )( 
            TimeControl * This,
            /* [retval][out] */ siTimeControlExtrapolationType *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtrapolationAfterValue )( 
            TimeControl * This,
            /* [retval][out] */ double *out_pVal);
        
        END_INTERFACE
    } TimeControlVtbl;

    interface TimeControl
    {
        CONST_VTBL struct TimeControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TimeControl_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TimeControl_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TimeControl_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TimeControl_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TimeControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TimeControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TimeControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TimeControl_get_Scale(This,out_pVal)	\
    (This)->lpVtbl -> get_Scale(This,out_pVal)

#define TimeControl_get_StartOffset(This,out_pVal)	\
    (This)->lpVtbl -> get_StartOffset(This,out_pVal)

#define TimeControl_get_ClipIn(This,out_pVal)	\
    (This)->lpVtbl -> get_ClipIn(This,out_pVal)

#define TimeControl_get_ClipOut(This,out_pVal)	\
    (This)->lpVtbl -> get_ClipOut(This,out_pVal)

#define TimeControl_get_ExtrapolationBeforeType(This,out_pVal)	\
    (This)->lpVtbl -> get_ExtrapolationBeforeType(This,out_pVal)

#define TimeControl_get_ExtrapolationBeforeValue(This,out_pVal)	\
    (This)->lpVtbl -> get_ExtrapolationBeforeValue(This,out_pVal)

#define TimeControl_get_ExtrapolationAfterType(This,out_pVal)	\
    (This)->lpVtbl -> get_ExtrapolationAfterType(This,out_pVal)

#define TimeControl_get_ExtrapolationAfterValue(This,out_pVal)	\
    (This)->lpVtbl -> get_ExtrapolationAfterValue(This,out_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_Scale_Proxy( 
    TimeControl * This,
    /* [retval][out] */ double *out_pVal);


void __RPC_STUB TimeControl_get_Scale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_StartOffset_Proxy( 
    TimeControl * This,
    /* [retval][out] */ double *out_pVal);


void __RPC_STUB TimeControl_get_StartOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_ClipIn_Proxy( 
    TimeControl * This,
    /* [retval][out] */ double *out_pVal);


void __RPC_STUB TimeControl_get_ClipIn_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_ClipOut_Proxy( 
    TimeControl * This,
    /* [retval][out] */ double *out_pVal);


void __RPC_STUB TimeControl_get_ClipOut_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_ExtrapolationBeforeType_Proxy( 
    TimeControl * This,
    /* [retval][out] */ siTimeControlExtrapolationType *out_pVal);


void __RPC_STUB TimeControl_get_ExtrapolationBeforeType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_ExtrapolationBeforeValue_Proxy( 
    TimeControl * This,
    /* [retval][out] */ double *out_pVal);


void __RPC_STUB TimeControl_get_ExtrapolationBeforeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_ExtrapolationAfterType_Proxy( 
    TimeControl * This,
    /* [retval][out] */ siTimeControlExtrapolationType *out_pVal);


void __RPC_STUB TimeControl_get_ExtrapolationAfterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimeControl_get_ExtrapolationAfterValue_Proxy( 
    TimeControl * This,
    /* [retval][out] */ double *out_pVal);


void __RPC_STUB TimeControl_get_ExtrapolationAfterValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TimeControl_INTERFACE_DEFINED__ */


#ifndef __Source_INTERFACE_DEFINED__
#define __Source_INTERFACE_DEFINED__

/* interface Source */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Source;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("662C3D2E-D7EF-45DF-8EA6-6EE0C5DD8DD7")
    Source : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddProperty( 
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Properties( 
            /* [retval][out] */ PropertyCollection **out_ppProps) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SourceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Source * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Source * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Source * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Source * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Source * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Source * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Source * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddProperty )( 
            Source * This,
            /* [in] */ VARIANT in_Preset,
            /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Property **out_ppProp);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Properties )( 
            Source * This,
            /* [retval][out] */ PropertyCollection **out_ppProps);
        
        END_INTERFACE
    } SourceVtbl;

    interface Source
    {
        CONST_VTBL struct SourceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Source_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Source_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Source_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Source_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Source_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Source_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Source_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Source_AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)	\
    (This)->lpVtbl -> AddProperty(This,in_Preset,in_Branch,in_Name,out_ppProp)

#define Source_get_Properties(This,out_ppProps)	\
    (This)->lpVtbl -> get_Properties(This,out_ppProps)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id] */ HRESULT STDMETHODCALLTYPE Source_AddProperty_Proxy( 
    Source * This,
    /* [in] */ VARIANT in_Preset,
    /* [defaultvalue][in] */ VARIANT_BOOL in_Branch,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Property **out_ppProp);


void __RPC_STUB Source_AddProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Source_get_Properties_Proxy( 
    Source * This,
    /* [retval][out] */ PropertyCollection **out_ppProps);


void __RPC_STUB Source_get_Properties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Source_INTERFACE_DEFINED__ */


#ifndef __ShapeKey_INTERFACE_DEFINED__
#define __ShapeKey_INTERFACE_DEFINED__

/* interface ShapeKey */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ShapeKey;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F5559159-D763-4e72-99AA-6270C348B69F")
    ShapeKey : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShapeGroupName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShapeGroupName( 
            /* [in] */ BSTR in_Name) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ShapeKeyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ShapeKey * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ShapeKey * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ShapeKey * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ShapeKey * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ShapeKey * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ShapeKey * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ShapeKey * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShapeGroupName )( 
            ShapeKey * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShapeGroupName )( 
            ShapeKey * This,
            /* [in] */ BSTR in_Name);
        
        END_INTERFACE
    } ShapeKeyVtbl;

    interface ShapeKey
    {
        CONST_VTBL struct ShapeKeyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ShapeKey_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ShapeKey_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ShapeKey_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ShapeKey_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ShapeKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ShapeKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ShapeKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ShapeKey_get_ShapeGroupName(This,pVal)	\
    (This)->lpVtbl -> get_ShapeGroupName(This,pVal)

#define ShapeKey_put_ShapeGroupName(This,in_Name)	\
    (This)->lpVtbl -> put_ShapeGroupName(This,in_Name)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ShapeKey_get_ShapeGroupName_Proxy( 
    ShapeKey * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB ShapeKey_get_ShapeGroupName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ShapeKey_put_ShapeGroupName_Proxy( 
    ShapeKey * This,
    /* [in] */ BSTR in_Name);


void __RPC_STUB ShapeKey_put_ShapeGroupName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ShapeKey_INTERFACE_DEFINED__ */


#ifndef __ClipEffect_INTERFACE_DEFINED__
#define __ClipEffect_INTERFACE_DEFINED__

/* interface ClipEffect */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ClipEffect;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("683253B1-CE3D-48A3-B977-B33320C41D43")
    ClipEffect : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Items( 
            /* [retval][out] */ ClipEffectItemCollection **__MIDL_0405) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Variables( 
            /* [retval][out] */ ParameterCollection **__MIDL_0406) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TimeReference( 
            /* [retval][out] */ siTimeReferenceType *__MIDL_0407) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PoseEffect( 
            /* [retval][out] */ StaticKinematicState **__MIDL_0408) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsActive( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0409) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsPoseEffectActive( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0410) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipEffectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClipEffect * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClipEffect * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClipEffect * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClipEffect * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClipEffect * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClipEffect * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClipEffect * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Items )( 
            ClipEffect * This,
            /* [retval][out] */ ClipEffectItemCollection **__MIDL_0405);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Variables )( 
            ClipEffect * This,
            /* [retval][out] */ ParameterCollection **__MIDL_0406);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TimeReference )( 
            ClipEffect * This,
            /* [retval][out] */ siTimeReferenceType *__MIDL_0407);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PoseEffect )( 
            ClipEffect * This,
            /* [retval][out] */ StaticKinematicState **__MIDL_0408);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsActive )( 
            ClipEffect * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0409);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsPoseEffectActive )( 
            ClipEffect * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0410);
        
        END_INTERFACE
    } ClipEffectVtbl;

    interface ClipEffect
    {
        CONST_VTBL struct ClipEffectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClipEffect_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClipEffect_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClipEffect_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClipEffect_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClipEffect_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClipEffect_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClipEffect_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClipEffect_get_Items(This,__MIDL_0405)	\
    (This)->lpVtbl -> get_Items(This,__MIDL_0405)

#define ClipEffect_get_Variables(This,__MIDL_0406)	\
    (This)->lpVtbl -> get_Variables(This,__MIDL_0406)

#define ClipEffect_get_TimeReference(This,__MIDL_0407)	\
    (This)->lpVtbl -> get_TimeReference(This,__MIDL_0407)

#define ClipEffect_get_PoseEffect(This,__MIDL_0408)	\
    (This)->lpVtbl -> get_PoseEffect(This,__MIDL_0408)

#define ClipEffect_get_IsActive(This,__MIDL_0409)	\
    (This)->lpVtbl -> get_IsActive(This,__MIDL_0409)

#define ClipEffect_get_IsPoseEffectActive(This,__MIDL_0410)	\
    (This)->lpVtbl -> get_IsPoseEffectActive(This,__MIDL_0410)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffect_get_Items_Proxy( 
    ClipEffect * This,
    /* [retval][out] */ ClipEffectItemCollection **__MIDL_0405);


void __RPC_STUB ClipEffect_get_Items_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffect_get_Variables_Proxy( 
    ClipEffect * This,
    /* [retval][out] */ ParameterCollection **__MIDL_0406);


void __RPC_STUB ClipEffect_get_Variables_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffect_get_TimeReference_Proxy( 
    ClipEffect * This,
    /* [retval][out] */ siTimeReferenceType *__MIDL_0407);


void __RPC_STUB ClipEffect_get_TimeReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffect_get_PoseEffect_Proxy( 
    ClipEffect * This,
    /* [retval][out] */ StaticKinematicState **__MIDL_0408);


void __RPC_STUB ClipEffect_get_PoseEffect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffect_get_IsActive_Proxy( 
    ClipEffect * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0409);


void __RPC_STUB ClipEffect_get_IsActive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffect_get_IsPoseEffectActive_Proxy( 
    ClipEffect * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0410);


void __RPC_STUB ClipEffect_get_IsPoseEffectActive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClipEffect_INTERFACE_DEFINED__ */


#ifndef __ClipEffectItem_INTERFACE_DEFINED__
#define __ClipEffectItem_INTERFACE_DEFINED__

/* interface ClipEffectItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ClipEffectItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E9E90575-79AC-4687-8FB5-77B0A46A12D0")
    ClipEffectItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parameter( 
            /* [retval][out] */ Parameter **__MIDL_0411) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Expression( 
            /* [retval][out] */ BSTR *__MIDL_0412) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipEffectItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClipEffectItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClipEffectItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClipEffectItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClipEffectItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClipEffectItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClipEffectItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClipEffectItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parameter )( 
            ClipEffectItem * This,
            /* [retval][out] */ Parameter **__MIDL_0411);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Expression )( 
            ClipEffectItem * This,
            /* [retval][out] */ BSTR *__MIDL_0412);
        
        END_INTERFACE
    } ClipEffectItemVtbl;

    interface ClipEffectItem
    {
        CONST_VTBL struct ClipEffectItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClipEffectItem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClipEffectItem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClipEffectItem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClipEffectItem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClipEffectItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClipEffectItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClipEffectItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClipEffectItem_get_Parameter(This,__MIDL_0411)	\
    (This)->lpVtbl -> get_Parameter(This,__MIDL_0411)

#define ClipEffectItem_get_Expression(This,__MIDL_0412)	\
    (This)->lpVtbl -> get_Expression(This,__MIDL_0412)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffectItem_get_Parameter_Proxy( 
    ClipEffectItem * This,
    /* [retval][out] */ Parameter **__MIDL_0411);


void __RPC_STUB ClipEffectItem_get_Parameter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipEffectItem_get_Expression_Proxy( 
    ClipEffectItem * This,
    /* [retval][out] */ BSTR *__MIDL_0412);


void __RPC_STUB ClipEffectItem_get_Expression_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClipEffectItem_INTERFACE_DEFINED__ */


#ifndef __ClipRelation_INTERFACE_DEFINED__
#define __ClipRelation_INTERFACE_DEFINED__

/* interface ClipRelation */
/* [unique][dual][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ClipRelation;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("36AFC895-6437-4e56-835C-7FA948E0FB35")
    ClipRelation : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MasterClip( 
            /* [retval][out] */ Clip **out_ppMaster) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SlaveClip( 
            /* [retval][out] */ Clip **out_ppSlave) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SwapMasterAndSlaveClip( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ClipRelationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ClipRelation * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ClipRelation * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ClipRelation * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ClipRelation * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ClipRelation * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ClipRelation * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ClipRelation * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MasterClip )( 
            ClipRelation * This,
            /* [retval][out] */ Clip **out_ppMaster);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SlaveClip )( 
            ClipRelation * This,
            /* [retval][out] */ Clip **out_ppSlave);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SwapMasterAndSlaveClip )( 
            ClipRelation * This);
        
        END_INTERFACE
    } ClipRelationVtbl;

    interface ClipRelation
    {
        CONST_VTBL struct ClipRelationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ClipRelation_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ClipRelation_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ClipRelation_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ClipRelation_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ClipRelation_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ClipRelation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ClipRelation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ClipRelation_get_MasterClip(This,out_ppMaster)	\
    (This)->lpVtbl -> get_MasterClip(This,out_ppMaster)

#define ClipRelation_get_SlaveClip(This,out_ppSlave)	\
    (This)->lpVtbl -> get_SlaveClip(This,out_ppSlave)

#define ClipRelation_SwapMasterAndSlaveClip(This)	\
    (This)->lpVtbl -> SwapMasterAndSlaveClip(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipRelation_get_MasterClip_Proxy( 
    ClipRelation * This,
    /* [retval][out] */ Clip **out_ppMaster);


void __RPC_STUB ClipRelation_get_MasterClip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ClipRelation_get_SlaveClip_Proxy( 
    ClipRelation * This,
    /* [retval][out] */ Clip **out_ppSlave);


void __RPC_STUB ClipRelation_get_SlaveClip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClipRelation_SwapMasterAndSlaveClip_Proxy( 
    ClipRelation * This);


void __RPC_STUB ClipRelation_SwapMasterAndSlaveClip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ClipRelation_INTERFACE_DEFINED__ */


#ifndef __Mixer_INTERFACE_DEFINED__
#define __Mixer_INTERFACE_DEFINED__

/* interface Mixer */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Mixer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("be0435aa-d952-4d8f-8f19-07716b0ad717")
    Mixer : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct MixerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Mixer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Mixer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Mixer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Mixer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Mixer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Mixer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Mixer * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } MixerVtbl;

    interface Mixer
    {
        CONST_VTBL struct MixerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Mixer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Mixer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Mixer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Mixer_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Mixer_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Mixer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Mixer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __Mixer_INTERFACE_DEFINED__ */


#ifndef __Application_INTERFACE_DEFINED__
#define __Application_INTERFACE_DEFINED__

/* interface Application */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Application;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E8E457CD-F6D3-11d3-B11F-00A0C982A112")
    Application : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_StatusBar( 
            /* [in] */ BSTR in_NewStatusBarText) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecuteScript( 
            /* [in] */ BSTR in_FileName,
            /* [defaultvalue][in] */ BSTR in_LanguageProgID,
            /* [defaultvalue][in] */ BSTR in_ProcName,
            /* [optional][out][in] */ LPVARIANT io_Params,
            /* [retval][out] */ LPVARIANT out_RetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LogMessage( 
            /* [in] */ BSTR in_Message,
            /* [defaultvalue][in] */ siSeverity in_Severity = siInfo) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Version( 
            /* [retval][out] */ BSTR *out_Version) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClassName( 
            /* [in] */ IDispatch *in_pObject,
            /* [retval][out] */ BSTR *out_ClassName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HelpOnTopic( 
            /* [in] */ BSTR in_bszTopic,
            /* [defaultvalue][in] */ BSTR in_bszGuide = L"") = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecuteScriptCode( 
            /* [in] */ BSTR in_ScriptText,
            /* [defaultvalue][in] */ BSTR in_LanguageProgID,
            /* [defaultvalue][in] */ BSTR in_ProcName,
            /* [optional][out][in] */ LPVARIANT io_Params,
            /* [retval][out] */ LPVARIANT out_RetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ApplicationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Application * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Application * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Application * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Application * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Application * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Application * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Application * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_StatusBar )( 
            Application * This,
            /* [in] */ BSTR in_NewStatusBarText);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecuteScript )( 
            Application * This,
            /* [in] */ BSTR in_FileName,
            /* [defaultvalue][in] */ BSTR in_LanguageProgID,
            /* [defaultvalue][in] */ BSTR in_ProcName,
            /* [optional][out][in] */ LPVARIANT io_Params,
            /* [retval][out] */ LPVARIANT out_RetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LogMessage )( 
            Application * This,
            /* [in] */ BSTR in_Message,
            /* [defaultvalue][in] */ siSeverity in_Severity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Version )( 
            Application * This,
            /* [retval][out] */ BSTR *out_Version);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClassName )( 
            Application * This,
            /* [in] */ IDispatch *in_pObject,
            /* [retval][out] */ BSTR *out_ClassName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HelpOnTopic )( 
            Application * This,
            /* [in] */ BSTR in_bszTopic,
            /* [defaultvalue][in] */ BSTR in_bszGuide);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecuteScriptCode )( 
            Application * This,
            /* [in] */ BSTR in_ScriptText,
            /* [defaultvalue][in] */ BSTR in_LanguageProgID,
            /* [defaultvalue][in] */ BSTR in_ProcName,
            /* [optional][out][in] */ LPVARIANT io_Params,
            /* [retval][out] */ LPVARIANT out_RetVal);
        
        END_INTERFACE
    } ApplicationVtbl;

    interface Application
    {
        CONST_VTBL struct ApplicationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Application_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Application_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Application_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Application_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Application_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Application_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Application_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Application_put_StatusBar(This,in_NewStatusBarText)	\
    (This)->lpVtbl -> put_StatusBar(This,in_NewStatusBarText)

#define Application_ExecuteScript(This,in_FileName,in_LanguageProgID,in_ProcName,io_Params,out_RetVal)	\
    (This)->lpVtbl -> ExecuteScript(This,in_FileName,in_LanguageProgID,in_ProcName,io_Params,out_RetVal)

#define Application_LogMessage(This,in_Message,in_Severity)	\
    (This)->lpVtbl -> LogMessage(This,in_Message,in_Severity)

#define Application_Version(This,out_Version)	\
    (This)->lpVtbl -> Version(This,out_Version)

#define Application_ClassName(This,in_pObject,out_ClassName)	\
    (This)->lpVtbl -> ClassName(This,in_pObject,out_ClassName)

#define Application_HelpOnTopic(This,in_bszTopic,in_bszGuide)	\
    (This)->lpVtbl -> HelpOnTopic(This,in_bszTopic,in_bszGuide)

#define Application_ExecuteScriptCode(This,in_ScriptText,in_LanguageProgID,in_ProcName,io_Params,out_RetVal)	\
    (This)->lpVtbl -> ExecuteScriptCode(This,in_ScriptText,in_LanguageProgID,in_ProcName,io_Params,out_RetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Application_put_StatusBar_Proxy( 
    Application * This,
    /* [in] */ BSTR in_NewStatusBarText);


void __RPC_STUB Application_put_StatusBar_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Application_ExecuteScript_Proxy( 
    Application * This,
    /* [in] */ BSTR in_FileName,
    /* [defaultvalue][in] */ BSTR in_LanguageProgID,
    /* [defaultvalue][in] */ BSTR in_ProcName,
    /* [optional][out][in] */ LPVARIANT io_Params,
    /* [retval][out] */ LPVARIANT out_RetVal);


void __RPC_STUB Application_ExecuteScript_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Application_LogMessage_Proxy( 
    Application * This,
    /* [in] */ BSTR in_Message,
    /* [defaultvalue][in] */ siSeverity in_Severity);


void __RPC_STUB Application_LogMessage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Application_Version_Proxy( 
    Application * This,
    /* [retval][out] */ BSTR *out_Version);


void __RPC_STUB Application_Version_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Application_ClassName_Proxy( 
    Application * This,
    /* [in] */ IDispatch *in_pObject,
    /* [retval][out] */ BSTR *out_ClassName);


void __RPC_STUB Application_ClassName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Application_HelpOnTopic_Proxy( 
    Application * This,
    /* [in] */ BSTR in_bszTopic,
    /* [defaultvalue][in] */ BSTR in_bszGuide);


void __RPC_STUB Application_HelpOnTopic_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Application_ExecuteScriptCode_Proxy( 
    Application * This,
    /* [in] */ BSTR in_ScriptText,
    /* [defaultvalue][in] */ BSTR in_LanguageProgID,
    /* [defaultvalue][in] */ BSTR in_ProcName,
    /* [optional][out][in] */ LPVARIANT io_Params,
    /* [retval][out] */ LPVARIANT out_RetVal);


void __RPC_STUB Application_ExecuteScriptCode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Application_INTERFACE_DEFINED__ */


#ifndef __XSIApplication_INTERFACE_DEFINED__
#define __XSIApplication_INTERFACE_DEFINED__

/* interface XSIApplication */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_XSIApplication;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DB7556B0-5733-11d4-8114-00A024189A69")
    XSIApplication : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Selection( 
            /* [retval][out] */ Selection **out_ppSelection) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Dictionary( 
            /* [retval][out] */ Dictionary **__MIDL_0266) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveProject( 
            /* [retval][out] */ Project **out_ppProject) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InstallationPath( 
            siInstallationPath in_pathType,
            /* [retval][out] */ BSTR *out_pPath) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InstallAddon( 
            /* [in] */ BSTR in_bszFileName,
            /* [defaultvalue][in] */ siInstallationPath in_eInstallDir = siUnknownPath,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bBatch = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnInstallAddon( 
            /* [in] */ BSTR in_bszFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateCommand( 
            /* [in] */ BSTR in_name,
            /* [defaultvalue][in] */ siCommandCategory in_category,
            /* [retval][out] */ Command **out_ppCommand) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCommand( 
            /* [in] */ Command *in_pCommand) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveCommand( 
            /* [in] */ BSTR in_name) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Commands( 
            /* [retval][out] */ CommandCollection **__MIDL_0267) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Advise( 
            /* [in] */ BSTR in_event,
            /* [in] */ BSTR in_filename,
            /* [defaultvalue][in] */ BSTR in_handlerFunc,
            /* [defaultvalue][in] */ BSTR in_language,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [optional][in] */ VARIANT in_varAttrib,
            /* [optional][in] */ VARIANT in_varCustomData,
            /* [defaultvalue][in] */ VARIANT_BOOL in_saveEvent,
            /* [retval][out] */ LONG *out_pToken) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Unadvise( 
            /* [in] */ LONG in_lToken,
            /* [defaultvalue][in] */ VARIANT_BOOL in_removeEvent = -1) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EventInfos( 
            /* [retval][out] */ EventInfoCollection **__MIDL_0268) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveSceneRoot( 
            /* [retval][out] */ Model **out_ppRoot) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecuteScriptCommand( 
            /* [in] */ BSTR in_bzScriptName,
            /* [optional][in] */ VARIANT in_vsa,
            /* [retval][out] */ VARIANT *out_pretval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Interactive( 
            /* [retval][out] */ VARIANT_BOOL *out_pInteractive) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Platform( 
            /* [retval][out] */ BSTR *out_pOS) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Devices( 
            /* [retval][out] */ DeviceCollection **__MIDL_0269) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateProject( 
            /* [in] */ BSTR in_ProjectPath,
            /* [retval][out] */ Project **out_ppProject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateAddon( 
            /* [retval][out] */ Addon **out_ppAddon) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Preferences( 
            /* [retval][out] */ Preferences **__MIDL_0270) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadPlugin( 
            /* [in] */ BSTR in_pluginName,
            /* [retval][out] */ Plugin **__MIDL_0271) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnloadPlugin( 
            /* [in] */ BSTR in_pluginFileName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRemove = 0) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Plugins( 
            /* [retval][out] */ PluginCollection **out_ppPlugins) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Filters( 
            /* [retval][out] */ FilterCollection **out_ppFilters) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Desktop( 
            /* [retval][out] */ Desktop **out_ppDesktop) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveToolName( 
            /* [retval][out] */ BSTR *out_pbszToolName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_License( 
            /* [retval][out] */ BSTR *out_License) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ActiveProject( 
            /* [in] */ VARIANT in_bstrProject) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddWorkgroup( 
            /* [in] */ BSTR in_workgrouppath) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE RemoveWorkgroup( 
            /* [in] */ BSTR in_workgrouppath) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Workgroups( 
            /* [retval][out] */ VARIANT *out_pWorkgroupArray) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE RescanWorkgroups( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE ActivateWorkgroup( 
            /* [in] */ BSTR in_workgrouppath,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bActivate = -1) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE UpdatePlugins( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCommandByScriptingName( 
            /* [in] */ BSTR in_strScriptingName,
            /* [retval][out] */ Command **out_ppCmd) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct XSIApplicationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            XSIApplication * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            XSIApplication * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            XSIApplication * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            XSIApplication * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            XSIApplication * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            XSIApplication * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            XSIApplication * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Selection )( 
            XSIApplication * This,
            /* [retval][out] */ Selection **out_ppSelection);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Dictionary )( 
            XSIApplication * This,
            /* [retval][out] */ Dictionary **__MIDL_0266);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveProject )( 
            XSIApplication * This,
            /* [retval][out] */ Project **out_ppProject);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InstallationPath )( 
            XSIApplication * This,
            siInstallationPath in_pathType,
            /* [retval][out] */ BSTR *out_pPath);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InstallAddon )( 
            XSIApplication * This,
            /* [in] */ BSTR in_bszFileName,
            /* [defaultvalue][in] */ siInstallationPath in_eInstallDir,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bBatch);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnInstallAddon )( 
            XSIApplication * This,
            /* [in] */ BSTR in_bszFileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateCommand )( 
            XSIApplication * This,
            /* [in] */ BSTR in_name,
            /* [defaultvalue][in] */ siCommandCategory in_category,
            /* [retval][out] */ Command **out_ppCommand);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCommand )( 
            XSIApplication * This,
            /* [in] */ Command *in_pCommand);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveCommand )( 
            XSIApplication * This,
            /* [in] */ BSTR in_name);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Commands )( 
            XSIApplication * This,
            /* [retval][out] */ CommandCollection **__MIDL_0267);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Advise )( 
            XSIApplication * This,
            /* [in] */ BSTR in_event,
            /* [in] */ BSTR in_filename,
            /* [defaultvalue][in] */ BSTR in_handlerFunc,
            /* [defaultvalue][in] */ BSTR in_language,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [optional][in] */ VARIANT in_varAttrib,
            /* [optional][in] */ VARIANT in_varCustomData,
            /* [defaultvalue][in] */ VARIANT_BOOL in_saveEvent,
            /* [retval][out] */ LONG *out_pToken);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Unadvise )( 
            XSIApplication * This,
            /* [in] */ LONG in_lToken,
            /* [defaultvalue][in] */ VARIANT_BOOL in_removeEvent);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventInfos )( 
            XSIApplication * This,
            /* [retval][out] */ EventInfoCollection **__MIDL_0268);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveSceneRoot )( 
            XSIApplication * This,
            /* [retval][out] */ Model **out_ppRoot);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecuteScriptCommand )( 
            XSIApplication * This,
            /* [in] */ BSTR in_bzScriptName,
            /* [optional][in] */ VARIANT in_vsa,
            /* [retval][out] */ VARIANT *out_pretval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Interactive )( 
            XSIApplication * This,
            /* [retval][out] */ VARIANT_BOOL *out_pInteractive);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Platform )( 
            XSIApplication * This,
            /* [retval][out] */ BSTR *out_pOS);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Devices )( 
            XSIApplication * This,
            /* [retval][out] */ DeviceCollection **__MIDL_0269);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateProject )( 
            XSIApplication * This,
            /* [in] */ BSTR in_ProjectPath,
            /* [retval][out] */ Project **out_ppProject);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateAddon )( 
            XSIApplication * This,
            /* [retval][out] */ Addon **out_ppAddon);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Preferences )( 
            XSIApplication * This,
            /* [retval][out] */ Preferences **__MIDL_0270);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadPlugin )( 
            XSIApplication * This,
            /* [in] */ BSTR in_pluginName,
            /* [retval][out] */ Plugin **__MIDL_0271);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnloadPlugin )( 
            XSIApplication * This,
            /* [in] */ BSTR in_pluginFileName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bRemove);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Plugins )( 
            XSIApplication * This,
            /* [retval][out] */ PluginCollection **out_ppPlugins);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Filters )( 
            XSIApplication * This,
            /* [retval][out] */ FilterCollection **out_ppFilters);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Desktop )( 
            XSIApplication * This,
            /* [retval][out] */ Desktop **out_ppDesktop);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveToolName )( 
            XSIApplication * This,
            /* [retval][out] */ BSTR *out_pbszToolName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_License )( 
            XSIApplication * This,
            /* [retval][out] */ BSTR *out_License);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActiveProject )( 
            XSIApplication * This,
            /* [in] */ VARIANT in_bstrProject);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddWorkgroup )( 
            XSIApplication * This,
            /* [in] */ BSTR in_workgrouppath);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RemoveWorkgroup )( 
            XSIApplication * This,
            /* [in] */ BSTR in_workgrouppath);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Workgroups )( 
            XSIApplication * This,
            /* [retval][out] */ VARIANT *out_pWorkgroupArray);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RescanWorkgroups )( 
            XSIApplication * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ActivateWorkgroup )( 
            XSIApplication * This,
            /* [in] */ BSTR in_workgrouppath,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bActivate);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *UpdatePlugins )( 
            XSIApplication * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCommandByScriptingName )( 
            XSIApplication * This,
            /* [in] */ BSTR in_strScriptingName,
            /* [retval][out] */ Command **out_ppCmd);
        
        END_INTERFACE
    } XSIApplicationVtbl;

    interface XSIApplication
    {
        CONST_VTBL struct XSIApplicationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define XSIApplication_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define XSIApplication_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define XSIApplication_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define XSIApplication_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define XSIApplication_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define XSIApplication_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define XSIApplication_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define XSIApplication_get_Selection(This,out_ppSelection)	\
    (This)->lpVtbl -> get_Selection(This,out_ppSelection)

#define XSIApplication_get_Dictionary(This,__MIDL_0266)	\
    (This)->lpVtbl -> get_Dictionary(This,__MIDL_0266)

#define XSIApplication_get_ActiveProject(This,out_ppProject)	\
    (This)->lpVtbl -> get_ActiveProject(This,out_ppProject)

#define XSIApplication_get_InstallationPath(This,in_pathType,out_pPath)	\
    (This)->lpVtbl -> get_InstallationPath(This,in_pathType,out_pPath)

#define XSIApplication_InstallAddon(This,in_bszFileName,in_eInstallDir,in_bBatch)	\
    (This)->lpVtbl -> InstallAddon(This,in_bszFileName,in_eInstallDir,in_bBatch)

#define XSIApplication_UnInstallAddon(This,in_bszFileName)	\
    (This)->lpVtbl -> UnInstallAddon(This,in_bszFileName)

#define XSIApplication_CreateCommand(This,in_name,in_category,out_ppCommand)	\
    (This)->lpVtbl -> CreateCommand(This,in_name,in_category,out_ppCommand)

#define XSIApplication_AddCommand(This,in_pCommand)	\
    (This)->lpVtbl -> AddCommand(This,in_pCommand)

#define XSIApplication_RemoveCommand(This,in_name)	\
    (This)->lpVtbl -> RemoveCommand(This,in_name)

#define XSIApplication_get_Commands(This,__MIDL_0267)	\
    (This)->lpVtbl -> get_Commands(This,__MIDL_0267)

#define XSIApplication_Advise(This,in_event,in_filename,in_handlerFunc,in_language,in_name,in_varAttrib,in_varCustomData,in_saveEvent,out_pToken)	\
    (This)->lpVtbl -> Advise(This,in_event,in_filename,in_handlerFunc,in_language,in_name,in_varAttrib,in_varCustomData,in_saveEvent,out_pToken)

#define XSIApplication_Unadvise(This,in_lToken,in_removeEvent)	\
    (This)->lpVtbl -> Unadvise(This,in_lToken,in_removeEvent)

#define XSIApplication_get_EventInfos(This,__MIDL_0268)	\
    (This)->lpVtbl -> get_EventInfos(This,__MIDL_0268)

#define XSIApplication_get_ActiveSceneRoot(This,out_ppRoot)	\
    (This)->lpVtbl -> get_ActiveSceneRoot(This,out_ppRoot)

#define XSIApplication_ExecuteScriptCommand(This,in_bzScriptName,in_vsa,out_pretval)	\
    (This)->lpVtbl -> ExecuteScriptCommand(This,in_bzScriptName,in_vsa,out_pretval)

#define XSIApplication_get_Interactive(This,out_pInteractive)	\
    (This)->lpVtbl -> get_Interactive(This,out_pInteractive)

#define XSIApplication_get_Platform(This,out_pOS)	\
    (This)->lpVtbl -> get_Platform(This,out_pOS)

#define XSIApplication_get_Devices(This,__MIDL_0269)	\
    (This)->lpVtbl -> get_Devices(This,__MIDL_0269)

#define XSIApplication_CreateProject(This,in_ProjectPath,out_ppProject)	\
    (This)->lpVtbl -> CreateProject(This,in_ProjectPath,out_ppProject)

#define XSIApplication_CreateAddon(This,out_ppAddon)	\
    (This)->lpVtbl -> CreateAddon(This,out_ppAddon)

#define XSIApplication_get_Preferences(This,__MIDL_0270)	\
    (This)->lpVtbl -> get_Preferences(This,__MIDL_0270)

#define XSIApplication_LoadPlugin(This,in_pluginName,__MIDL_0271)	\
    (This)->lpVtbl -> LoadPlugin(This,in_pluginName,__MIDL_0271)

#define XSIApplication_UnloadPlugin(This,in_pluginFileName,in_bRemove)	\
    (This)->lpVtbl -> UnloadPlugin(This,in_pluginFileName,in_bRemove)

#define XSIApplication_get_Plugins(This,out_ppPlugins)	\
    (This)->lpVtbl -> get_Plugins(This,out_ppPlugins)

#define XSIApplication_get_Filters(This,out_ppFilters)	\
    (This)->lpVtbl -> get_Filters(This,out_ppFilters)

#define XSIApplication_get_Desktop(This,out_ppDesktop)	\
    (This)->lpVtbl -> get_Desktop(This,out_ppDesktop)

#define XSIApplication_get_ActiveToolName(This,out_pbszToolName)	\
    (This)->lpVtbl -> get_ActiveToolName(This,out_pbszToolName)

#define XSIApplication_get_License(This,out_License)	\
    (This)->lpVtbl -> get_License(This,out_License)

#define XSIApplication_put_ActiveProject(This,in_bstrProject)	\
    (This)->lpVtbl -> put_ActiveProject(This,in_bstrProject)

#define XSIApplication_AddWorkgroup(This,in_workgrouppath)	\
    (This)->lpVtbl -> AddWorkgroup(This,in_workgrouppath)

#define XSIApplication_RemoveWorkgroup(This,in_workgrouppath)	\
    (This)->lpVtbl -> RemoveWorkgroup(This,in_workgrouppath)

#define XSIApplication_get_Workgroups(This,out_pWorkgroupArray)	\
    (This)->lpVtbl -> get_Workgroups(This,out_pWorkgroupArray)

#define XSIApplication_RescanWorkgroups(This)	\
    (This)->lpVtbl -> RescanWorkgroups(This)

#define XSIApplication_ActivateWorkgroup(This,in_workgrouppath,in_bActivate)	\
    (This)->lpVtbl -> ActivateWorkgroup(This,in_workgrouppath,in_bActivate)

#define XSIApplication_UpdatePlugins(This)	\
    (This)->lpVtbl -> UpdatePlugins(This)

#define XSIApplication_GetCommandByScriptingName(This,in_strScriptingName,out_ppCmd)	\
    (This)->lpVtbl -> GetCommandByScriptingName(This,in_strScriptingName,out_ppCmd)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Selection_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ Selection **out_ppSelection);


void __RPC_STUB XSIApplication_get_Selection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Dictionary_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ Dictionary **__MIDL_0266);


void __RPC_STUB XSIApplication_get_Dictionary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_ActiveProject_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ Project **out_ppProject);


void __RPC_STUB XSIApplication_get_ActiveProject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_InstallationPath_Proxy( 
    XSIApplication * This,
    siInstallationPath in_pathType,
    /* [retval][out] */ BSTR *out_pPath);


void __RPC_STUB XSIApplication_get_InstallationPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_InstallAddon_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_bszFileName,
    /* [defaultvalue][in] */ siInstallationPath in_eInstallDir,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bBatch);


void __RPC_STUB XSIApplication_InstallAddon_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_UnInstallAddon_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_bszFileName);


void __RPC_STUB XSIApplication_UnInstallAddon_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_CreateCommand_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_name,
    /* [defaultvalue][in] */ siCommandCategory in_category,
    /* [retval][out] */ Command **out_ppCommand);


void __RPC_STUB XSIApplication_CreateCommand_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_AddCommand_Proxy( 
    XSIApplication * This,
    /* [in] */ Command *in_pCommand);


void __RPC_STUB XSIApplication_AddCommand_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_RemoveCommand_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_name);


void __RPC_STUB XSIApplication_RemoveCommand_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Commands_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ CommandCollection **__MIDL_0267);


void __RPC_STUB XSIApplication_get_Commands_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_Advise_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_event,
    /* [in] */ BSTR in_filename,
    /* [defaultvalue][in] */ BSTR in_handlerFunc,
    /* [defaultvalue][in] */ BSTR in_language,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [optional][in] */ VARIANT in_varAttrib,
    /* [optional][in] */ VARIANT in_varCustomData,
    /* [defaultvalue][in] */ VARIANT_BOOL in_saveEvent,
    /* [retval][out] */ LONG *out_pToken);


void __RPC_STUB XSIApplication_Advise_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_Unadvise_Proxy( 
    XSIApplication * This,
    /* [in] */ LONG in_lToken,
    /* [defaultvalue][in] */ VARIANT_BOOL in_removeEvent);


void __RPC_STUB XSIApplication_Unadvise_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_EventInfos_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ EventInfoCollection **__MIDL_0268);


void __RPC_STUB XSIApplication_get_EventInfos_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_ActiveSceneRoot_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ Model **out_ppRoot);


void __RPC_STUB XSIApplication_get_ActiveSceneRoot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_ExecuteScriptCommand_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_bzScriptName,
    /* [optional][in] */ VARIANT in_vsa,
    /* [retval][out] */ VARIANT *out_pretval);


void __RPC_STUB XSIApplication_ExecuteScriptCommand_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Interactive_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ VARIANT_BOOL *out_pInteractive);


void __RPC_STUB XSIApplication_get_Interactive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Platform_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ BSTR *out_pOS);


void __RPC_STUB XSIApplication_get_Platform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Devices_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ DeviceCollection **__MIDL_0269);


void __RPC_STUB XSIApplication_get_Devices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_CreateProject_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_ProjectPath,
    /* [retval][out] */ Project **out_ppProject);


void __RPC_STUB XSIApplication_CreateProject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_CreateAddon_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ Addon **out_ppAddon);


void __RPC_STUB XSIApplication_CreateAddon_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Preferences_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ Preferences **__MIDL_0270);


void __RPC_STUB XSIApplication_get_Preferences_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_LoadPlugin_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_pluginName,
    /* [retval][out] */ Plugin **__MIDL_0271);


void __RPC_STUB XSIApplication_LoadPlugin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIApplication_UnloadPlugin_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_pluginFileName,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bRemove);


void __RPC_STUB XSIApplication_UnloadPlugin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Plugins_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ PluginCollection **out_ppPlugins);


void __RPC_STUB XSIApplication_get_Plugins_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Filters_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ FilterCollection **out_ppFilters);


void __RPC_STUB XSIApplication_get_Filters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Desktop_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ Desktop **out_ppDesktop);


void __RPC_STUB XSIApplication_get_Desktop_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_ActiveToolName_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ BSTR *out_pbszToolName);


void __RPC_STUB XSIApplication_get_ActiveToolName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_License_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ BSTR *out_License);


void __RPC_STUB XSIApplication_get_License_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE XSIApplication_put_ActiveProject_Proxy( 
    XSIApplication * This,
    /* [in] */ VARIANT in_bstrProject);


void __RPC_STUB XSIApplication_put_ActiveProject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIApplication_AddWorkgroup_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_workgrouppath);


void __RPC_STUB XSIApplication_AddWorkgroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIApplication_RemoveWorkgroup_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_workgrouppath);


void __RPC_STUB XSIApplication_RemoveWorkgroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE XSIApplication_get_Workgroups_Proxy( 
    XSIApplication * This,
    /* [retval][out] */ VARIANT *out_pWorkgroupArray);


void __RPC_STUB XSIApplication_get_Workgroups_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIApplication_RescanWorkgroups_Proxy( 
    XSIApplication * This);


void __RPC_STUB XSIApplication_RescanWorkgroups_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIApplication_ActivateWorkgroup_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_workgrouppath,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bActivate);


void __RPC_STUB XSIApplication_ActivateWorkgroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIApplication_UpdatePlugins_Proxy( 
    XSIApplication * This);


void __RPC_STUB XSIApplication_UpdatePlugins_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIApplication_GetCommandByScriptingName_Proxy( 
    XSIApplication * This,
    /* [in] */ BSTR in_strScriptingName,
    /* [retval][out] */ Command **out_ppCmd);


void __RPC_STUB XSIApplication_GetCommandByScriptingName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __XSIApplication_INTERFACE_DEFINED__ */


#ifndef __XSIApplicationEvents_INTERFACE_DEFINED__
#define __XSIApplicationEvents_INTERFACE_DEFINED__

/* interface XSIApplicationEvents */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_XSIApplicationEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("644F72E1-6BEF-11d5-AD1A-0090275802BF")
    XSIApplicationEvents : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnBeginNewScene( 
            /* [in] */ VARIANT __MIDL_0272,
            /* [out] */ VARIANT_BOOL *__MIDL_0273) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndNewScene( 
            /* [in] */ VARIANT __MIDL_0274) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginSceneOpen( 
            /* [in] */ VARIANT __MIDL_0275,
            BSTR __MIDL_0276,
            /* [out] */ VARIANT_BOOL *__MIDL_0277) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndSceneOpen( 
            /* [in] */ VARIANT __MIDL_0278,
            BSTR __MIDL_0279) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginSceneSave( 
            /* [in] */ VARIANT __MIDL_0280,
            /* [out] */ VARIANT_BOOL *__MIDL_0281) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndSceneSave( 
            /* [in] */ VARIANT __MIDL_0282) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginSceneSaveAs( 
            /* [in] */ VARIANT __MIDL_0283,
            BSTR __MIDL_0284,
            /* [out] */ VARIANT_BOOL *__MIDL_0285) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndSceneSaveAs( 
            /* [in] */ VARIANT __MIDL_0286,
            BSTR __MIDL_0287) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnTerminate( 
            /* [in] */ VARIANT __MIDL_0288,
            LONG __MIDL_0289) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSelectionChange( 
            /* [in] */ VARIANT __MIDL_0290,
            siSelectionChangeType __MIDL_0291) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginFrame( 
            /* [in] */ VARIANT __MIDL_0292,
            /* [in] */ siRenderType __MIDL_0293,
            /* [in] */ BSTR __MIDL_0294,
            /* [in] */ LONG __MIDL_0295,
            /* [in] */ LONG __MIDL_0296,
            /* [in] */ siRenderFieldType __MIDL_0297,
            /* [out] */ VARIANT_BOOL *__MIDL_0298) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndFrame( 
            /* [in] */ VARIANT __MIDL_0299,
            /* [in] */ siRenderType __MIDL_0300,
            /* [in] */ BSTR __MIDL_0301,
            /* [in] */ LONG __MIDL_0302,
            /* [in] */ LONG __MIDL_0303,
            /* [in] */ siRenderFieldType __MIDL_0304,
            /* [out] */ VARIANT_BOOL *__MIDL_0305) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginSequence( 
            /* [in] */ VARIANT __MIDL_0306,
            /* [in] */ siRenderType __MIDL_0307,
            /* [in] */ BSTR __MIDL_0308,
            /* [in] */ LONG __MIDL_0309,
            /* [in] */ LONG __MIDL_0310,
            /* [in] */ siRenderFieldType __MIDL_0311,
            /* [out] */ VARIANT_BOOL *__MIDL_0312) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndSequence( 
            /* [in] */ VARIANT __MIDL_0313,
            /* [in] */ siRenderType __MIDL_0314,
            /* [in] */ BSTR __MIDL_0315,
            /* [in] */ LONG __MIDL_0316,
            /* [in] */ LONG __MIDL_0317,
            /* [in] */ siRenderFieldType __MIDL_0318,
            /* [out] */ VARIANT_BOOL *__MIDL_0319) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnKeyUp( 
            /* [in] */ VARIANT __MIDL_0320,
            /* [in] */ LONG __MIDL_0321,
            /* [in] */ siKeyboardState __MIDL_0322,
            /* [out] */ VARIANT_BOOL *__MIDL_0323) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnKeyDown( 
            /* [in] */ VARIANT __MIDL_0324,
            /* [in] */ LONG __MIDL_0325,
            /* [in] */ siKeyboardState __MIDL_0326,
            /* [out] */ VARIANT_BOOL *__MIDL_0327) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnValueChange( 
            /* [in] */ VARIANT in_data) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnTimeChange( 
            /* [in] */ VARIANT in_data) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnWindowEvent( 
            /* [in] */ VARIANT in_data) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginFileExport( 
            /* [in] */ VARIANT __MIDL_0328,
            IDispatch *in_pObj,
            BSTR in_filename,
            siFileType in_fileType,
            /* [out] */ VARIANT_BOOL *__MIDL_0329) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndFileExport( 
            /* [in] */ VARIANT __MIDL_0330,
            IDispatch *in_pObj,
            BSTR in_filename,
            siFileType in_fileType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginFileImport( 
            /* [in] */ VARIANT __MIDL_0331,
            /* [in] */ BSTR in_filename,
            /* [in] */ siFileType in_fileType,
            /* [in] */ X3DObject *in_pParentObj,
            /* [in] */ VARIANT_BOOL in_reference,
            /* [in] */ BSTR in_ModelName,
            /* [out] */ VARIANT_BOOL *__MIDL_0332) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndFileImport( 
            /* [in] */ VARIANT __MIDL_0333,
            /* [in] */ BSTR in_filename,
            /* [in] */ siFileType in_fileType,
            /* [in] */ X3DObject *in_pParentObj,
            /* [in] */ VARIANT_BOOL in_reference,
            /* [in] */ BSTR in_ModelName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnStartup( 
            /* [in] */ VARIANT in_data) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnTimer( 
            /* [in] */ VARIANT in_data) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginSceneSave2( 
            /* [in] */ VARIANT __MIDL_0334,
            BSTR __MIDL_0335,
            /* [out] */ VARIANT_BOOL *__MIDL_0336) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnEndSceneSave2( 
            /* [in] */ VARIANT __MIDL_0337,
            BSTR __MIDL_0338) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnCloseScene( 
            /* [in] */ VARIANT in_data) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnActivate( 
            /* [in] */ VARIANT __MIDL_0339,
            /* [in] */ VARIANT_BOOL __MIDL_0340) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMaximize( 
            /* [in] */ VARIANT __MIDL_0341) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMinimize( 
            /* [in] */ VARIANT __MIDL_0342) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnChangeProject( 
            /* [in] */ VARIANT __MIDL_0343,
            /* [in] */ BSTR __MIDL_0344,
            /* [in] */ BSTR __MIDL_0345) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct XSIApplicationEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            XSIApplicationEvents * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            XSIApplicationEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            XSIApplicationEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginNewScene )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0272,
            /* [out] */ VARIANT_BOOL *__MIDL_0273);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndNewScene )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0274);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginSceneOpen )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0275,
            BSTR __MIDL_0276,
            /* [out] */ VARIANT_BOOL *__MIDL_0277);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndSceneOpen )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0278,
            BSTR __MIDL_0279);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginSceneSave )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0280,
            /* [out] */ VARIANT_BOOL *__MIDL_0281);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndSceneSave )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0282);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginSceneSaveAs )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0283,
            BSTR __MIDL_0284,
            /* [out] */ VARIANT_BOOL *__MIDL_0285);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndSceneSaveAs )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0286,
            BSTR __MIDL_0287);
        
        HRESULT ( STDMETHODCALLTYPE *OnTerminate )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0288,
            LONG __MIDL_0289);
        
        HRESULT ( STDMETHODCALLTYPE *OnSelectionChange )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0290,
            siSelectionChangeType __MIDL_0291);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginFrame )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0292,
            /* [in] */ siRenderType __MIDL_0293,
            /* [in] */ BSTR __MIDL_0294,
            /* [in] */ LONG __MIDL_0295,
            /* [in] */ LONG __MIDL_0296,
            /* [in] */ siRenderFieldType __MIDL_0297,
            /* [out] */ VARIANT_BOOL *__MIDL_0298);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndFrame )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0299,
            /* [in] */ siRenderType __MIDL_0300,
            /* [in] */ BSTR __MIDL_0301,
            /* [in] */ LONG __MIDL_0302,
            /* [in] */ LONG __MIDL_0303,
            /* [in] */ siRenderFieldType __MIDL_0304,
            /* [out] */ VARIANT_BOOL *__MIDL_0305);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginSequence )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0306,
            /* [in] */ siRenderType __MIDL_0307,
            /* [in] */ BSTR __MIDL_0308,
            /* [in] */ LONG __MIDL_0309,
            /* [in] */ LONG __MIDL_0310,
            /* [in] */ siRenderFieldType __MIDL_0311,
            /* [out] */ VARIANT_BOOL *__MIDL_0312);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndSequence )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0313,
            /* [in] */ siRenderType __MIDL_0314,
            /* [in] */ BSTR __MIDL_0315,
            /* [in] */ LONG __MIDL_0316,
            /* [in] */ LONG __MIDL_0317,
            /* [in] */ siRenderFieldType __MIDL_0318,
            /* [out] */ VARIANT_BOOL *__MIDL_0319);
        
        HRESULT ( STDMETHODCALLTYPE *OnKeyUp )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0320,
            /* [in] */ LONG __MIDL_0321,
            /* [in] */ siKeyboardState __MIDL_0322,
            /* [out] */ VARIANT_BOOL *__MIDL_0323);
        
        HRESULT ( STDMETHODCALLTYPE *OnKeyDown )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0324,
            /* [in] */ LONG __MIDL_0325,
            /* [in] */ siKeyboardState __MIDL_0326,
            /* [out] */ VARIANT_BOOL *__MIDL_0327);
        
        HRESULT ( STDMETHODCALLTYPE *OnValueChange )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT in_data);
        
        HRESULT ( STDMETHODCALLTYPE *OnTimeChange )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT in_data);
        
        HRESULT ( STDMETHODCALLTYPE *OnWindowEvent )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT in_data);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginFileExport )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0328,
            IDispatch *in_pObj,
            BSTR in_filename,
            siFileType in_fileType,
            /* [out] */ VARIANT_BOOL *__MIDL_0329);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndFileExport )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0330,
            IDispatch *in_pObj,
            BSTR in_filename,
            siFileType in_fileType);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginFileImport )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0331,
            /* [in] */ BSTR in_filename,
            /* [in] */ siFileType in_fileType,
            /* [in] */ X3DObject *in_pParentObj,
            /* [in] */ VARIANT_BOOL in_reference,
            /* [in] */ BSTR in_ModelName,
            /* [out] */ VARIANT_BOOL *__MIDL_0332);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndFileImport )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0333,
            /* [in] */ BSTR in_filename,
            /* [in] */ siFileType in_fileType,
            /* [in] */ X3DObject *in_pParentObj,
            /* [in] */ VARIANT_BOOL in_reference,
            /* [in] */ BSTR in_ModelName);
        
        HRESULT ( STDMETHODCALLTYPE *OnStartup )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT in_data);
        
        HRESULT ( STDMETHODCALLTYPE *OnTimer )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT in_data);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginSceneSave2 )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0334,
            BSTR __MIDL_0335,
            /* [out] */ VARIANT_BOOL *__MIDL_0336);
        
        HRESULT ( STDMETHODCALLTYPE *OnEndSceneSave2 )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0337,
            BSTR __MIDL_0338);
        
        HRESULT ( STDMETHODCALLTYPE *OnCloseScene )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT in_data);
        
        HRESULT ( STDMETHODCALLTYPE *OnActivate )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0339,
            /* [in] */ VARIANT_BOOL __MIDL_0340);
        
        HRESULT ( STDMETHODCALLTYPE *OnMaximize )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0341);
        
        HRESULT ( STDMETHODCALLTYPE *OnMinimize )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0342);
        
        HRESULT ( STDMETHODCALLTYPE *OnChangeProject )( 
            XSIApplicationEvents * This,
            /* [in] */ VARIANT __MIDL_0343,
            /* [in] */ BSTR __MIDL_0344,
            /* [in] */ BSTR __MIDL_0345);
        
        END_INTERFACE
    } XSIApplicationEventsVtbl;

    interface XSIApplicationEvents
    {
        CONST_VTBL struct XSIApplicationEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define XSIApplicationEvents_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define XSIApplicationEvents_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define XSIApplicationEvents_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define XSIApplicationEvents_OnBeginNewScene(This,__MIDL_0272,__MIDL_0273)	\
    (This)->lpVtbl -> OnBeginNewScene(This,__MIDL_0272,__MIDL_0273)

#define XSIApplicationEvents_OnEndNewScene(This,__MIDL_0274)	\
    (This)->lpVtbl -> OnEndNewScene(This,__MIDL_0274)

#define XSIApplicationEvents_OnBeginSceneOpen(This,__MIDL_0275,__MIDL_0276,__MIDL_0277)	\
    (This)->lpVtbl -> OnBeginSceneOpen(This,__MIDL_0275,__MIDL_0276,__MIDL_0277)

#define XSIApplicationEvents_OnEndSceneOpen(This,__MIDL_0278,__MIDL_0279)	\
    (This)->lpVtbl -> OnEndSceneOpen(This,__MIDL_0278,__MIDL_0279)

#define XSIApplicationEvents_OnBeginSceneSave(This,__MIDL_0280,__MIDL_0281)	\
    (This)->lpVtbl -> OnBeginSceneSave(This,__MIDL_0280,__MIDL_0281)

#define XSIApplicationEvents_OnEndSceneSave(This,__MIDL_0282)	\
    (This)->lpVtbl -> OnEndSceneSave(This,__MIDL_0282)

#define XSIApplicationEvents_OnBeginSceneSaveAs(This,__MIDL_0283,__MIDL_0284,__MIDL_0285)	\
    (This)->lpVtbl -> OnBeginSceneSaveAs(This,__MIDL_0283,__MIDL_0284,__MIDL_0285)

#define XSIApplicationEvents_OnEndSceneSaveAs(This,__MIDL_0286,__MIDL_0287)	\
    (This)->lpVtbl -> OnEndSceneSaveAs(This,__MIDL_0286,__MIDL_0287)

#define XSIApplicationEvents_OnTerminate(This,__MIDL_0288,__MIDL_0289)	\
    (This)->lpVtbl -> OnTerminate(This,__MIDL_0288,__MIDL_0289)

#define XSIApplicationEvents_OnSelectionChange(This,__MIDL_0290,__MIDL_0291)	\
    (This)->lpVtbl -> OnSelectionChange(This,__MIDL_0290,__MIDL_0291)

#define XSIApplicationEvents_OnBeginFrame(This,__MIDL_0292,__MIDL_0293,__MIDL_0294,__MIDL_0295,__MIDL_0296,__MIDL_0297,__MIDL_0298)	\
    (This)->lpVtbl -> OnBeginFrame(This,__MIDL_0292,__MIDL_0293,__MIDL_0294,__MIDL_0295,__MIDL_0296,__MIDL_0297,__MIDL_0298)

#define XSIApplicationEvents_OnEndFrame(This,__MIDL_0299,__MIDL_0300,__MIDL_0301,__MIDL_0302,__MIDL_0303,__MIDL_0304,__MIDL_0305)	\
    (This)->lpVtbl -> OnEndFrame(This,__MIDL_0299,__MIDL_0300,__MIDL_0301,__MIDL_0302,__MIDL_0303,__MIDL_0304,__MIDL_0305)

#define XSIApplicationEvents_OnBeginSequence(This,__MIDL_0306,__MIDL_0307,__MIDL_0308,__MIDL_0309,__MIDL_0310,__MIDL_0311,__MIDL_0312)	\
    (This)->lpVtbl -> OnBeginSequence(This,__MIDL_0306,__MIDL_0307,__MIDL_0308,__MIDL_0309,__MIDL_0310,__MIDL_0311,__MIDL_0312)

#define XSIApplicationEvents_OnEndSequence(This,__MIDL_0313,__MIDL_0314,__MIDL_0315,__MIDL_0316,__MIDL_0317,__MIDL_0318,__MIDL_0319)	\
    (This)->lpVtbl -> OnEndSequence(This,__MIDL_0313,__MIDL_0314,__MIDL_0315,__MIDL_0316,__MIDL_0317,__MIDL_0318,__MIDL_0319)

#define XSIApplicationEvents_OnKeyUp(This,__MIDL_0320,__MIDL_0321,__MIDL_0322,__MIDL_0323)	\
    (This)->lpVtbl -> OnKeyUp(This,__MIDL_0320,__MIDL_0321,__MIDL_0322,__MIDL_0323)

#define XSIApplicationEvents_OnKeyDown(This,__MIDL_0324,__MIDL_0325,__MIDL_0326,__MIDL_0327)	\
    (This)->lpVtbl -> OnKeyDown(This,__MIDL_0324,__MIDL_0325,__MIDL_0326,__MIDL_0327)

#define XSIApplicationEvents_OnValueChange(This,in_data)	\
    (This)->lpVtbl -> OnValueChange(This,in_data)

#define XSIApplicationEvents_OnTimeChange(This,in_data)	\
    (This)->lpVtbl -> OnTimeChange(This,in_data)

#define XSIApplicationEvents_OnWindowEvent(This,in_data)	\
    (This)->lpVtbl -> OnWindowEvent(This,in_data)

#define XSIApplicationEvents_OnBeginFileExport(This,__MIDL_0328,in_pObj,in_filename,in_fileType,__MIDL_0329)	\
    (This)->lpVtbl -> OnBeginFileExport(This,__MIDL_0328,in_pObj,in_filename,in_fileType,__MIDL_0329)

#define XSIApplicationEvents_OnEndFileExport(This,__MIDL_0330,in_pObj,in_filename,in_fileType)	\
    (This)->lpVtbl -> OnEndFileExport(This,__MIDL_0330,in_pObj,in_filename,in_fileType)

#define XSIApplicationEvents_OnBeginFileImport(This,__MIDL_0331,in_filename,in_fileType,in_pParentObj,in_reference,in_ModelName,__MIDL_0332)	\
    (This)->lpVtbl -> OnBeginFileImport(This,__MIDL_0331,in_filename,in_fileType,in_pParentObj,in_reference,in_ModelName,__MIDL_0332)

#define XSIApplicationEvents_OnEndFileImport(This,__MIDL_0333,in_filename,in_fileType,in_pParentObj,in_reference,in_ModelName)	\
    (This)->lpVtbl -> OnEndFileImport(This,__MIDL_0333,in_filename,in_fileType,in_pParentObj,in_reference,in_ModelName)

#define XSIApplicationEvents_OnStartup(This,in_data)	\
    (This)->lpVtbl -> OnStartup(This,in_data)

#define XSIApplicationEvents_OnTimer(This,in_data)	\
    (This)->lpVtbl -> OnTimer(This,in_data)

#define XSIApplicationEvents_OnBeginSceneSave2(This,__MIDL_0334,__MIDL_0335,__MIDL_0336)	\
    (This)->lpVtbl -> OnBeginSceneSave2(This,__MIDL_0334,__MIDL_0335,__MIDL_0336)

#define XSIApplicationEvents_OnEndSceneSave2(This,__MIDL_0337,__MIDL_0338)	\
    (This)->lpVtbl -> OnEndSceneSave2(This,__MIDL_0337,__MIDL_0338)

#define XSIApplicationEvents_OnCloseScene(This,in_data)	\
    (This)->lpVtbl -> OnCloseScene(This,in_data)

#define XSIApplicationEvents_OnActivate(This,__MIDL_0339,__MIDL_0340)	\
    (This)->lpVtbl -> OnActivate(This,__MIDL_0339,__MIDL_0340)

#define XSIApplicationEvents_OnMaximize(This,__MIDL_0341)	\
    (This)->lpVtbl -> OnMaximize(This,__MIDL_0341)

#define XSIApplicationEvents_OnMinimize(This,__MIDL_0342)	\
    (This)->lpVtbl -> OnMinimize(This,__MIDL_0342)

#define XSIApplicationEvents_OnChangeProject(This,__MIDL_0343,__MIDL_0344,__MIDL_0345)	\
    (This)->lpVtbl -> OnChangeProject(This,__MIDL_0343,__MIDL_0344,__MIDL_0345)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginNewScene_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0272,
    /* [out] */ VARIANT_BOOL *__MIDL_0273);


void __RPC_STUB XSIApplicationEvents_OnBeginNewScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndNewScene_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0274);


void __RPC_STUB XSIApplicationEvents_OnEndNewScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginSceneOpen_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0275,
    BSTR __MIDL_0276,
    /* [out] */ VARIANT_BOOL *__MIDL_0277);


void __RPC_STUB XSIApplicationEvents_OnBeginSceneOpen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndSceneOpen_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0278,
    BSTR __MIDL_0279);


void __RPC_STUB XSIApplicationEvents_OnEndSceneOpen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginSceneSave_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0280,
    /* [out] */ VARIANT_BOOL *__MIDL_0281);


void __RPC_STUB XSIApplicationEvents_OnBeginSceneSave_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndSceneSave_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0282);


void __RPC_STUB XSIApplicationEvents_OnEndSceneSave_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginSceneSaveAs_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0283,
    BSTR __MIDL_0284,
    /* [out] */ VARIANT_BOOL *__MIDL_0285);


void __RPC_STUB XSIApplicationEvents_OnBeginSceneSaveAs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndSceneSaveAs_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0286,
    BSTR __MIDL_0287);


void __RPC_STUB XSIApplicationEvents_OnEndSceneSaveAs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnTerminate_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0288,
    LONG __MIDL_0289);


void __RPC_STUB XSIApplicationEvents_OnTerminate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnSelectionChange_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0290,
    siSelectionChangeType __MIDL_0291);


void __RPC_STUB XSIApplicationEvents_OnSelectionChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginFrame_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0292,
    /* [in] */ siRenderType __MIDL_0293,
    /* [in] */ BSTR __MIDL_0294,
    /* [in] */ LONG __MIDL_0295,
    /* [in] */ LONG __MIDL_0296,
    /* [in] */ siRenderFieldType __MIDL_0297,
    /* [out] */ VARIANT_BOOL *__MIDL_0298);


void __RPC_STUB XSIApplicationEvents_OnBeginFrame_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndFrame_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0299,
    /* [in] */ siRenderType __MIDL_0300,
    /* [in] */ BSTR __MIDL_0301,
    /* [in] */ LONG __MIDL_0302,
    /* [in] */ LONG __MIDL_0303,
    /* [in] */ siRenderFieldType __MIDL_0304,
    /* [out] */ VARIANT_BOOL *__MIDL_0305);


void __RPC_STUB XSIApplicationEvents_OnEndFrame_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginSequence_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0306,
    /* [in] */ siRenderType __MIDL_0307,
    /* [in] */ BSTR __MIDL_0308,
    /* [in] */ LONG __MIDL_0309,
    /* [in] */ LONG __MIDL_0310,
    /* [in] */ siRenderFieldType __MIDL_0311,
    /* [out] */ VARIANT_BOOL *__MIDL_0312);


void __RPC_STUB XSIApplicationEvents_OnBeginSequence_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndSequence_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0313,
    /* [in] */ siRenderType __MIDL_0314,
    /* [in] */ BSTR __MIDL_0315,
    /* [in] */ LONG __MIDL_0316,
    /* [in] */ LONG __MIDL_0317,
    /* [in] */ siRenderFieldType __MIDL_0318,
    /* [out] */ VARIANT_BOOL *__MIDL_0319);


void __RPC_STUB XSIApplicationEvents_OnEndSequence_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnKeyUp_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0320,
    /* [in] */ LONG __MIDL_0321,
    /* [in] */ siKeyboardState __MIDL_0322,
    /* [out] */ VARIANT_BOOL *__MIDL_0323);


void __RPC_STUB XSIApplicationEvents_OnKeyUp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnKeyDown_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0324,
    /* [in] */ LONG __MIDL_0325,
    /* [in] */ siKeyboardState __MIDL_0326,
    /* [out] */ VARIANT_BOOL *__MIDL_0327);


void __RPC_STUB XSIApplicationEvents_OnKeyDown_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnValueChange_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT in_data);


void __RPC_STUB XSIApplicationEvents_OnValueChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnTimeChange_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT in_data);


void __RPC_STUB XSIApplicationEvents_OnTimeChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnWindowEvent_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT in_data);


void __RPC_STUB XSIApplicationEvents_OnWindowEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginFileExport_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0328,
    IDispatch *in_pObj,
    BSTR in_filename,
    siFileType in_fileType,
    /* [out] */ VARIANT_BOOL *__MIDL_0329);


void __RPC_STUB XSIApplicationEvents_OnBeginFileExport_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndFileExport_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0330,
    IDispatch *in_pObj,
    BSTR in_filename,
    siFileType in_fileType);


void __RPC_STUB XSIApplicationEvents_OnEndFileExport_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginFileImport_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0331,
    /* [in] */ BSTR in_filename,
    /* [in] */ siFileType in_fileType,
    /* [in] */ X3DObject *in_pParentObj,
    /* [in] */ VARIANT_BOOL in_reference,
    /* [in] */ BSTR in_ModelName,
    /* [out] */ VARIANT_BOOL *__MIDL_0332);


void __RPC_STUB XSIApplicationEvents_OnBeginFileImport_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndFileImport_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0333,
    /* [in] */ BSTR in_filename,
    /* [in] */ siFileType in_fileType,
    /* [in] */ X3DObject *in_pParentObj,
    /* [in] */ VARIANT_BOOL in_reference,
    /* [in] */ BSTR in_ModelName);


void __RPC_STUB XSIApplicationEvents_OnEndFileImport_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnStartup_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT in_data);


void __RPC_STUB XSIApplicationEvents_OnStartup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnTimer_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT in_data);


void __RPC_STUB XSIApplicationEvents_OnTimer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnBeginSceneSave2_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0334,
    BSTR __MIDL_0335,
    /* [out] */ VARIANT_BOOL *__MIDL_0336);


void __RPC_STUB XSIApplicationEvents_OnBeginSceneSave2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnEndSceneSave2_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0337,
    BSTR __MIDL_0338);


void __RPC_STUB XSIApplicationEvents_OnEndSceneSave2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnCloseScene_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT in_data);


void __RPC_STUB XSIApplicationEvents_OnCloseScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnActivate_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0339,
    /* [in] */ VARIANT_BOOL __MIDL_0340);


void __RPC_STUB XSIApplicationEvents_OnActivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnMaximize_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0341);


void __RPC_STUB XSIApplicationEvents_OnMaximize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnMinimize_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0342);


void __RPC_STUB XSIApplicationEvents_OnMinimize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE XSIApplicationEvents_OnChangeProject_Proxy( 
    XSIApplicationEvents * This,
    /* [in] */ VARIANT __MIDL_0343,
    /* [in] */ BSTR __MIDL_0344,
    /* [in] */ BSTR __MIDL_0345);


void __RPC_STUB XSIApplicationEvents_OnChangeProject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __XSIApplicationEvents_INTERFACE_DEFINED__ */


#ifndef __DXSIApplicationEvents_DISPINTERFACE_DEFINED__
#define __DXSIApplicationEvents_DISPINTERFACE_DEFINED__

/* dispinterface DXSIApplicationEvents */
/* [uuid] */ 


EXTERN_C const IID DIID_DXSIApplicationEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9E63A512-5868-11d5-AD15-0090275802BF")
    DXSIApplicationEvents : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct DXSIApplicationEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            DXSIApplicationEvents * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            DXSIApplicationEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            DXSIApplicationEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            DXSIApplicationEvents * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            DXSIApplicationEvents * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            DXSIApplicationEvents * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            DXSIApplicationEvents * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } DXSIApplicationEventsVtbl;

    interface DXSIApplicationEvents
    {
        CONST_VTBL struct DXSIApplicationEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define DXSIApplicationEvents_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define DXSIApplicationEvents_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define DXSIApplicationEvents_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define DXSIApplicationEvents_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define DXSIApplicationEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define DXSIApplicationEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define DXSIApplicationEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* __DXSIApplicationEvents_DISPINTERFACE_DEFINED__ */


#ifndef __Dictionary_INTERFACE_DEFINED__
#define __Dictionary_INTERFACE_DEFINED__

/* interface Dictionary */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Dictionary;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0FA4558A-67CF-11d4-8138-00A0C9AC19A9")
    Dictionary : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Info( 
            /* [optional][in] */ BSTR in_bszObject,
            /* [optional][in] */ BSTR in_bszFamily,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObject( 
            /* [in] */ BSTR in_bszObjectName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bThrowError,
            /* [retval][out] */ IDispatch **out_ppFound) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct DictionaryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Dictionary * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Dictionary * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Dictionary * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Dictionary * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Dictionary * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Dictionary * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Dictionary * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Info )( 
            Dictionary * This,
            /* [optional][in] */ BSTR in_bszObject,
            /* [optional][in] */ BSTR in_bszFamily,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObject )( 
            Dictionary * This,
            /* [in] */ BSTR in_bszObjectName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bThrowError,
            /* [retval][out] */ IDispatch **out_ppFound);
        
        END_INTERFACE
    } DictionaryVtbl;

    interface Dictionary
    {
        CONST_VTBL struct DictionaryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Dictionary_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Dictionary_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Dictionary_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Dictionary_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Dictionary_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Dictionary_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Dictionary_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Dictionary_Info(This,in_bszObject,in_bszFamily,pVal)	\
    (This)->lpVtbl -> Info(This,in_bszObject,in_bszFamily,pVal)

#define Dictionary_GetObject(This,in_bszObjectName,in_bThrowError,out_ppFound)	\
    (This)->lpVtbl -> GetObject(This,in_bszObjectName,in_bThrowError,out_ppFound)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Dictionary_Info_Proxy( 
    Dictionary * This,
    /* [optional][in] */ BSTR in_bszObject,
    /* [optional][in] */ BSTR in_bszFamily,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB Dictionary_Info_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Dictionary_GetObject_Proxy( 
    Dictionary * This,
    /* [in] */ BSTR in_bszObjectName,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bThrowError,
    /* [retval][out] */ IDispatch **out_ppFound);


void __RPC_STUB Dictionary_GetObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Dictionary_INTERFACE_DEFINED__ */


#ifndef __Selection_INTERFACE_DEFINED__
#define __Selection_INTERFACE_DEFINED__

/* interface Selection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_Selection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FE60BD80-6191-11d4-811D-00A024189A69")
    Selection : public IDispatch
    {
    public:
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *out_pCount) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [in] */ VARIANT in_key,
            /* [retval][out] */ IDispatch **out_ppItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ IDispatch *in_pObj,
            /* [defaultvalue][in] */ siSelectMode in_selType = siSelectDefault) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove( 
            /* [in] */ IDispatch *in_pObj,
            /* [defaultvalue][in] */ siSelectMode in_selType = siSelectDefault) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAsText( 
            /* [in] */ BSTR in_bstrText) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *out_bstrText) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Filter( 
            /* [retval][out] */ Filter **out_ppFilter) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SelectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Selection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Selection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Selection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Selection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Selection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Selection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Selection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            Selection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            Selection * This,
            /* [retval][out] */ LONG *out_pCount);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            Selection * This,
            /* [in] */ VARIANT in_key,
            /* [retval][out] */ IDispatch **out_ppItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            Selection * This,
            /* [in] */ IDispatch *in_pObj,
            /* [defaultvalue][in] */ siSelectMode in_selType);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( 
            Selection * This,
            /* [in] */ IDispatch *in_pObj,
            /* [defaultvalue][in] */ siSelectMode in_selType);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            Selection * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAsText )( 
            Selection * This,
            /* [in] */ BSTR in_bstrText);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            Selection * This,
            /* [retval][out] */ BSTR *out_bstrText);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            Selection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Filter )( 
            Selection * This,
            /* [retval][out] */ Filter **out_ppFilter);
        
        END_INTERFACE
    } SelectionVtbl;

    interface Selection
    {
        CONST_VTBL struct SelectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Selection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Selection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Selection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Selection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Selection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Selection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Selection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Selection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define Selection_get_Count(This,out_pCount)	\
    (This)->lpVtbl -> get_Count(This,out_pCount)

#define Selection_get_Item(This,in_key,out_ppItem)	\
    (This)->lpVtbl -> get_Item(This,in_key,out_ppItem)

#define Selection_Add(This,in_pObj,in_selType)	\
    (This)->lpVtbl -> Add(This,in_pObj,in_selType)

#define Selection_Remove(This,in_pObj,in_selType)	\
    (This)->lpVtbl -> Remove(This,in_pObj,in_selType)

#define Selection_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define Selection_SetAsText(This,in_bstrText)	\
    (This)->lpVtbl -> SetAsText(This,in_bstrText)

#define Selection_GetAsText(This,out_bstrText)	\
    (This)->lpVtbl -> GetAsText(This,out_bstrText)

#define Selection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define Selection_get_Filter(This,out_ppFilter)	\
    (This)->lpVtbl -> get_Filter(This,out_ppFilter)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE Selection_get_NewEnum_Proxy( 
    Selection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB Selection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Selection_get_Count_Proxy( 
    Selection * This,
    /* [retval][out] */ LONG *out_pCount);


void __RPC_STUB Selection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Selection_get_Item_Proxy( 
    Selection * This,
    /* [in] */ VARIANT in_key,
    /* [retval][out] */ IDispatch **out_ppItem);


void __RPC_STUB Selection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Selection_Add_Proxy( 
    Selection * This,
    /* [in] */ IDispatch *in_pObj,
    /* [defaultvalue][in] */ siSelectMode in_selType);


void __RPC_STUB Selection_Add_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Selection_Remove_Proxy( 
    Selection * This,
    /* [in] */ IDispatch *in_pObj,
    /* [defaultvalue][in] */ siSelectMode in_selType);


void __RPC_STUB Selection_Remove_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Selection_Clear_Proxy( 
    Selection * This);


void __RPC_STUB Selection_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Selection_SetAsText_Proxy( 
    Selection * This,
    /* [in] */ BSTR in_bstrText);


void __RPC_STUB Selection_SetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Selection_GetAsText_Proxy( 
    Selection * This,
    /* [retval][out] */ BSTR *out_bstrText);


void __RPC_STUB Selection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE Selection_get__NewEnum_Proxy( 
    Selection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB Selection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Selection_get_Filter_Proxy( 
    Selection * This,
    /* [retval][out] */ Filter **out_ppFilter);


void __RPC_STUB Selection_get_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Selection_INTERFACE_DEFINED__ */


#ifndef __Command_INTERFACE_DEFINED__
#define __Command_INTERFACE_DEFINED__

/* interface Command */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Command;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("28716CB1-4013-11d5-AD12-0090275802BF")
    Command : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Arguments( 
            /* [retval][out] */ ArgumentCollection **__MIDL_0224) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Category( 
            /* [retval][out] */ BSTR *__MIDL_0225) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *__MIDL_0226) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR __MIDL_0227) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Tooltip( 
            /* [retval][out] */ BSTR *__MIDL_0228) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Tooltip( 
            /* [in] */ BSTR __MIDL_0229) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ScriptingName( 
            /* [retval][out] */ BSTR *__MIDL_0230) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ScriptingName( 
            /* [in] */ BSTR __MIDL_0231) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Handler( 
            /* [retval][out] */ BSTR *__MIDL_0232) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Handler( 
            /* [in] */ BSTR __MIDL_0233) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileName( 
            /* [retval][out] */ BSTR *__MIDL_0234) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FileName( 
            /* [in] */ BSTR __MIDL_0235) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Language( 
            /* [retval][out] */ BSTR *__MIDL_0236) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Language( 
            /* [in] */ BSTR __MIDL_0237) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0238) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ VARIANT_BOOL __MIDL_0239) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ReturnValue( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0240) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ReturnValue( 
            /* [in] */ VARIANT_BOOL __MIDL_0241) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Builtin( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0242) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Execute( 
            /* [retval][out] */ VARIANT *__MIDL_0243) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Update( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFlag( 
            /* [in] */ LONG __MIDL_0244,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0245) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFlag( 
            /* [in] */ LONG __MIDL_0246,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0247 = -1) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SupportsKeyAssignment( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0248) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CannotBeUsedInBatch( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0249) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsNotLogged( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0250) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Arguments( 
            /* [in] */ ArgumentCollection *__MIDL_0251) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UID( 
            /* [retval][out] */ BSTR *__MIDL_0252) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Code( 
            /* [retval][out] */ BSTR *__MIDL_0253) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Code( 
            /* [in] */ BSTR __MIDL_0254) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CommandVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Command * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Command * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Command * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Command * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Command * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Command * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Command * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Arguments )( 
            Command * This,
            /* [retval][out] */ ArgumentCollection **__MIDL_0224);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Category )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0225);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0226);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            Command * This,
            /* [in] */ BSTR __MIDL_0227);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tooltip )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0228);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Tooltip )( 
            Command * This,
            /* [in] */ BSTR __MIDL_0229);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ScriptingName )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0230);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ScriptingName )( 
            Command * This,
            /* [in] */ BSTR __MIDL_0231);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Handler )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0232);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Handler )( 
            Command * This,
            /* [in] */ BSTR __MIDL_0233);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileName )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0234);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileName )( 
            Command * This,
            /* [in] */ BSTR __MIDL_0235);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Language )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0236);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Language )( 
            Command * This,
            /* [in] */ BSTR __MIDL_0237);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            Command * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0238);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            Command * This,
            /* [in] */ VARIANT_BOOL __MIDL_0239);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReturnValue )( 
            Command * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0240);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReturnValue )( 
            Command * This,
            /* [in] */ VARIANT_BOOL __MIDL_0241);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Builtin )( 
            Command * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0242);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Execute )( 
            Command * This,
            /* [retval][out] */ VARIANT *__MIDL_0243);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            Command * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
            Command * This,
            /* [in] */ LONG __MIDL_0244,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0245);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFlag )( 
            Command * This,
            /* [in] */ LONG __MIDL_0246,
            /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0247);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportsKeyAssignment )( 
            Command * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0248);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CannotBeUsedInBatch )( 
            Command * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0249);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsNotLogged )( 
            Command * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0250);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Arguments )( 
            Command * This,
            /* [in] */ ArgumentCollection *__MIDL_0251);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UID )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0252);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Code )( 
            Command * This,
            /* [retval][out] */ BSTR *__MIDL_0253);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Code )( 
            Command * This,
            /* [in] */ BSTR __MIDL_0254);
        
        END_INTERFACE
    } CommandVtbl;

    interface Command
    {
        CONST_VTBL struct CommandVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Command_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Command_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Command_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Command_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Command_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Command_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Command_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Command_get_Arguments(This,__MIDL_0224)	\
    (This)->lpVtbl -> get_Arguments(This,__MIDL_0224)

#define Command_get_Category(This,__MIDL_0225)	\
    (This)->lpVtbl -> get_Category(This,__MIDL_0225)

#define Command_get_Description(This,__MIDL_0226)	\
    (This)->lpVtbl -> get_Description(This,__MIDL_0226)

#define Command_put_Description(This,__MIDL_0227)	\
    (This)->lpVtbl -> put_Description(This,__MIDL_0227)

#define Command_get_Tooltip(This,__MIDL_0228)	\
    (This)->lpVtbl -> get_Tooltip(This,__MIDL_0228)

#define Command_put_Tooltip(This,__MIDL_0229)	\
    (This)->lpVtbl -> put_Tooltip(This,__MIDL_0229)

#define Command_get_ScriptingName(This,__MIDL_0230)	\
    (This)->lpVtbl -> get_ScriptingName(This,__MIDL_0230)

#define Command_put_ScriptingName(This,__MIDL_0231)	\
    (This)->lpVtbl -> put_ScriptingName(This,__MIDL_0231)

#define Command_get_Handler(This,__MIDL_0232)	\
    (This)->lpVtbl -> get_Handler(This,__MIDL_0232)

#define Command_put_Handler(This,__MIDL_0233)	\
    (This)->lpVtbl -> put_Handler(This,__MIDL_0233)

#define Command_get_FileName(This,__MIDL_0234)	\
    (This)->lpVtbl -> get_FileName(This,__MIDL_0234)

#define Command_put_FileName(This,__MIDL_0235)	\
    (This)->lpVtbl -> put_FileName(This,__MIDL_0235)

#define Command_get_Language(This,__MIDL_0236)	\
    (This)->lpVtbl -> get_Language(This,__MIDL_0236)

#define Command_put_Language(This,__MIDL_0237)	\
    (This)->lpVtbl -> put_Language(This,__MIDL_0237)

#define Command_get_Enabled(This,__MIDL_0238)	\
    (This)->lpVtbl -> get_Enabled(This,__MIDL_0238)

#define Command_put_Enabled(This,__MIDL_0239)	\
    (This)->lpVtbl -> put_Enabled(This,__MIDL_0239)

#define Command_get_ReturnValue(This,__MIDL_0240)	\
    (This)->lpVtbl -> get_ReturnValue(This,__MIDL_0240)

#define Command_put_ReturnValue(This,__MIDL_0241)	\
    (This)->lpVtbl -> put_ReturnValue(This,__MIDL_0241)

#define Command_get_Builtin(This,__MIDL_0242)	\
    (This)->lpVtbl -> get_Builtin(This,__MIDL_0242)

#define Command_Execute(This,__MIDL_0243)	\
    (This)->lpVtbl -> Execute(This,__MIDL_0243)

#define Command_Update(This)	\
    (This)->lpVtbl -> Update(This)

#define Command_GetFlag(This,__MIDL_0244,__MIDL_0245)	\
    (This)->lpVtbl -> GetFlag(This,__MIDL_0244,__MIDL_0245)

#define Command_SetFlag(This,__MIDL_0246,__MIDL_0247)	\
    (This)->lpVtbl -> SetFlag(This,__MIDL_0246,__MIDL_0247)

#define Command_get_SupportsKeyAssignment(This,__MIDL_0248)	\
    (This)->lpVtbl -> get_SupportsKeyAssignment(This,__MIDL_0248)

#define Command_get_CannotBeUsedInBatch(This,__MIDL_0249)	\
    (This)->lpVtbl -> get_CannotBeUsedInBatch(This,__MIDL_0249)

#define Command_get_IsNotLogged(This,__MIDL_0250)	\
    (This)->lpVtbl -> get_IsNotLogged(This,__MIDL_0250)

#define Command_put_Arguments(This,__MIDL_0251)	\
    (This)->lpVtbl -> put_Arguments(This,__MIDL_0251)

#define Command_get_UID(This,__MIDL_0252)	\
    (This)->lpVtbl -> get_UID(This,__MIDL_0252)

#define Command_get_Code(This,__MIDL_0253)	\
    (This)->lpVtbl -> get_Code(This,__MIDL_0253)

#define Command_put_Code(This,__MIDL_0254)	\
    (This)->lpVtbl -> put_Code(This,__MIDL_0254)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Arguments_Proxy( 
    Command * This,
    /* [retval][out] */ ArgumentCollection **__MIDL_0224);


void __RPC_STUB Command_get_Arguments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Category_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0225);


void __RPC_STUB Command_get_Category_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Description_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0226);


void __RPC_STUB Command_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_Description_Proxy( 
    Command * This,
    /* [in] */ BSTR __MIDL_0227);


void __RPC_STUB Command_put_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Tooltip_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0228);


void __RPC_STUB Command_get_Tooltip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_Tooltip_Proxy( 
    Command * This,
    /* [in] */ BSTR __MIDL_0229);


void __RPC_STUB Command_put_Tooltip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_ScriptingName_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0230);


void __RPC_STUB Command_get_ScriptingName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_ScriptingName_Proxy( 
    Command * This,
    /* [in] */ BSTR __MIDL_0231);


void __RPC_STUB Command_put_ScriptingName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Handler_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0232);


void __RPC_STUB Command_get_Handler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_Handler_Proxy( 
    Command * This,
    /* [in] */ BSTR __MIDL_0233);


void __RPC_STUB Command_put_Handler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_FileName_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0234);


void __RPC_STUB Command_get_FileName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_FileName_Proxy( 
    Command * This,
    /* [in] */ BSTR __MIDL_0235);


void __RPC_STUB Command_put_FileName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Language_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0236);


void __RPC_STUB Command_get_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_Language_Proxy( 
    Command * This,
    /* [in] */ BSTR __MIDL_0237);


void __RPC_STUB Command_put_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Enabled_Proxy( 
    Command * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0238);


void __RPC_STUB Command_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_Enabled_Proxy( 
    Command * This,
    /* [in] */ VARIANT_BOOL __MIDL_0239);


void __RPC_STUB Command_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_ReturnValue_Proxy( 
    Command * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0240);


void __RPC_STUB Command_get_ReturnValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_ReturnValue_Proxy( 
    Command * This,
    /* [in] */ VARIANT_BOOL __MIDL_0241);


void __RPC_STUB Command_put_ReturnValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Builtin_Proxy( 
    Command * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0242);


void __RPC_STUB Command_get_Builtin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Command_Execute_Proxy( 
    Command * This,
    /* [retval][out] */ VARIANT *__MIDL_0243);


void __RPC_STUB Command_Execute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Command_Update_Proxy( 
    Command * This);


void __RPC_STUB Command_Update_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Command_GetFlag_Proxy( 
    Command * This,
    /* [in] */ LONG __MIDL_0244,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0245);


void __RPC_STUB Command_GetFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Command_SetFlag_Proxy( 
    Command * This,
    /* [in] */ LONG __MIDL_0246,
    /* [defaultvalue][in] */ VARIANT_BOOL __MIDL_0247);


void __RPC_STUB Command_SetFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_SupportsKeyAssignment_Proxy( 
    Command * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0248);


void __RPC_STUB Command_get_SupportsKeyAssignment_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_CannotBeUsedInBatch_Proxy( 
    Command * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0249);


void __RPC_STUB Command_get_CannotBeUsedInBatch_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_IsNotLogged_Proxy( 
    Command * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0250);


void __RPC_STUB Command_get_IsNotLogged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_Arguments_Proxy( 
    Command * This,
    /* [in] */ ArgumentCollection *__MIDL_0251);


void __RPC_STUB Command_put_Arguments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_UID_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0252);


void __RPC_STUB Command_get_UID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Command_get_Code_Proxy( 
    Command * This,
    /* [retval][out] */ BSTR *__MIDL_0253);


void __RPC_STUB Command_get_Code_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE Command_put_Code_Proxy( 
    Command * This,
    /* [in] */ BSTR __MIDL_0254);


void __RPC_STUB Command_put_Code_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Command_INTERFACE_DEFINED__ */


#ifndef __Argument_INTERFACE_DEFINED__
#define __Argument_INTERFACE_DEFINED__

/* interface Argument */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Argument;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("56A8B6F1-3FD4-11d5-AD12-0090275802BF")
    Argument : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT __MIDL_0255) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ VARIANT *__MIDL_0256) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Flags( 
            /* [retval][out] */ siArgumentFlags *__MIDL_0257) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Handler( 
            /* [retval][out] */ ArgumentHandler **out_ppArgumentHandler) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Handler( 
            /* [in] */ VARIANT in_ArgumentHandler) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ArgumentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Argument * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Argument * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Argument * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Argument * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Argument * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Argument * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Argument * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            Argument * This,
            /* [in] */ VARIANT __MIDL_0255);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            Argument * This,
            /* [retval][out] */ VARIANT *__MIDL_0256);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Flags )( 
            Argument * This,
            /* [retval][out] */ siArgumentFlags *__MIDL_0257);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Handler )( 
            Argument * This,
            /* [retval][out] */ ArgumentHandler **out_ppArgumentHandler);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Handler )( 
            Argument * This,
            /* [in] */ VARIANT in_ArgumentHandler);
        
        END_INTERFACE
    } ArgumentVtbl;

    interface Argument
    {
        CONST_VTBL struct ArgumentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Argument_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Argument_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Argument_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Argument_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Argument_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Argument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Argument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Argument_put_Value(This,__MIDL_0255)	\
    (This)->lpVtbl -> put_Value(This,__MIDL_0255)

#define Argument_get_Value(This,__MIDL_0256)	\
    (This)->lpVtbl -> get_Value(This,__MIDL_0256)

#define Argument_get_Flags(This,__MIDL_0257)	\
    (This)->lpVtbl -> get_Flags(This,__MIDL_0257)

#define Argument_get_Handler(This,out_ppArgumentHandler)	\
    (This)->lpVtbl -> get_Handler(This,out_ppArgumentHandler)

#define Argument_put_Handler(This,in_ArgumentHandler)	\
    (This)->lpVtbl -> put_Handler(This,in_ArgumentHandler)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Argument_put_Value_Proxy( 
    Argument * This,
    /* [in] */ VARIANT __MIDL_0255);


void __RPC_STUB Argument_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Argument_get_Value_Proxy( 
    Argument * This,
    /* [retval][out] */ VARIANT *__MIDL_0256);


void __RPC_STUB Argument_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Argument_get_Flags_Proxy( 
    Argument * This,
    /* [retval][out] */ siArgumentFlags *__MIDL_0257);


void __RPC_STUB Argument_get_Flags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Argument_get_Handler_Proxy( 
    Argument * This,
    /* [retval][out] */ ArgumentHandler **out_ppArgumentHandler);


void __RPC_STUB Argument_get_Handler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Argument_put_Handler_Proxy( 
    Argument * This,
    /* [in] */ VARIANT in_ArgumentHandler);


void __RPC_STUB Argument_put_Handler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Argument_INTERFACE_DEFINED__ */


#ifndef __ArgumentHandler_INTERFACE_DEFINED__
#define __ArgumentHandler_INTERFACE_DEFINED__

/* interface ArgumentHandler */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ArgumentHandler;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("76275FFF-68A9-4775-B060-A2E1978D9183")
    ArgumentHandler : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct ArgumentHandlerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ArgumentHandler * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ArgumentHandler * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ArgumentHandler * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ArgumentHandler * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ArgumentHandler * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ArgumentHandler * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ArgumentHandler * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } ArgumentHandlerVtbl;

    interface ArgumentHandler
    {
        CONST_VTBL struct ArgumentHandlerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ArgumentHandler_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ArgumentHandler_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ArgumentHandler_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ArgumentHandler_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ArgumentHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ArgumentHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ArgumentHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ArgumentHandler_INTERFACE_DEFINED__ */


#ifndef __EventInfo_INTERFACE_DEFINED__
#define __EventInfo_INTERFACE_DEFINED__

/* interface EventInfo */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_EventInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DC94EA01-5622-11d5-AD15-0090275802BF")
    EventInfo : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BSTR *__MIDL_0258) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Event( 
            /* [retval][out] */ BSTR *__MIDL_0259) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Handler( 
            /* [retval][out] */ BSTR *__MIDL_0260) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileName( 
            /* [retval][out] */ BSTR *__MIDL_0261) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Language( 
            /* [retval][out] */ BSTR *__MIDL_0262) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Attributes( 
            /* [retval][out] */ VARIANT *__MIDL_0263) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CustomData( 
            /* [retval][out] */ VARIANT *__MIDL_0264) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Token( 
            /* [retval][out] */ LONG *__MIDL_0265) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mute( 
            /* [retval][out] */ VARIANT_BOOL *out_bMute) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Mute( 
            /* [in] */ VARIANT_BOOL in_bMute) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EventInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            EventInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            EventInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            EventInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            EventInfo * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            EventInfo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            EventInfo * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            EventInfo * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            EventInfo * This,
            /* [retval][out] */ BSTR *__MIDL_0258);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Event )( 
            EventInfo * This,
            /* [retval][out] */ BSTR *__MIDL_0259);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Handler )( 
            EventInfo * This,
            /* [retval][out] */ BSTR *__MIDL_0260);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileName )( 
            EventInfo * This,
            /* [retval][out] */ BSTR *__MIDL_0261);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Language )( 
            EventInfo * This,
            /* [retval][out] */ BSTR *__MIDL_0262);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Attributes )( 
            EventInfo * This,
            /* [retval][out] */ VARIANT *__MIDL_0263);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CustomData )( 
            EventInfo * This,
            /* [retval][out] */ VARIANT *__MIDL_0264);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Token )( 
            EventInfo * This,
            /* [retval][out] */ LONG *__MIDL_0265);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mute )( 
            EventInfo * This,
            /* [retval][out] */ VARIANT_BOOL *out_bMute);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mute )( 
            EventInfo * This,
            /* [in] */ VARIANT_BOOL in_bMute);
        
        END_INTERFACE
    } EventInfoVtbl;

    interface EventInfo
    {
        CONST_VTBL struct EventInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define EventInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define EventInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define EventInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define EventInfo_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define EventInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define EventInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define EventInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define EventInfo_get_Type(This,__MIDL_0258)	\
    (This)->lpVtbl -> get_Type(This,__MIDL_0258)

#define EventInfo_get_Event(This,__MIDL_0259)	\
    (This)->lpVtbl -> get_Event(This,__MIDL_0259)

#define EventInfo_get_Handler(This,__MIDL_0260)	\
    (This)->lpVtbl -> get_Handler(This,__MIDL_0260)

#define EventInfo_get_FileName(This,__MIDL_0261)	\
    (This)->lpVtbl -> get_FileName(This,__MIDL_0261)

#define EventInfo_get_Language(This,__MIDL_0262)	\
    (This)->lpVtbl -> get_Language(This,__MIDL_0262)

#define EventInfo_get_Attributes(This,__MIDL_0263)	\
    (This)->lpVtbl -> get_Attributes(This,__MIDL_0263)

#define EventInfo_get_CustomData(This,__MIDL_0264)	\
    (This)->lpVtbl -> get_CustomData(This,__MIDL_0264)

#define EventInfo_get_Token(This,__MIDL_0265)	\
    (This)->lpVtbl -> get_Token(This,__MIDL_0265)

#define EventInfo_get_Mute(This,out_bMute)	\
    (This)->lpVtbl -> get_Mute(This,out_bMute)

#define EventInfo_put_Mute(This,in_bMute)	\
    (This)->lpVtbl -> put_Mute(This,in_bMute)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_Type_Proxy( 
    EventInfo * This,
    /* [retval][out] */ BSTR *__MIDL_0258);


void __RPC_STUB EventInfo_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_Event_Proxy( 
    EventInfo * This,
    /* [retval][out] */ BSTR *__MIDL_0259);


void __RPC_STUB EventInfo_get_Event_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_Handler_Proxy( 
    EventInfo * This,
    /* [retval][out] */ BSTR *__MIDL_0260);


void __RPC_STUB EventInfo_get_Handler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_FileName_Proxy( 
    EventInfo * This,
    /* [retval][out] */ BSTR *__MIDL_0261);


void __RPC_STUB EventInfo_get_FileName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_Language_Proxy( 
    EventInfo * This,
    /* [retval][out] */ BSTR *__MIDL_0262);


void __RPC_STUB EventInfo_get_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_Attributes_Proxy( 
    EventInfo * This,
    /* [retval][out] */ VARIANT *__MIDL_0263);


void __RPC_STUB EventInfo_get_Attributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_CustomData_Proxy( 
    EventInfo * This,
    /* [retval][out] */ VARIANT *__MIDL_0264);


void __RPC_STUB EventInfo_get_CustomData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_Token_Proxy( 
    EventInfo * This,
    /* [retval][out] */ LONG *__MIDL_0265);


void __RPC_STUB EventInfo_get_Token_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE EventInfo_get_Mute_Proxy( 
    EventInfo * This,
    /* [retval][out] */ VARIANT_BOOL *out_bMute);


void __RPC_STUB EventInfo_get_Mute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE EventInfo_put_Mute_Proxy( 
    EventInfo * This,
    /* [in] */ VARIANT_BOOL in_bMute);


void __RPC_STUB EventInfo_put_Mute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __EventInfo_INTERFACE_DEFINED__ */


#ifndef __TimerEvent_INTERFACE_DEFINED__
#define __TimerEvent_INTERFACE_DEFINED__

/* interface TimerEvent */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_TimerEvent;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("271C5860-13E9-492d-9ECE-8D5C0DE19456")
    TimerEvent : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Interval( 
            /* [retval][out] */ LONG *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Delay( 
            /* [retval][out] */ LONG *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Reset( 
            /* [in] */ LONG in_IntervalVal,
            /* [defaultvalue][in] */ LONG in_DelayVal = 0) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct TimerEventVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            TimerEvent * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            TimerEvent * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            TimerEvent * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            TimerEvent * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            TimerEvent * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            TimerEvent * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            TimerEvent * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Interval )( 
            TimerEvent * This,
            /* [retval][out] */ LONG *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Delay )( 
            TimerEvent * This,
            /* [retval][out] */ LONG *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            TimerEvent * This,
            /* [in] */ LONG in_IntervalVal,
            /* [defaultvalue][in] */ LONG in_DelayVal);
        
        END_INTERFACE
    } TimerEventVtbl;

    interface TimerEvent
    {
        CONST_VTBL struct TimerEventVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define TimerEvent_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define TimerEvent_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define TimerEvent_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define TimerEvent_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define TimerEvent_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define TimerEvent_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define TimerEvent_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define TimerEvent_get_Interval(This,out_pVal)	\
    (This)->lpVtbl -> get_Interval(This,out_pVal)

#define TimerEvent_get_Delay(This,out_pVal)	\
    (This)->lpVtbl -> get_Delay(This,out_pVal)

#define TimerEvent_Reset(This,in_IntervalVal,in_DelayVal)	\
    (This)->lpVtbl -> Reset(This,in_IntervalVal,in_DelayVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimerEvent_get_Interval_Proxy( 
    TimerEvent * This,
    /* [retval][out] */ LONG *out_pVal);


void __RPC_STUB TimerEvent_get_Interval_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE TimerEvent_get_Delay_Proxy( 
    TimerEvent * This,
    /* [retval][out] */ LONG *out_pVal);


void __RPC_STUB TimerEvent_get_Delay_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TimerEvent_Reset_Proxy( 
    TimerEvent * This,
    /* [in] */ LONG in_IntervalVal,
    /* [defaultvalue][in] */ LONG in_DelayVal);


void __RPC_STUB TimerEvent_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __TimerEvent_INTERFACE_DEFINED__ */


#ifndef __CommandCollection_INTERFACE_DEFINED__
#define __CommandCollection_INTERFACE_DEFINED__

/* interface CommandCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_CommandCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BBB562A1-3FD3-11d5-AD12-0090275802BF")
    CommandCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Command **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [in] */ VARIANT Keywords,
            /* [retval][out] */ CommandCollection **out_pFound) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CommandCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            CommandCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            CommandCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            CommandCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            CommandCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            CommandCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            CommandCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            CommandCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            CommandCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Command **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            CommandCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            CommandCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            CommandCollection * This,
            /* [in] */ VARIANT Keywords,
            /* [retval][out] */ CommandCollection **out_pFound);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            CommandCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } CommandCollectionVtbl;

    interface CommandCollection
    {
        CONST_VTBL struct CommandCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define CommandCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define CommandCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define CommandCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define CommandCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define CommandCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define CommandCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define CommandCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define CommandCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define CommandCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define CommandCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define CommandCollection_Filter(This,Keywords,out_pFound)	\
    (This)->lpVtbl -> Filter(This,Keywords,out_pFound)

#define CommandCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE CommandCollection_get_Item_Proxy( 
    CommandCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Command **out_pParam);


void __RPC_STUB CommandCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE CommandCollection_get_Count_Proxy( 
    CommandCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB CommandCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE CommandCollection_get_NewEnum_Proxy( 
    CommandCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB CommandCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CommandCollection_Filter_Proxy( 
    CommandCollection * This,
    /* [in] */ VARIANT Keywords,
    /* [retval][out] */ CommandCollection **out_pFound);


void __RPC_STUB CommandCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE CommandCollection_get__NewEnum_Proxy( 
    CommandCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB CommandCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __CommandCollection_INTERFACE_DEFINED__ */


#ifndef __ArgumentCollection_INTERFACE_DEFINED__
#define __ArgumentCollection_INTERFACE_DEFINED__

/* interface ArgumentCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ArgumentCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("56A8B6F2-3FD4-11d5-AD12-0090275802BF")
    ArgumentCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Argument **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ BSTR name,
            /* [defaultvalue][in] */ siArgumentFlags argflags,
            /* [optional][in] */ VARIANT defval,
            /* [defaultvalue][in] */ siVariantType in_vtValType,
            /* [retval][out] */ Argument **out_pArg) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Update( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveAll( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove( 
            /* [in] */ VARIANT in_Index) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCopy( 
            /* [in] */ Argument *in_pSrcArgument,
            /* [retval][out] */ Argument **out_ppNewArgument) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddWithHandler( 
            /* [in] */ BSTR in_ArgumentName,
            /* [in] */ VARIANT in_ArgHandler,
            /* [defaultvalue][in] */ BSTR in_DefaultValue,
            /* [retval][out] */ Argument **out_ppArg) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddObjectArgument( 
            /* [in] */ BSTR in_ArgumentName,
            /* [retval][out] */ Argument **out_ppArg) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ArgumentCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ArgumentCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ArgumentCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ArgumentCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ArgumentCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ArgumentCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ArgumentCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ArgumentCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ArgumentCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Argument **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ArgumentCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ArgumentCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            ArgumentCollection * This,
            /* [in] */ BSTR name,
            /* [defaultvalue][in] */ siArgumentFlags argflags,
            /* [optional][in] */ VARIANT defval,
            /* [defaultvalue][in] */ siVariantType in_vtValType,
            /* [retval][out] */ Argument **out_pArg);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            ArgumentCollection * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveAll )( 
            ArgumentCollection * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( 
            ArgumentCollection * This,
            /* [in] */ VARIANT in_Index);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCopy )( 
            ArgumentCollection * This,
            /* [in] */ Argument *in_pSrcArgument,
            /* [retval][out] */ Argument **out_ppNewArgument);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddWithHandler )( 
            ArgumentCollection * This,
            /* [in] */ BSTR in_ArgumentName,
            /* [in] */ VARIANT in_ArgHandler,
            /* [defaultvalue][in] */ BSTR in_DefaultValue,
            /* [retval][out] */ Argument **out_ppArg);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddObjectArgument )( 
            ArgumentCollection * This,
            /* [in] */ BSTR in_ArgumentName,
            /* [retval][out] */ Argument **out_ppArg);
        
        END_INTERFACE
    } ArgumentCollectionVtbl;

    interface ArgumentCollection
    {
        CONST_VTBL struct ArgumentCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ArgumentCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ArgumentCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ArgumentCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ArgumentCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ArgumentCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ArgumentCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ArgumentCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ArgumentCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ArgumentCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ArgumentCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ArgumentCollection_Add(This,name,argflags,defval,in_vtValType,out_pArg)	\
    (This)->lpVtbl -> Add(This,name,argflags,defval,in_vtValType,out_pArg)

#define ArgumentCollection_Update(This)	\
    (This)->lpVtbl -> Update(This)

#define ArgumentCollection_RemoveAll(This)	\
    (This)->lpVtbl -> RemoveAll(This)

#define ArgumentCollection_Remove(This,in_Index)	\
    (This)->lpVtbl -> Remove(This,in_Index)

#define ArgumentCollection_AddCopy(This,in_pSrcArgument,out_ppNewArgument)	\
    (This)->lpVtbl -> AddCopy(This,in_pSrcArgument,out_ppNewArgument)

#define ArgumentCollection_AddWithHandler(This,in_ArgumentName,in_ArgHandler,in_DefaultValue,out_ppArg)	\
    (This)->lpVtbl -> AddWithHandler(This,in_ArgumentName,in_ArgHandler,in_DefaultValue,out_ppArg)

#define ArgumentCollection_AddObjectArgument(This,in_ArgumentName,out_ppArg)	\
    (This)->lpVtbl -> AddObjectArgument(This,in_ArgumentName,out_ppArg)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_get_Item_Proxy( 
    ArgumentCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Argument **out_pParam);


void __RPC_STUB ArgumentCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_get_Count_Proxy( 
    ArgumentCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ArgumentCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_get__NewEnum_Proxy( 
    ArgumentCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ArgumentCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_Add_Proxy( 
    ArgumentCollection * This,
    /* [in] */ BSTR name,
    /* [defaultvalue][in] */ siArgumentFlags argflags,
    /* [optional][in] */ VARIANT defval,
    /* [defaultvalue][in] */ siVariantType in_vtValType,
    /* [retval][out] */ Argument **out_pArg);


void __RPC_STUB ArgumentCollection_Add_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_Update_Proxy( 
    ArgumentCollection * This);


void __RPC_STUB ArgumentCollection_Update_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_RemoveAll_Proxy( 
    ArgumentCollection * This);


void __RPC_STUB ArgumentCollection_RemoveAll_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_Remove_Proxy( 
    ArgumentCollection * This,
    /* [in] */ VARIANT in_Index);


void __RPC_STUB ArgumentCollection_Remove_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_AddCopy_Proxy( 
    ArgumentCollection * This,
    /* [in] */ Argument *in_pSrcArgument,
    /* [retval][out] */ Argument **out_ppNewArgument);


void __RPC_STUB ArgumentCollection_AddCopy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_AddWithHandler_Proxy( 
    ArgumentCollection * This,
    /* [in] */ BSTR in_ArgumentName,
    /* [in] */ VARIANT in_ArgHandler,
    /* [defaultvalue][in] */ BSTR in_DefaultValue,
    /* [retval][out] */ Argument **out_ppArg);


void __RPC_STUB ArgumentCollection_AddWithHandler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ArgumentCollection_AddObjectArgument_Proxy( 
    ArgumentCollection * This,
    /* [in] */ BSTR in_ArgumentName,
    /* [retval][out] */ Argument **out_ppArg);


void __RPC_STUB ArgumentCollection_AddObjectArgument_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ArgumentCollection_INTERFACE_DEFINED__ */


#ifndef __EventInfoCollection_INTERFACE_DEFINED__
#define __EventInfoCollection_INTERFACE_DEFINED__

/* interface EventInfoCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_EventInfoCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("81A676A1-5624-11d5-AD15-0090275802BF")
    EventInfoCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ EventInfo **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [in] */ VARIANT typeArray,
            /* [retval][out] */ EventInfoCollection **out_pArg) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EventInfoCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            EventInfoCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            EventInfoCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            EventInfoCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            EventInfoCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            EventInfoCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            EventInfoCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            EventInfoCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            EventInfoCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ EventInfo **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            EventInfoCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            EventInfoCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            EventInfoCollection * This,
            /* [in] */ VARIANT typeArray,
            /* [retval][out] */ EventInfoCollection **out_pArg);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            EventInfoCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } EventInfoCollectionVtbl;

    interface EventInfoCollection
    {
        CONST_VTBL struct EventInfoCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define EventInfoCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define EventInfoCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define EventInfoCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define EventInfoCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define EventInfoCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define EventInfoCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define EventInfoCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define EventInfoCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define EventInfoCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define EventInfoCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define EventInfoCollection_Filter(This,typeArray,out_pArg)	\
    (This)->lpVtbl -> Filter(This,typeArray,out_pArg)

#define EventInfoCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE EventInfoCollection_get_Item_Proxy( 
    EventInfoCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ EventInfo **out_pParam);


void __RPC_STUB EventInfoCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE EventInfoCollection_get_Count_Proxy( 
    EventInfoCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB EventInfoCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE EventInfoCollection_get_NewEnum_Proxy( 
    EventInfoCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB EventInfoCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EventInfoCollection_Filter_Proxy( 
    EventInfoCollection * This,
    /* [in] */ VARIANT typeArray,
    /* [retval][out] */ EventInfoCollection **out_pArg);


void __RPC_STUB EventInfoCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE EventInfoCollection_get__NewEnum_Proxy( 
    EventInfoCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB EventInfoCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __EventInfoCollection_INTERFACE_DEFINED__ */


#ifndef __PluginCollection_INTERFACE_DEFINED__
#define __PluginCollection_INTERFACE_DEFINED__

/* interface PluginCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PluginCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3945583C-BACF-48e3-8986-39FC6883B518")
    PluginCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Plugin **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PluginCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PluginCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PluginCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PluginCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PluginCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PluginCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PluginCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PluginCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PluginCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Plugin **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PluginCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PluginCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } PluginCollectionVtbl;

    interface PluginCollection
    {
        CONST_VTBL struct PluginCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PluginCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PluginCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PluginCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PluginCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PluginCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PluginCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PluginCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PluginCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PluginCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PluginCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PluginCollection_get_Item_Proxy( 
    PluginCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Plugin **out_pParam);


void __RPC_STUB PluginCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PluginCollection_get_Count_Proxy( 
    PluginCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PluginCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PluginCollection_get__NewEnum_Proxy( 
    PluginCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PluginCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PluginCollection_INTERFACE_DEFINED__ */


#ifndef __PluginItemCollection_INTERFACE_DEFINED__
#define __PluginItemCollection_INTERFACE_DEFINED__

/* interface PluginItemCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_PluginItemCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("175B8056-A568-4bf5-96C4-091FB14AAC6F")
    PluginItemCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PluginItem **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PluginItemCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PluginItemCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PluginItemCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PluginItemCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PluginItemCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PluginItemCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PluginItemCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PluginItemCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PluginItemCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ PluginItem **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PluginItemCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PluginItemCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } PluginItemCollectionVtbl;

    interface PluginItemCollection
    {
        CONST_VTBL struct PluginItemCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PluginItemCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PluginItemCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PluginItemCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PluginItemCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PluginItemCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PluginItemCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PluginItemCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PluginItemCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define PluginItemCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PluginItemCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE PluginItemCollection_get_Item_Proxy( 
    PluginItemCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ PluginItem **out_pParam);


void __RPC_STUB PluginItemCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PluginItemCollection_get_Count_Proxy( 
    PluginItemCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PluginItemCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PluginItemCollection_get__NewEnum_Proxy( 
    PluginItemCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PluginItemCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PluginItemCollection_INTERFACE_DEFINED__ */


#ifndef __XSICollection_INTERFACE_DEFINED__
#define __XSICollection_INTERFACE_DEFINED__

/* interface XSICollection */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_XSICollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B8D67CA0-81E3-11d3-80FF-00A0C9AC19A9")
    XSICollection : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [restricted][id][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Unique( 
            /* [retval][out] */ VARIANT_BOOL *vtRetVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Unique( 
            /* [in] */ VARIANT_BOOL in_newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BSTR *__MIDL_0557) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Expand( 
            /* [retval][out] */ XSICollection **__MIDL_0558) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ VARIANT in_newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove( 
            /* [in] */ VARIANT in_newVal,
            /* [retval][out] */ VARIANT *__MIDL_0559) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddItems( 
            /* [in] */ VARIANT in_newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveItems( 
            /* [in] */ VARIANT in_newVal,
            /* [retval][out] */ VARIANT *__MIDL_0560) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveAll( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0561) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAsText( 
            /* [in] */ BSTR __MIDL_0562) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindObjectsByMarkingAndCapabilities( 
            /* [optional][in] */ VARIANT in_marking,
            /* [defaultvalue][in] */ LONG in_Caps,
            /* [retval][out] */ XSICollection **__MIDL_0563) = 0;
        
        virtual /* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE get_Items( 
            /* [optional][in] */ VARIANT key,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][hidden][id][propput] */ HRESULT STDMETHODCALLTYPE put_Items( 
            /* [optional][in] */ VARIANT key,
            /* [in] */ VARIANT newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct XSICollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            XSICollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            XSICollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            XSICollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            XSICollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            XSICollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            XSICollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            XSICollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            XSICollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            XSICollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [restricted][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            XSICollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Unique )( 
            XSICollection * This,
            /* [retval][out] */ VARIANT_BOOL *vtRetVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Unique )( 
            XSICollection * This,
            /* [in] */ VARIANT_BOOL in_newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            XSICollection * This,
            /* [retval][out] */ BSTR *__MIDL_0557);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Expand )( 
            XSICollection * This,
            /* [retval][out] */ XSICollection **__MIDL_0558);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            XSICollection * This,
            /* [in] */ VARIANT in_newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( 
            XSICollection * This,
            /* [in] */ VARIANT in_newVal,
            /* [retval][out] */ VARIANT *__MIDL_0559);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddItems )( 
            XSICollection * This,
            /* [in] */ VARIANT in_newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveItems )( 
            XSICollection * This,
            /* [in] */ VARIANT in_newVal,
            /* [retval][out] */ VARIANT *__MIDL_0560);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveAll )( 
            XSICollection * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            XSICollection * This,
            /* [retval][out] */ BSTR *__MIDL_0561);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAsText )( 
            XSICollection * This,
            /* [in] */ BSTR __MIDL_0562);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            XSICollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindObjectsByMarkingAndCapabilities )( 
            XSICollection * This,
            /* [optional][in] */ VARIANT in_marking,
            /* [defaultvalue][in] */ LONG in_Caps,
            /* [retval][out] */ XSICollection **__MIDL_0563);
        
        /* [helpstring][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            XSICollection * This);
        
        /* [helpstring][hidden][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Items )( 
            XSICollection * This,
            /* [optional][in] */ VARIANT key,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][hidden][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Items )( 
            XSICollection * This,
            /* [optional][in] */ VARIANT key,
            /* [in] */ VARIANT newVal);
        
        END_INTERFACE
    } XSICollectionVtbl;

    interface XSICollection
    {
        CONST_VTBL struct XSICollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define XSICollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define XSICollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define XSICollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define XSICollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define XSICollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define XSICollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define XSICollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define XSICollection_get_Item(This,idx,out_pVal)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pVal)

#define XSICollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define XSICollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define XSICollection_get_Unique(This,vtRetVal)	\
    (This)->lpVtbl -> get_Unique(This,vtRetVal)

#define XSICollection_put_Unique(This,in_newVal)	\
    (This)->lpVtbl -> put_Unique(This,in_newVal)

#define XSICollection_get_Type(This,__MIDL_0557)	\
    (This)->lpVtbl -> get_Type(This,__MIDL_0557)

#define XSICollection_Expand(This,__MIDL_0558)	\
    (This)->lpVtbl -> Expand(This,__MIDL_0558)

#define XSICollection_Add(This,in_newVal)	\
    (This)->lpVtbl -> Add(This,in_newVal)

#define XSICollection_Remove(This,in_newVal,__MIDL_0559)	\
    (This)->lpVtbl -> Remove(This,in_newVal,__MIDL_0559)

#define XSICollection_AddItems(This,in_newVal)	\
    (This)->lpVtbl -> AddItems(This,in_newVal)

#define XSICollection_RemoveItems(This,in_newVal,__MIDL_0560)	\
    (This)->lpVtbl -> RemoveItems(This,in_newVal,__MIDL_0560)

#define XSICollection_RemoveAll(This)	\
    (This)->lpVtbl -> RemoveAll(This)

#define XSICollection_GetAsText(This,__MIDL_0561)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0561)

#define XSICollection_SetAsText(This,__MIDL_0562)	\
    (This)->lpVtbl -> SetAsText(This,__MIDL_0562)

#define XSICollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define XSICollection_FindObjectsByMarkingAndCapabilities(This,in_marking,in_Caps,__MIDL_0563)	\
    (This)->lpVtbl -> FindObjectsByMarkingAndCapabilities(This,in_marking,in_Caps,__MIDL_0563)

#define XSICollection_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define XSICollection_get_Items(This,key,pVal)	\
    (This)->lpVtbl -> get_Items(This,key,pVal)

#define XSICollection_put_Items(This,key,newVal)	\
    (This)->lpVtbl -> put_Items(This,key,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSICollection_get_Item_Proxy( 
    XSICollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB XSICollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSICollection_get_Count_Proxy( 
    XSICollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB XSICollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [restricted][id][propget] */ HRESULT STDMETHODCALLTYPE XSICollection_get_NewEnum_Proxy( 
    XSICollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB XSICollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSICollection_get_Unique_Proxy( 
    XSICollection * This,
    /* [retval][out] */ VARIANT_BOOL *vtRetVal);


void __RPC_STUB XSICollection_get_Unique_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE XSICollection_put_Unique_Proxy( 
    XSICollection * This,
    /* [in] */ VARIANT_BOOL in_newVal);


void __RPC_STUB XSICollection_put_Unique_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSICollection_get_Type_Proxy( 
    XSICollection * This,
    /* [retval][out] */ BSTR *__MIDL_0557);


void __RPC_STUB XSICollection_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_Expand_Proxy( 
    XSICollection * This,
    /* [retval][out] */ XSICollection **__MIDL_0558);


void __RPC_STUB XSICollection_Expand_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_Add_Proxy( 
    XSICollection * This,
    /* [in] */ VARIANT in_newVal);


void __RPC_STUB XSICollection_Add_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_Remove_Proxy( 
    XSICollection * This,
    /* [in] */ VARIANT in_newVal,
    /* [retval][out] */ VARIANT *__MIDL_0559);


void __RPC_STUB XSICollection_Remove_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_AddItems_Proxy( 
    XSICollection * This,
    /* [in] */ VARIANT in_newVal);


void __RPC_STUB XSICollection_AddItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_RemoveItems_Proxy( 
    XSICollection * This,
    /* [in] */ VARIANT in_newVal,
    /* [retval][out] */ VARIANT *__MIDL_0560);


void __RPC_STUB XSICollection_RemoveItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_RemoveAll_Proxy( 
    XSICollection * This);


void __RPC_STUB XSICollection_RemoveAll_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_GetAsText_Proxy( 
    XSICollection * This,
    /* [retval][out] */ BSTR *__MIDL_0561);


void __RPC_STUB XSICollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_SetAsText_Proxy( 
    XSICollection * This,
    /* [in] */ BSTR __MIDL_0562);


void __RPC_STUB XSICollection_SetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE XSICollection_get__NewEnum_Proxy( 
    XSICollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB XSICollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSICollection_FindObjectsByMarkingAndCapabilities_Proxy( 
    XSICollection * This,
    /* [optional][in] */ VARIANT in_marking,
    /* [defaultvalue][in] */ LONG in_Caps,
    /* [retval][out] */ XSICollection **__MIDL_0563);


void __RPC_STUB XSICollection_FindObjectsByMarkingAndCapabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id] */ HRESULT STDMETHODCALLTYPE XSICollection_Clear_Proxy( 
    XSICollection * This);


void __RPC_STUB XSICollection_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id][propget] */ HRESULT STDMETHODCALLTYPE XSICollection_get_Items_Proxy( 
    XSICollection * This,
    /* [optional][in] */ VARIANT key,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB XSICollection_get_Items_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][id][propput] */ HRESULT STDMETHODCALLTYPE XSICollection_put_Items_Proxy( 
    XSICollection * This,
    /* [optional][in] */ VARIANT key,
    /* [in] */ VARIANT newVal);


void __RPC_STUB XSICollection_put_Items_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __XSICollection_INTERFACE_DEFINED__ */


#ifndef __CollectionItem_INTERFACE_DEFINED__
#define __CollectionItem_INTERFACE_DEFINED__

/* interface CollectionItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_CollectionItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6BFB5510-750F-11D3-80F8-00A0C9AC19A9")
    CollectionItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SubElements( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_SubElements( 
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PathItems( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_BranchFlag( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_BranchFlag( 
            /* [in] */ LONG newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Families( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Capabilities( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Obj( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Obj( 
            /* [in] */ LPUNKNOWN newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Singleton( 
            /* [retval][out] */ BOOL *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindAttrib( 
            BSTR __MIDL_0564,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_IsA( 
            LONG __MIDL_0565,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Selected( 
            /* [optional][in] */ LONG newVal,
            /* [retval][out] */ BOOL *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SubComponent( 
            /* [retval][out] */ SubComponent **pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SubElements2( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CollectionItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            CollectionItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            CollectionItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            CollectionItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            CollectionItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            CollectionItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            CollectionItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            CollectionItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            CollectionItem * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            CollectionItem * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubElements )( 
            CollectionItem * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SubElements )( 
            CollectionItem * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathItems )( 
            CollectionItem * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BranchFlag )( 
            CollectionItem * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BranchFlag )( 
            CollectionItem * This,
            /* [in] */ LONG newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Families )( 
            CollectionItem * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Capabilities )( 
            CollectionItem * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Obj )( 
            CollectionItem * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Obj )( 
            CollectionItem * This,
            /* [in] */ LPUNKNOWN newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            CollectionItem * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Singleton )( 
            CollectionItem * This,
            /* [retval][out] */ BOOL *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            CollectionItem * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindAttrib )( 
            CollectionItem * This,
            BSTR __MIDL_0564,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsA )( 
            CollectionItem * This,
            LONG __MIDL_0565,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Selected )( 
            CollectionItem * This,
            /* [optional][in] */ LONG newVal,
            /* [retval][out] */ BOOL *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            CollectionItem * This,
            /* [retval][out] */ SubComponent **pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubElements2 )( 
            CollectionItem * This,
            /* [retval][out] */ VARIANT *pVal);
        
        END_INTERFACE
    } CollectionItemVtbl;

    interface CollectionItem
    {
        CONST_VTBL struct CollectionItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define CollectionItem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define CollectionItem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define CollectionItem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define CollectionItem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define CollectionItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define CollectionItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define CollectionItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define CollectionItem_get_Value(This,pVal)	\
    (This)->lpVtbl -> get_Value(This,pVal)

#define CollectionItem_put_Value(This,newVal)	\
    (This)->lpVtbl -> put_Value(This,newVal)

#define CollectionItem_get_SubElements(This,pVal)	\
    (This)->lpVtbl -> get_SubElements(This,pVal)

#define CollectionItem_put_SubElements(This,newVal)	\
    (This)->lpVtbl -> put_SubElements(This,newVal)

#define CollectionItem_get_PathItems(This,pVal)	\
    (This)->lpVtbl -> get_PathItems(This,pVal)

#define CollectionItem_get_BranchFlag(This,pVal)	\
    (This)->lpVtbl -> get_BranchFlag(This,pVal)

#define CollectionItem_put_BranchFlag(This,newVal)	\
    (This)->lpVtbl -> put_BranchFlag(This,newVal)

#define CollectionItem_get_Families(This,pVal)	\
    (This)->lpVtbl -> get_Families(This,pVal)

#define CollectionItem_get_Capabilities(This,pVal)	\
    (This)->lpVtbl -> get_Capabilities(This,pVal)

#define CollectionItem_get_Obj(This,pVal)	\
    (This)->lpVtbl -> get_Obj(This,pVal)

#define CollectionItem_put_Obj(This,newVal)	\
    (This)->lpVtbl -> put_Obj(This,newVal)

#define CollectionItem_get_Type(This,pVal)	\
    (This)->lpVtbl -> get_Type(This,pVal)

#define CollectionItem_get_Singleton(This,pVal)	\
    (This)->lpVtbl -> get_Singleton(This,pVal)

#define CollectionItem_get_Name(This,pVal)	\
    (This)->lpVtbl -> get_Name(This,pVal)

#define CollectionItem_FindAttrib(This,__MIDL_0564,pVal)	\
    (This)->lpVtbl -> FindAttrib(This,__MIDL_0564,pVal)

#define CollectionItem_get_IsA(This,__MIDL_0565,pVal)	\
    (This)->lpVtbl -> get_IsA(This,__MIDL_0565,pVal)

#define CollectionItem_get_Selected(This,newVal,pVal)	\
    (This)->lpVtbl -> get_Selected(This,newVal,pVal)

#define CollectionItem_get_SubComponent(This,pVal)	\
    (This)->lpVtbl -> get_SubComponent(This,pVal)

#define CollectionItem_get_SubElements2(This,pVal)	\
    (This)->lpVtbl -> get_SubElements2(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Value_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItem_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE CollectionItem_put_Value_Proxy( 
    CollectionItem * This,
    /* [in] */ BSTR newVal);


void __RPC_STUB CollectionItem_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_SubElements_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItem_get_SubElements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE CollectionItem_put_SubElements_Proxy( 
    CollectionItem * This,
    /* [in] */ VARIANT newVal);


void __RPC_STUB CollectionItem_put_SubElements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_PathItems_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB CollectionItem_get_PathItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_BranchFlag_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB CollectionItem_get_BranchFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE CollectionItem_put_BranchFlag_Proxy( 
    CollectionItem * This,
    /* [in] */ LONG newVal);


void __RPC_STUB CollectionItem_put_BranchFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Families_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItem_get_Families_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Capabilities_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB CollectionItem_get_Capabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Obj_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB CollectionItem_get_Obj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE CollectionItem_put_Obj_Proxy( 
    CollectionItem * This,
    /* [in] */ LPUNKNOWN newVal);


void __RPC_STUB CollectionItem_put_Obj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Type_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItem_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Singleton_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ BOOL *pVal);


void __RPC_STUB CollectionItem_get_Singleton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Name_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItem_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE CollectionItem_FindAttrib_Proxy( 
    CollectionItem * This,
    BSTR __MIDL_0564,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItem_FindAttrib_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_IsA_Proxy( 
    CollectionItem * This,
    LONG __MIDL_0565,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItem_get_IsA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_Selected_Proxy( 
    CollectionItem * This,
    /* [optional][in] */ LONG newVal,
    /* [retval][out] */ BOOL *pVal);


void __RPC_STUB CollectionItem_get_Selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_SubComponent_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ SubComponent **pVal);


void __RPC_STUB CollectionItem_get_SubComponent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem_get_SubElements2_Proxy( 
    CollectionItem * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB CollectionItem_get_SubElements2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __CollectionItem_INTERFACE_DEFINED__ */


#ifndef __SubComponent_INTERFACE_DEFINED__
#define __SubComponent_INTERFACE_DEFINED__

/* interface SubComponent */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_SubComponent;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7946dc75-c6a4-4e5a-b5c9-db59e1dc0478")
    SubComponent : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ElementArray( 
            /* [retval][out] */ VARIANT *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ElementArray( 
            /* [in] */ VARIANT in_newVal) = 0;
        
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_ElementCount( 
            /* [retval][out] */ LONG *pVal) = 0;
        
        virtual /* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClusterType( 
            /* [retval][out] */ BSTR *out_pRetVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent3DObject( 
            /* [retval][out] */ X3DObject **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateCluster( 
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Cluster **out_ppCluster) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddElement( 
            /* [in] */ VARIANT in_Elem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveElement( 
            /* [in] */ VARIANT in_Elem) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ComponentCollection( 
            /* [retval][out] */ IDispatch **out_ppRetVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct SubComponentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            SubComponent * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            SubComponent * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            SubComponent * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            SubComponent * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            SubComponent * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            SubComponent * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            SubComponent * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ElementArray )( 
            SubComponent * This,
            /* [retval][out] */ VARIANT *out_pRetVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ElementArray )( 
            SubComponent * This,
            /* [in] */ VARIANT in_newVal);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ElementCount )( 
            SubComponent * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][id][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            SubComponent * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClusterType )( 
            SubComponent * This,
            /* [retval][out] */ BSTR *out_pRetVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent3DObject )( 
            SubComponent * This,
            /* [retval][out] */ X3DObject **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateCluster )( 
            SubComponent * This,
            /* [defaultvalue][in] */ BSTR in_Name,
            /* [retval][out] */ Cluster **out_ppCluster);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddElement )( 
            SubComponent * This,
            /* [in] */ VARIANT in_Elem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveElement )( 
            SubComponent * This,
            /* [in] */ VARIANT in_Elem);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ComponentCollection )( 
            SubComponent * This,
            /* [retval][out] */ IDispatch **out_ppRetVal);
        
        END_INTERFACE
    } SubComponentVtbl;

    interface SubComponent
    {
        CONST_VTBL struct SubComponentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define SubComponent_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define SubComponent_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define SubComponent_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define SubComponent_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define SubComponent_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define SubComponent_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define SubComponent_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define SubComponent_get_ElementArray(This,out_pRetVal)	\
    (This)->lpVtbl -> get_ElementArray(This,out_pRetVal)

#define SubComponent_put_ElementArray(This,in_newVal)	\
    (This)->lpVtbl -> put_ElementArray(This,in_newVal)

#define SubComponent_get_ElementCount(This,pVal)	\
    (This)->lpVtbl -> get_ElementCount(This,pVal)

#define SubComponent_get_Type(This,pVal)	\
    (This)->lpVtbl -> get_Type(This,pVal)

#define SubComponent_get_ClusterType(This,out_pRetVal)	\
    (This)->lpVtbl -> get_ClusterType(This,out_pRetVal)

#define SubComponent_get_Parent3DObject(This,out_ppObj)	\
    (This)->lpVtbl -> get_Parent3DObject(This,out_ppObj)

#define SubComponent_CreateCluster(This,in_Name,out_ppCluster)	\
    (This)->lpVtbl -> CreateCluster(This,in_Name,out_ppCluster)

#define SubComponent_AddElement(This,in_Elem)	\
    (This)->lpVtbl -> AddElement(This,in_Elem)

#define SubComponent_RemoveElement(This,in_Elem)	\
    (This)->lpVtbl -> RemoveElement(This,in_Elem)

#define SubComponent_get_ComponentCollection(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_ComponentCollection(This,out_ppRetVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SubComponent_get_ElementArray_Proxy( 
    SubComponent * This,
    /* [retval][out] */ VARIANT *out_pRetVal);


void __RPC_STUB SubComponent_get_ElementArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE SubComponent_put_ElementArray_Proxy( 
    SubComponent * This,
    /* [in] */ VARIANT in_newVal);


void __RPC_STUB SubComponent_put_ElementArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE SubComponent_get_ElementCount_Proxy( 
    SubComponent * This,
    /* [retval][out] */ LONG *pVal);


void __RPC_STUB SubComponent_get_ElementCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][hidden][propget] */ HRESULT STDMETHODCALLTYPE SubComponent_get_Type_Proxy( 
    SubComponent * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB SubComponent_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SubComponent_get_ClusterType_Proxy( 
    SubComponent * This,
    /* [retval][out] */ BSTR *out_pRetVal);


void __RPC_STUB SubComponent_get_ClusterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SubComponent_get_Parent3DObject_Proxy( 
    SubComponent * This,
    /* [retval][out] */ X3DObject **out_ppObj);


void __RPC_STUB SubComponent_get_Parent3DObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SubComponent_CreateCluster_Proxy( 
    SubComponent * This,
    /* [defaultvalue][in] */ BSTR in_Name,
    /* [retval][out] */ Cluster **out_ppCluster);


void __RPC_STUB SubComponent_CreateCluster_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SubComponent_AddElement_Proxy( 
    SubComponent * This,
    /* [in] */ VARIANT in_Elem);


void __RPC_STUB SubComponent_AddElement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SubComponent_RemoveElement_Proxy( 
    SubComponent * This,
    /* [in] */ VARIANT in_Elem);


void __RPC_STUB SubComponent_RemoveElement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE SubComponent_get_ComponentCollection_Proxy( 
    SubComponent * This,
    /* [retval][out] */ IDispatch **out_ppRetVal);


void __RPC_STUB SubComponent_get_ComponentCollection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __SubComponent_INTERFACE_DEFINED__ */


#ifndef __Image_INTERFACE_DEFINED__
#define __Image_INTERFACE_DEFINED__

/* interface Image */
/* [unique][dual][local][oleautomation][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Image;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("222f63f8-6bb5-4ef0-9245-9ae8b2b5f038")
    Image : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPixel( 
            /* [in] */ double in_dX,
            /* [in] */ double in_dY,
            /* [retval][out] */ Color **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPixelArray( 
            /* [optional][in] */ VARIANT in_saPositionArray,
            /* [retval][out] */ VARIANT *out_psaColorArray) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ResX( 
            /* [retval][out] */ LONG *out_ResX) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ResY( 
            /* [retval][out] */ LONG *out_ResY) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_NumChannels( 
            /* [retval][out] */ LONG *out_NumChannels) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ChannelSize( 
            /* [retval][out] */ LONG *out_ChannelSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImageVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Image * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Image * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Image * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Image * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Image * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Image * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Image * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPixel )( 
            Image * This,
            /* [in] */ double in_dX,
            /* [in] */ double in_dY,
            /* [retval][out] */ Color **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPixelArray )( 
            Image * This,
            /* [optional][in] */ VARIANT in_saPositionArray,
            /* [retval][out] */ VARIANT *out_psaColorArray);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ResX )( 
            Image * This,
            /* [retval][out] */ LONG *out_ResX);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ResY )( 
            Image * This,
            /* [retval][out] */ LONG *out_ResY);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumChannels )( 
            Image * This,
            /* [retval][out] */ LONG *out_NumChannels);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ChannelSize )( 
            Image * This,
            /* [retval][out] */ LONG *out_ChannelSize);
        
        END_INTERFACE
    } ImageVtbl;

    interface Image
    {
        CONST_VTBL struct ImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Image_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Image_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Image_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Image_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Image_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Image_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Image_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Image_GetPixel(This,in_dX,in_dY,out_ppRetVal)	\
    (This)->lpVtbl -> GetPixel(This,in_dX,in_dY,out_ppRetVal)

#define Image_GetPixelArray(This,in_saPositionArray,out_psaColorArray)	\
    (This)->lpVtbl -> GetPixelArray(This,in_saPositionArray,out_psaColorArray)

#define Image_get_ResX(This,out_ResX)	\
    (This)->lpVtbl -> get_ResX(This,out_ResX)

#define Image_get_ResY(This,out_ResY)	\
    (This)->lpVtbl -> get_ResY(This,out_ResY)

#define Image_get_NumChannels(This,out_NumChannels)	\
    (This)->lpVtbl -> get_NumChannels(This,out_NumChannels)

#define Image_get_ChannelSize(This,out_ChannelSize)	\
    (This)->lpVtbl -> get_ChannelSize(This,out_ChannelSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Image_GetPixel_Proxy( 
    Image * This,
    /* [in] */ double in_dX,
    /* [in] */ double in_dY,
    /* [retval][out] */ Color **out_ppRetVal);


void __RPC_STUB Image_GetPixel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Image_GetPixelArray_Proxy( 
    Image * This,
    /* [optional][in] */ VARIANT in_saPositionArray,
    /* [retval][out] */ VARIANT *out_psaColorArray);


void __RPC_STUB Image_GetPixelArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Image_get_ResX_Proxy( 
    Image * This,
    /* [retval][out] */ LONG *out_ResX);


void __RPC_STUB Image_get_ResX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Image_get_ResY_Proxy( 
    Image * This,
    /* [retval][out] */ LONG *out_ResY);


void __RPC_STUB Image_get_ResY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Image_get_NumChannels_Proxy( 
    Image * This,
    /* [retval][out] */ LONG *out_NumChannels);


void __RPC_STUB Image_get_NumChannels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Image_get_ChannelSize_Proxy( 
    Image * This,
    /* [retval][out] */ LONG *out_ChannelSize);


void __RPC_STUB Image_get_ChannelSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Image_INTERFACE_DEFINED__ */


#ifndef __XSIUIToolkit_INTERFACE_DEFINED__
#define __XSIUIToolkit_INTERFACE_DEFINED__

/* interface XSIUIToolkit */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_XSIUIToolkit;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5233c5f0-48b5-11d5-b5cf-00d0b7142d8a")
    XSIUIToolkit : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileBrowser( 
            /* [retval][out] */ FileBrowser **out_ppFileBrowser) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ProgressBar( 
            /* [retval][out] */ ProgressBar **out_ppProgressBar) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE MsgBox( 
            /* [in] */ BSTR in_Msg,
            /* [optional][in] */ LONG in_Flags,
            /* [optional][in] */ BSTR in_Caption,
            /* [retval][out] */ LONG *out_pResult) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE PickFolder( 
            /* [in] */ BSTR in_DefaultFolder,
            /* [optional][in] */ BSTR in_Title,
            /* [retval][out] */ BSTR *out_pResult) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct XSIUIToolkitVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            XSIUIToolkit * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            XSIUIToolkit * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            XSIUIToolkit * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            XSIUIToolkit * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            XSIUIToolkit * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            XSIUIToolkit * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            XSIUIToolkit * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileBrowser )( 
            XSIUIToolkit * This,
            /* [retval][out] */ FileBrowser **out_ppFileBrowser);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProgressBar )( 
            XSIUIToolkit * This,
            /* [retval][out] */ ProgressBar **out_ppProgressBar);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *MsgBox )( 
            XSIUIToolkit * This,
            /* [in] */ BSTR in_Msg,
            /* [optional][in] */ LONG in_Flags,
            /* [optional][in] */ BSTR in_Caption,
            /* [retval][out] */ LONG *out_pResult);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *PickFolder )( 
            XSIUIToolkit * This,
            /* [in] */ BSTR in_DefaultFolder,
            /* [optional][in] */ BSTR in_Title,
            /* [retval][out] */ BSTR *out_pResult);
        
        END_INTERFACE
    } XSIUIToolkitVtbl;

    interface XSIUIToolkit
    {
        CONST_VTBL struct XSIUIToolkitVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define XSIUIToolkit_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define XSIUIToolkit_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define XSIUIToolkit_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define XSIUIToolkit_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define XSIUIToolkit_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define XSIUIToolkit_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define XSIUIToolkit_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define XSIUIToolkit_get_FileBrowser(This,out_ppFileBrowser)	\
    (This)->lpVtbl -> get_FileBrowser(This,out_ppFileBrowser)

#define XSIUIToolkit_get_ProgressBar(This,out_ppProgressBar)	\
    (This)->lpVtbl -> get_ProgressBar(This,out_ppProgressBar)

#define XSIUIToolkit_MsgBox(This,in_Msg,in_Flags,in_Caption,out_pResult)	\
    (This)->lpVtbl -> MsgBox(This,in_Msg,in_Flags,in_Caption,out_pResult)

#define XSIUIToolkit_PickFolder(This,in_DefaultFolder,in_Title,out_pResult)	\
    (This)->lpVtbl -> PickFolder(This,in_DefaultFolder,in_Title,out_pResult)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIUIToolkit_get_FileBrowser_Proxy( 
    XSIUIToolkit * This,
    /* [retval][out] */ FileBrowser **out_ppFileBrowser);


void __RPC_STUB XSIUIToolkit_get_FileBrowser_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE XSIUIToolkit_get_ProgressBar_Proxy( 
    XSIUIToolkit * This,
    /* [retval][out] */ ProgressBar **out_ppProgressBar);


void __RPC_STUB XSIUIToolkit_get_ProgressBar_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIUIToolkit_MsgBox_Proxy( 
    XSIUIToolkit * This,
    /* [in] */ BSTR in_Msg,
    /* [optional][in] */ LONG in_Flags,
    /* [optional][in] */ BSTR in_Caption,
    /* [retval][out] */ LONG *out_pResult);


void __RPC_STUB XSIUIToolkit_MsgBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIUIToolkit_PickFolder_Proxy( 
    XSIUIToolkit * This,
    /* [in] */ BSTR in_DefaultFolder,
    /* [optional][in] */ BSTR in_Title,
    /* [retval][out] */ BSTR *out_pResult);


void __RPC_STUB XSIUIToolkit_PickFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __XSIUIToolkit_INTERFACE_DEFINED__ */


#ifndef __FileBrowser_INTERFACE_DEFINED__
#define __FileBrowser_INTERFACE_DEFINED__

/* interface FileBrowser */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_FileBrowser;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D037BC80-488C-11D5-B5CF-00D0B7142D8A")
    FileBrowser : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DialogTitle( 
            /* [retval][out] */ BSTR *out_pBstrTitle) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DialogTitle( 
            /* [in] */ BSTR in_bstrTitle) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileBaseName( 
            /* [retval][out] */ BSTR *out_pFileBaseName) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FileBaseName( 
            /* [in] */ BSTR in_FileBaseName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileExtension( 
            /* [retval][out] */ BSTR *out_pFileExtension) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileName( 
            /* [retval][out] */ BSTR *out_pFileName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FilePath( 
            /* [retval][out] */ BSTR *out_pFilePath) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FilePathName( 
            /* [retval][out] */ BSTR *out_pFilePathName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Filter( 
            /* [retval][out] */ BSTR *out_pFilter) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Filter( 
            /* [in] */ BSTR in_pFilter) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InitialDirectory( 
            /* [retval][out] */ BSTR *out_pInitialDirectory) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_InitialDirectory( 
            /* [in] */ BSTR in_pInitialDirectory) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowOpen( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowSave( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FileBrowserVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FileBrowser * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FileBrowser * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FileBrowser * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FileBrowser * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FileBrowser * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FileBrowser * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FileBrowser * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DialogTitle )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pBstrTitle);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DialogTitle )( 
            FileBrowser * This,
            /* [in] */ BSTR in_bstrTitle);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileBaseName )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pFileBaseName);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileBaseName )( 
            FileBrowser * This,
            /* [in] */ BSTR in_FileBaseName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileExtension )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pFileExtension);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileName )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pFileName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FilePath )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pFilePath);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FilePathName )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pFilePathName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Filter )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pFilter);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Filter )( 
            FileBrowser * This,
            /* [in] */ BSTR in_pFilter);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InitialDirectory )( 
            FileBrowser * This,
            /* [retval][out] */ BSTR *out_pInitialDirectory);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_InitialDirectory )( 
            FileBrowser * This,
            /* [in] */ BSTR in_pInitialDirectory);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowOpen )( 
            FileBrowser * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowSave )( 
            FileBrowser * This);
        
        END_INTERFACE
    } FileBrowserVtbl;

    interface FileBrowser
    {
        CONST_VTBL struct FileBrowserVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define FileBrowser_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define FileBrowser_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define FileBrowser_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define FileBrowser_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define FileBrowser_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define FileBrowser_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define FileBrowser_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define FileBrowser_get_DialogTitle(This,out_pBstrTitle)	\
    (This)->lpVtbl -> get_DialogTitle(This,out_pBstrTitle)

#define FileBrowser_put_DialogTitle(This,in_bstrTitle)	\
    (This)->lpVtbl -> put_DialogTitle(This,in_bstrTitle)

#define FileBrowser_get_FileBaseName(This,out_pFileBaseName)	\
    (This)->lpVtbl -> get_FileBaseName(This,out_pFileBaseName)

#define FileBrowser_put_FileBaseName(This,in_FileBaseName)	\
    (This)->lpVtbl -> put_FileBaseName(This,in_FileBaseName)

#define FileBrowser_get_FileExtension(This,out_pFileExtension)	\
    (This)->lpVtbl -> get_FileExtension(This,out_pFileExtension)

#define FileBrowser_get_FileName(This,out_pFileName)	\
    (This)->lpVtbl -> get_FileName(This,out_pFileName)

#define FileBrowser_get_FilePath(This,out_pFilePath)	\
    (This)->lpVtbl -> get_FilePath(This,out_pFilePath)

#define FileBrowser_get_FilePathName(This,out_pFilePathName)	\
    (This)->lpVtbl -> get_FilePathName(This,out_pFilePathName)

#define FileBrowser_get_Filter(This,out_pFilter)	\
    (This)->lpVtbl -> get_Filter(This,out_pFilter)

#define FileBrowser_put_Filter(This,in_pFilter)	\
    (This)->lpVtbl -> put_Filter(This,in_pFilter)

#define FileBrowser_get_InitialDirectory(This,out_pInitialDirectory)	\
    (This)->lpVtbl -> get_InitialDirectory(This,out_pInitialDirectory)

#define FileBrowser_put_InitialDirectory(This,in_pInitialDirectory)	\
    (This)->lpVtbl -> put_InitialDirectory(This,in_pInitialDirectory)

#define FileBrowser_ShowOpen(This)	\
    (This)->lpVtbl -> ShowOpen(This)

#define FileBrowser_ShowSave(This)	\
    (This)->lpVtbl -> ShowSave(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_DialogTitle_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pBstrTitle);


void __RPC_STUB FileBrowser_get_DialogTitle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FileBrowser_put_DialogTitle_Proxy( 
    FileBrowser * This,
    /* [in] */ BSTR in_bstrTitle);


void __RPC_STUB FileBrowser_put_DialogTitle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_FileBaseName_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pFileBaseName);


void __RPC_STUB FileBrowser_get_FileBaseName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FileBrowser_put_FileBaseName_Proxy( 
    FileBrowser * This,
    /* [in] */ BSTR in_FileBaseName);


void __RPC_STUB FileBrowser_put_FileBaseName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_FileExtension_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pFileExtension);


void __RPC_STUB FileBrowser_get_FileExtension_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_FileName_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pFileName);


void __RPC_STUB FileBrowser_get_FileName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_FilePath_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pFilePath);


void __RPC_STUB FileBrowser_get_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_FilePathName_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pFilePathName);


void __RPC_STUB FileBrowser_get_FilePathName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_Filter_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pFilter);


void __RPC_STUB FileBrowser_get_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FileBrowser_put_Filter_Proxy( 
    FileBrowser * This,
    /* [in] */ BSTR in_pFilter);


void __RPC_STUB FileBrowser_put_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FileBrowser_get_InitialDirectory_Proxy( 
    FileBrowser * This,
    /* [retval][out] */ BSTR *out_pInitialDirectory);


void __RPC_STUB FileBrowser_get_InitialDirectory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE FileBrowser_put_InitialDirectory_Proxy( 
    FileBrowser * This,
    /* [in] */ BSTR in_pInitialDirectory);


void __RPC_STUB FileBrowser_put_InitialDirectory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FileBrowser_ShowOpen_Proxy( 
    FileBrowser * This);


void __RPC_STUB FileBrowser_ShowOpen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FileBrowser_ShowSave_Proxy( 
    FileBrowser * This);


void __RPC_STUB FileBrowser_ShowSave_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FileBrowser_INTERFACE_DEFINED__ */


#ifndef __ProgressBar_INTERFACE_DEFINED__
#define __ProgressBar_INTERFACE_DEFINED__

/* interface ProgressBar */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_ProgressBar;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6EADBA70-32F0-4b06-A2E7-C6AC4DFCB9CF")
    ProgressBar : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Maximum( 
            /* [retval][out] */ INT *out_pintMax) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Maximum( 
            /* [in] */ INT in_intMax) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Minimum( 
            /* [retval][out] */ INT *out_pintMin) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Minimum( 
            /* [in] */ INT in_intMin) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Step( 
            /* [retval][out] */ INT *out_pintStep) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Step( 
            /* [in] */ INT in_intStep) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ INT *out_pintValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ INT in_intValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( 
            /* [retval][out] */ BSTR *out_pbstrCaption) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( 
            /* [in] */ BSTR in_bstrCaption) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_StatusText( 
            /* [retval][out] */ BSTR *out_pbstrStatusText) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_StatusText( 
            /* [in] */ BSTR in_bstrStatusText) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Visible( 
            /* [retval][out] */ VARIANT_BOOL *out_pblnVisible) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Visible( 
            /* [in] */ VARIANT_BOOL in_blnVisible) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Increment( 
            /* [defaultvalue][in] */ INT in_intIncrement,
            /* [retval][out] */ INT *out_pintNewValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CancelPressed( 
            /* [retval][out] */ VARIANT_BOOL *out_pblnCancel) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CancelEnabled( 
            /* [retval][out] */ VARIANT_BOOL *out_pbCancelEnabled) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CancelEnabled( 
            /* [in] */ VARIANT_BOOL in_bCancelEnabled) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ProgressBarVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ProgressBar * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ProgressBar * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ProgressBar * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ProgressBar * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ProgressBar * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ProgressBar * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ProgressBar * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Maximum )( 
            ProgressBar * This,
            /* [retval][out] */ INT *out_pintMax);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Maximum )( 
            ProgressBar * This,
            /* [in] */ INT in_intMax);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Minimum )( 
            ProgressBar * This,
            /* [retval][out] */ INT *out_pintMin);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Minimum )( 
            ProgressBar * This,
            /* [in] */ INT in_intMin);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Step )( 
            ProgressBar * This,
            /* [retval][out] */ INT *out_pintStep);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Step )( 
            ProgressBar * This,
            /* [in] */ INT in_intStep);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            ProgressBar * This,
            /* [retval][out] */ INT *out_pintValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            ProgressBar * This,
            /* [in] */ INT in_intValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( 
            ProgressBar * This,
            /* [retval][out] */ BSTR *out_pbstrCaption);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( 
            ProgressBar * This,
            /* [in] */ BSTR in_bstrCaption);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StatusText )( 
            ProgressBar * This,
            /* [retval][out] */ BSTR *out_pbstrStatusText);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_StatusText )( 
            ProgressBar * This,
            /* [in] */ BSTR in_bstrStatusText);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            ProgressBar * This,
            /* [retval][out] */ VARIANT_BOOL *out_pblnVisible);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            ProgressBar * This,
            /* [in] */ VARIANT_BOOL in_blnVisible);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Increment )( 
            ProgressBar * This,
            /* [defaultvalue][in] */ INT in_intIncrement,
            /* [retval][out] */ INT *out_pintNewValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CancelPressed )( 
            ProgressBar * This,
            /* [retval][out] */ VARIANT_BOOL *out_pblnCancel);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CancelEnabled )( 
            ProgressBar * This,
            /* [retval][out] */ VARIANT_BOOL *out_pbCancelEnabled);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CancelEnabled )( 
            ProgressBar * This,
            /* [in] */ VARIANT_BOOL in_bCancelEnabled);
        
        END_INTERFACE
    } ProgressBarVtbl;

    interface ProgressBar
    {
        CONST_VTBL struct ProgressBarVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ProgressBar_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ProgressBar_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ProgressBar_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ProgressBar_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ProgressBar_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ProgressBar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ProgressBar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ProgressBar_get_Maximum(This,out_pintMax)	\
    (This)->lpVtbl -> get_Maximum(This,out_pintMax)

#define ProgressBar_put_Maximum(This,in_intMax)	\
    (This)->lpVtbl -> put_Maximum(This,in_intMax)

#define ProgressBar_get_Minimum(This,out_pintMin)	\
    (This)->lpVtbl -> get_Minimum(This,out_pintMin)

#define ProgressBar_put_Minimum(This,in_intMin)	\
    (This)->lpVtbl -> put_Minimum(This,in_intMin)

#define ProgressBar_get_Step(This,out_pintStep)	\
    (This)->lpVtbl -> get_Step(This,out_pintStep)

#define ProgressBar_put_Step(This,in_intStep)	\
    (This)->lpVtbl -> put_Step(This,in_intStep)

#define ProgressBar_get_Value(This,out_pintValue)	\
    (This)->lpVtbl -> get_Value(This,out_pintValue)

#define ProgressBar_put_Value(This,in_intValue)	\
    (This)->lpVtbl -> put_Value(This,in_intValue)

#define ProgressBar_get_Caption(This,out_pbstrCaption)	\
    (This)->lpVtbl -> get_Caption(This,out_pbstrCaption)

#define ProgressBar_put_Caption(This,in_bstrCaption)	\
    (This)->lpVtbl -> put_Caption(This,in_bstrCaption)

#define ProgressBar_get_StatusText(This,out_pbstrStatusText)	\
    (This)->lpVtbl -> get_StatusText(This,out_pbstrStatusText)

#define ProgressBar_put_StatusText(This,in_bstrStatusText)	\
    (This)->lpVtbl -> put_StatusText(This,in_bstrStatusText)

#define ProgressBar_get_Visible(This,out_pblnVisible)	\
    (This)->lpVtbl -> get_Visible(This,out_pblnVisible)

#define ProgressBar_put_Visible(This,in_blnVisible)	\
    (This)->lpVtbl -> put_Visible(This,in_blnVisible)

#define ProgressBar_Increment(This,in_intIncrement,out_pintNewValue)	\
    (This)->lpVtbl -> Increment(This,in_intIncrement,out_pintNewValue)

#define ProgressBar_get_CancelPressed(This,out_pblnCancel)	\
    (This)->lpVtbl -> get_CancelPressed(This,out_pblnCancel)

#define ProgressBar_get_CancelEnabled(This,out_pbCancelEnabled)	\
    (This)->lpVtbl -> get_CancelEnabled(This,out_pbCancelEnabled)

#define ProgressBar_put_CancelEnabled(This,in_bCancelEnabled)	\
    (This)->lpVtbl -> put_CancelEnabled(This,in_bCancelEnabled)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_Maximum_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ INT *out_pintMax);


void __RPC_STUB ProgressBar_get_Maximum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_Maximum_Proxy( 
    ProgressBar * This,
    /* [in] */ INT in_intMax);


void __RPC_STUB ProgressBar_put_Maximum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_Minimum_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ INT *out_pintMin);


void __RPC_STUB ProgressBar_get_Minimum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_Minimum_Proxy( 
    ProgressBar * This,
    /* [in] */ INT in_intMin);


void __RPC_STUB ProgressBar_put_Minimum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_Step_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ INT *out_pintStep);


void __RPC_STUB ProgressBar_get_Step_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_Step_Proxy( 
    ProgressBar * This,
    /* [in] */ INT in_intStep);


void __RPC_STUB ProgressBar_put_Step_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_Value_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ INT *out_pintValue);


void __RPC_STUB ProgressBar_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_Value_Proxy( 
    ProgressBar * This,
    /* [in] */ INT in_intValue);


void __RPC_STUB ProgressBar_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_Caption_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ BSTR *out_pbstrCaption);


void __RPC_STUB ProgressBar_get_Caption_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_Caption_Proxy( 
    ProgressBar * This,
    /* [in] */ BSTR in_bstrCaption);


void __RPC_STUB ProgressBar_put_Caption_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_StatusText_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ BSTR *out_pbstrStatusText);


void __RPC_STUB ProgressBar_get_StatusText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_StatusText_Proxy( 
    ProgressBar * This,
    /* [in] */ BSTR in_bstrStatusText);


void __RPC_STUB ProgressBar_put_StatusText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_Visible_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ VARIANT_BOOL *out_pblnVisible);


void __RPC_STUB ProgressBar_get_Visible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_Visible_Proxy( 
    ProgressBar * This,
    /* [in] */ VARIANT_BOOL in_blnVisible);


void __RPC_STUB ProgressBar_put_Visible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ProgressBar_Increment_Proxy( 
    ProgressBar * This,
    /* [defaultvalue][in] */ INT in_intIncrement,
    /* [retval][out] */ INT *out_pintNewValue);


void __RPC_STUB ProgressBar_Increment_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_CancelPressed_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ VARIANT_BOOL *out_pblnCancel);


void __RPC_STUB ProgressBar_get_CancelPressed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ProgressBar_get_CancelEnabled_Proxy( 
    ProgressBar * This,
    /* [retval][out] */ VARIANT_BOOL *out_pbCancelEnabled);


void __RPC_STUB ProgressBar_get_CancelEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ProgressBar_put_CancelEnabled_Proxy( 
    ProgressBar * This,
    /* [in] */ VARIANT_BOOL in_bCancelEnabled);


void __RPC_STUB ProgressBar_put_CancelEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ProgressBar_INTERFACE_DEFINED__ */


#ifndef __FCurveEditor_INTERFACE_DEFINED__
#define __FCurveEditor_INTERFACE_DEFINED__

/* interface FCurveEditor */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_FCurveEditor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D148C658-46BA-4a85-B6FB-65A72758A4F8")
    FCurveEditor : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SelectedFCurves( 
            /* [retval][out] */ FCurveCollection **out_ppCurves) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SelectedKeys( 
            /* [in] */ FCurve *in_pCurve,
            /* [retval][out] */ FCurveKeyCollection **out_ppColl) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EditorAttribute( 
            /* [in] */ siFCurveEditorAttribute in_Requested,
            /* [retval][out] */ VARIANT *out_pAttibute) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct FCurveEditorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            FCurveEditor * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            FCurveEditor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            FCurveEditor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            FCurveEditor * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            FCurveEditor * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            FCurveEditor * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            FCurveEditor * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectedFCurves )( 
            FCurveEditor * This,
            /* [retval][out] */ FCurveCollection **out_ppCurves);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectedKeys )( 
            FCurveEditor * This,
            /* [in] */ FCurve *in_pCurve,
            /* [retval][out] */ FCurveKeyCollection **out_ppColl);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EditorAttribute )( 
            FCurveEditor * This,
            /* [in] */ siFCurveEditorAttribute in_Requested,
            /* [retval][out] */ VARIANT *out_pAttibute);
        
        END_INTERFACE
    } FCurveEditorVtbl;

    interface FCurveEditor
    {
        CONST_VTBL struct FCurveEditorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define FCurveEditor_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define FCurveEditor_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define FCurveEditor_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define FCurveEditor_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define FCurveEditor_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define FCurveEditor_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define FCurveEditor_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define FCurveEditor_get_SelectedFCurves(This,out_ppCurves)	\
    (This)->lpVtbl -> get_SelectedFCurves(This,out_ppCurves)

#define FCurveEditor_get_SelectedKeys(This,in_pCurve,out_ppColl)	\
    (This)->lpVtbl -> get_SelectedKeys(This,in_pCurve,out_ppColl)

#define FCurveEditor_get_EditorAttribute(This,in_Requested,out_pAttibute)	\
    (This)->lpVtbl -> get_EditorAttribute(This,in_Requested,out_pAttibute)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveEditor_get_SelectedFCurves_Proxy( 
    FCurveEditor * This,
    /* [retval][out] */ FCurveCollection **out_ppCurves);


void __RPC_STUB FCurveEditor_get_SelectedFCurves_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveEditor_get_SelectedKeys_Proxy( 
    FCurveEditor * This,
    /* [in] */ FCurve *in_pCurve,
    /* [retval][out] */ FCurveKeyCollection **out_ppColl);


void __RPC_STUB FCurveEditor_get_SelectedKeys_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE FCurveEditor_get_EditorAttribute_Proxy( 
    FCurveEditor * This,
    /* [in] */ siFCurveEditorAttribute in_Requested,
    /* [retval][out] */ VARIANT *out_pAttibute);


void __RPC_STUB FCurveEditor_get_EditorAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __FCurveEditor_INTERFACE_DEFINED__ */


#ifndef __PPGLayout_INTERFACE_DEFINED__
#define __PPGLayout_INTERFACE_DEFINED__

/* interface PPGLayout */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PPGLayout;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0679629C-037F-4e68-9E50-FC3202E0B191")
    PPGLayout : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddItem( 
            /* [in] */ BSTR in_ParamName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [optional][in] */ BSTR in_opt_UIType,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddString( 
            /* [in] */ BSTR in_ParamName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [optional][in] */ VARIANT_BOOL in_opt_Multiline,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddEnumControl( 
            /* [in] */ BSTR in_ParamName,
            /* [in] */ VARIANT in_UIItemsArray,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [defaultvalue][in] */ BSTR in_opt_UIType,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddColor( 
            /* [in] */ BSTR in_RedComponentParamName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [optional][in] */ VARIANT_BOOL in_opt_Alpha,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddButton( 
            /* [in] */ BSTR in_ScriptName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddFCurve( 
            /* [in] */ BSTR in_ScriptName,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddRow( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EndRow( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddGroup( 
            /* [optional][in] */ BSTR in_opt_Label,
            /* [defaultvalue][in] */ VARIANT_BOOL in_opt_ShowFrame,
            /* [optional][in] */ LONG in_opt_width,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EndGroup( 
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddTab( 
            /* [in] */ BSTR in_Label,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Logic( 
            /* [retval][out] */ BSTR *out_strLogic) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Logic( 
            /* [in] */ BSTR in_strLogic) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Language( 
            /* [retval][out] */ BSTR *out_strLogicLang) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Language( 
            /* [in] */ BSTR in_strLogicLang) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAttribute( 
            /* [in] */ BSTR in_AttributeName,
            /* [retval][out] */ VARIANT *out_pAttribute) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAttribute( 
            /* [in] */ BSTR in_AttributeName,
            /* [in] */ VARIANT in_AttributeValue) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [in] */ VARIANT in_Key,
            /* [retval][out] */ PPGItem **pVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Delete( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddStaticText( 
            /* [in] */ BSTR in_Text,
            /* [defaultvalue][in] */ LONG in_opt_Width,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddSpacer( 
            /* [defaultvalue][in] */ LONG in_opt_Width,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PPGLayoutVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PPGLayout * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PPGLayout * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PPGLayout * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PPGLayout * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PPGLayout * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PPGLayout * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PPGLayout * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddItem )( 
            PPGLayout * This,
            /* [in] */ BSTR in_ParamName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [optional][in] */ BSTR in_opt_UIType,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddString )( 
            PPGLayout * This,
            /* [in] */ BSTR in_ParamName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [optional][in] */ VARIANT_BOOL in_opt_Multiline,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddEnumControl )( 
            PPGLayout * This,
            /* [in] */ BSTR in_ParamName,
            /* [in] */ VARIANT in_UIItemsArray,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [defaultvalue][in] */ BSTR in_opt_UIType,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddColor )( 
            PPGLayout * This,
            /* [in] */ BSTR in_RedComponentParamName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [optional][in] */ VARIANT_BOOL in_opt_Alpha,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddButton )( 
            PPGLayout * This,
            /* [in] */ BSTR in_ScriptName,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddFCurve )( 
            PPGLayout * This,
            /* [in] */ BSTR in_ScriptName,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddRow )( 
            PPGLayout * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EndRow )( 
            PPGLayout * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddGroup )( 
            PPGLayout * This,
            /* [optional][in] */ BSTR in_opt_Label,
            /* [defaultvalue][in] */ VARIANT_BOOL in_opt_ShowFrame,
            /* [optional][in] */ LONG in_opt_width,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EndGroup )( 
            PPGLayout * This,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddTab )( 
            PPGLayout * This,
            /* [in] */ BSTR in_Label,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Logic )( 
            PPGLayout * This,
            /* [retval][out] */ BSTR *out_strLogic);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Logic )( 
            PPGLayout * This,
            /* [in] */ BSTR in_strLogic);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Language )( 
            PPGLayout * This,
            /* [retval][out] */ BSTR *out_strLogicLang);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Language )( 
            PPGLayout * This,
            /* [in] */ BSTR in_strLogicLang);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            PPGLayout * This,
            /* [in] */ BSTR in_AttributeName,
            /* [retval][out] */ VARIANT *out_pAttribute);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
            PPGLayout * This,
            /* [in] */ BSTR in_AttributeName,
            /* [in] */ VARIANT in_AttributeValue);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            PPGLayout * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            PPGLayout * This,
            /* [in] */ VARIANT in_Key,
            /* [retval][out] */ PPGItem **pVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            PPGLayout * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            PPGLayout * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            PPGLayout * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddStaticText )( 
            PPGLayout * This,
            /* [in] */ BSTR in_Text,
            /* [defaultvalue][in] */ LONG in_opt_Width,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddSpacer )( 
            PPGLayout * This,
            /* [defaultvalue][in] */ LONG in_opt_Width,
            /* [defaultvalue][in] */ LONG in_opt_Height,
            /* [retval][out] */ PPGItem **out_ppNewItem);
        
        END_INTERFACE
    } PPGLayoutVtbl;

    interface PPGLayout
    {
        CONST_VTBL struct PPGLayoutVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PPGLayout_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PPGLayout_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PPGLayout_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PPGLayout_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PPGLayout_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PPGLayout_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PPGLayout_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PPGLayout_AddItem(This,in_ParamName,in_opt_Label,in_opt_UIType,out_ppNewItem)	\
    (This)->lpVtbl -> AddItem(This,in_ParamName,in_opt_Label,in_opt_UIType,out_ppNewItem)

#define PPGLayout_AddString(This,in_ParamName,in_opt_Label,in_opt_Multiline,in_opt_Height,out_ppNewItem)	\
    (This)->lpVtbl -> AddString(This,in_ParamName,in_opt_Label,in_opt_Multiline,in_opt_Height,out_ppNewItem)

#define PPGLayout_AddEnumControl(This,in_ParamName,in_UIItemsArray,in_opt_Label,in_opt_UIType,out_ppNewItem)	\
    (This)->lpVtbl -> AddEnumControl(This,in_ParamName,in_UIItemsArray,in_opt_Label,in_opt_UIType,out_ppNewItem)

#define PPGLayout_AddColor(This,in_RedComponentParamName,in_opt_Label,in_opt_Alpha,out_ppNewItem)	\
    (This)->lpVtbl -> AddColor(This,in_RedComponentParamName,in_opt_Label,in_opt_Alpha,out_ppNewItem)

#define PPGLayout_AddButton(This,in_ScriptName,in_opt_Label,out_ppNewItem)	\
    (This)->lpVtbl -> AddButton(This,in_ScriptName,in_opt_Label,out_ppNewItem)

#define PPGLayout_AddFCurve(This,in_ScriptName,in_opt_Height,out_ppNewItem)	\
    (This)->lpVtbl -> AddFCurve(This,in_ScriptName,in_opt_Height,out_ppNewItem)

#define PPGLayout_AddRow(This)	\
    (This)->lpVtbl -> AddRow(This)

#define PPGLayout_EndRow(This)	\
    (This)->lpVtbl -> EndRow(This)

#define PPGLayout_AddGroup(This,in_opt_Label,in_opt_ShowFrame,in_opt_width,out_ppNewItem)	\
    (This)->lpVtbl -> AddGroup(This,in_opt_Label,in_opt_ShowFrame,in_opt_width,out_ppNewItem)

#define PPGLayout_EndGroup(This,out_ppNewItem)	\
    (This)->lpVtbl -> EndGroup(This,out_ppNewItem)

#define PPGLayout_AddTab(This,in_Label,out_ppNewItem)	\
    (This)->lpVtbl -> AddTab(This,in_Label,out_ppNewItem)

#define PPGLayout_get_Logic(This,out_strLogic)	\
    (This)->lpVtbl -> get_Logic(This,out_strLogic)

#define PPGLayout_put_Logic(This,in_strLogic)	\
    (This)->lpVtbl -> put_Logic(This,in_strLogic)

#define PPGLayout_get_Language(This,out_strLogicLang)	\
    (This)->lpVtbl -> get_Language(This,out_strLogicLang)

#define PPGLayout_put_Language(This,in_strLogicLang)	\
    (This)->lpVtbl -> put_Language(This,in_strLogicLang)

#define PPGLayout_GetAttribute(This,in_AttributeName,out_pAttribute)	\
    (This)->lpVtbl -> GetAttribute(This,in_AttributeName,out_pAttribute)

#define PPGLayout_SetAttribute(This,in_AttributeName,in_AttributeValue)	\
    (This)->lpVtbl -> SetAttribute(This,in_AttributeName,in_AttributeValue)

#define PPGLayout_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define PPGLayout_get_Item(This,in_Key,pVal)	\
    (This)->lpVtbl -> get_Item(This,in_Key,pVal)

#define PPGLayout_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define PPGLayout_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define PPGLayout_Delete(This)	\
    (This)->lpVtbl -> Delete(This)

#define PPGLayout_AddStaticText(This,in_Text,in_opt_Width,in_opt_Height,out_ppNewItem)	\
    (This)->lpVtbl -> AddStaticText(This,in_Text,in_opt_Width,in_opt_Height,out_ppNewItem)

#define PPGLayout_AddSpacer(This,in_opt_Width,in_opt_Height,out_ppNewItem)	\
    (This)->lpVtbl -> AddSpacer(This,in_opt_Width,in_opt_Height,out_ppNewItem)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddItem_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_ParamName,
    /* [optional][in] */ BSTR in_opt_Label,
    /* [optional][in] */ BSTR in_opt_UIType,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddString_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_ParamName,
    /* [optional][in] */ BSTR in_opt_Label,
    /* [optional][in] */ VARIANT_BOOL in_opt_Multiline,
    /* [defaultvalue][in] */ LONG in_opt_Height,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddString_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddEnumControl_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_ParamName,
    /* [in] */ VARIANT in_UIItemsArray,
    /* [optional][in] */ BSTR in_opt_Label,
    /* [defaultvalue][in] */ BSTR in_opt_UIType,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddEnumControl_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddColor_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_RedComponentParamName,
    /* [optional][in] */ BSTR in_opt_Label,
    /* [optional][in] */ VARIANT_BOOL in_opt_Alpha,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddButton_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_ScriptName,
    /* [optional][in] */ BSTR in_opt_Label,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddButton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddFCurve_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_ScriptName,
    /* [defaultvalue][in] */ LONG in_opt_Height,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddFCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddRow_Proxy( 
    PPGLayout * This);


void __RPC_STUB PPGLayout_AddRow_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_EndRow_Proxy( 
    PPGLayout * This);


void __RPC_STUB PPGLayout_EndRow_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddGroup_Proxy( 
    PPGLayout * This,
    /* [optional][in] */ BSTR in_opt_Label,
    /* [defaultvalue][in] */ VARIANT_BOOL in_opt_ShowFrame,
    /* [optional][in] */ LONG in_opt_width,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_EndGroup_Proxy( 
    PPGLayout * This,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_EndGroup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddTab_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_Label,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddTab_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PPGLayout_get_Logic_Proxy( 
    PPGLayout * This,
    /* [retval][out] */ BSTR *out_strLogic);


void __RPC_STUB PPGLayout_get_Logic_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE PPGLayout_put_Logic_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_strLogic);


void __RPC_STUB PPGLayout_put_Logic_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PPGLayout_get_Language_Proxy( 
    PPGLayout * This,
    /* [retval][out] */ BSTR *out_strLogicLang);


void __RPC_STUB PPGLayout_get_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE PPGLayout_put_Language_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_strLogicLang);


void __RPC_STUB PPGLayout_put_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PPGLayout_GetAttribute_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_AttributeName,
    /* [retval][out] */ VARIANT *out_pAttribute);


void __RPC_STUB PPGLayout_GetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PPGLayout_SetAttribute_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_AttributeName,
    /* [in] */ VARIANT in_AttributeValue);


void __RPC_STUB PPGLayout_SetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PPGLayout_get_Count_Proxy( 
    PPGLayout * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB PPGLayout_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE PPGLayout_get_Item_Proxy( 
    PPGLayout * This,
    /* [in] */ VARIANT in_Key,
    /* [retval][out] */ PPGItem **pVal);


void __RPC_STUB PPGLayout_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE PPGLayout_get__NewEnum_Proxy( 
    PPGLayout * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB PPGLayout_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_Clear_Proxy( 
    PPGLayout * This);


void __RPC_STUB PPGLayout_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_Delete_Proxy( 
    PPGLayout * This);


void __RPC_STUB PPGLayout_Delete_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddStaticText_Proxy( 
    PPGLayout * This,
    /* [in] */ BSTR in_Text,
    /* [defaultvalue][in] */ LONG in_opt_Width,
    /* [defaultvalue][in] */ LONG in_opt_Height,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddStaticText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE PPGLayout_AddSpacer_Proxy( 
    PPGLayout * This,
    /* [defaultvalue][in] */ LONG in_opt_Width,
    /* [defaultvalue][in] */ LONG in_opt_Height,
    /* [retval][out] */ PPGItem **out_ppNewItem);


void __RPC_STUB PPGLayout_AddSpacer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PPGLayout_INTERFACE_DEFINED__ */


#ifndef __PPGItem_INTERFACE_DEFINED__
#define __PPGItem_INTERFACE_DEFINED__

/* interface PPGItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PPGItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0641BC97-68DD-4668-A93F-8D9C6CB90F47")
    PPGItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *out_Name) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR in_Name) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Label( 
            /* [retval][out] */ BSTR *out_Label) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Label( 
            /* [in] */ BSTR in_Label) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BSTR *out_Type) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ BSTR in_Type) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UIItems( 
            /* [retval][out] */ VARIANT *out_pUIItemsArray) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UIItems( 
            /* [in] */ VARIANT in_UIItemsArray) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_WidthPercentage( 
            /* [retval][out] */ LONG *out_Percentage) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_WidthPercentage( 
            /* [in] */ LONG in_Percentage) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LabelPercentage( 
            /* [retval][out] */ LONG *out_Percentage) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LabelPercentage( 
            /* [in] */ LONG in_Percentage) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LabelMinPixels( 
            /* [retval][out] */ LONG *out_MinPixels) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LabelMinPixels( 
            /* [in] */ LONG in_MinPixels) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAttribute( 
            /* [in] */ BSTR in_AttributeName,
            /* [retval][out] */ VARIANT *out_pAttribute) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAttribute( 
            /* [in] */ BSTR in_AttributeName,
            /* [in] */ VARIANT in_AttributeValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PPGItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PPGItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PPGItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PPGItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PPGItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PPGItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PPGItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PPGItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            PPGItem * This,
            /* [retval][out] */ BSTR *out_Name);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            PPGItem * This,
            /* [in] */ BSTR in_Name);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Label )( 
            PPGItem * This,
            /* [retval][out] */ BSTR *out_Label);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Label )( 
            PPGItem * This,
            /* [in] */ BSTR in_Label);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            PPGItem * This,
            /* [retval][out] */ BSTR *out_Type);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            PPGItem * This,
            /* [in] */ BSTR in_Type);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UIItems )( 
            PPGItem * This,
            /* [retval][out] */ VARIANT *out_pUIItemsArray);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UIItems )( 
            PPGItem * This,
            /* [in] */ VARIANT in_UIItemsArray);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WidthPercentage )( 
            PPGItem * This,
            /* [retval][out] */ LONG *out_Percentage);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_WidthPercentage )( 
            PPGItem * This,
            /* [in] */ LONG in_Percentage);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LabelPercentage )( 
            PPGItem * This,
            /* [retval][out] */ LONG *out_Percentage);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LabelPercentage )( 
            PPGItem * This,
            /* [in] */ LONG in_Percentage);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LabelMinPixels )( 
            PPGItem * This,
            /* [retval][out] */ LONG *out_MinPixels);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LabelMinPixels )( 
            PPGItem * This,
            /* [in] */ LONG in_MinPixels);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            PPGItem * This,
            /* [in] */ BSTR in_AttributeName,
            /* [retval][out] */ VARIANT *out_pAttribute);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
            PPGItem * This,
            /* [in] */ BSTR in_AttributeName,
            /* [in] */ VARIANT in_AttributeValue);
        
        END_INTERFACE
    } PPGItemVtbl;

    interface PPGItem
    {
        CONST_VTBL struct PPGItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PPGItem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PPGItem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PPGItem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PPGItem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PPGItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PPGItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PPGItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PPGItem_get_Name(This,out_Name)	\
    (This)->lpVtbl -> get_Name(This,out_Name)

#define PPGItem_put_Name(This,in_Name)	\
    (This)->lpVtbl -> put_Name(This,in_Name)

#define PPGItem_get_Label(This,out_Label)	\
    (This)->lpVtbl -> get_Label(This,out_Label)

#define PPGItem_put_Label(This,in_Label)	\
    (This)->lpVtbl -> put_Label(This,in_Label)

#define PPGItem_get_Type(This,out_Type)	\
    (This)->lpVtbl -> get_Type(This,out_Type)

#define PPGItem_put_Type(This,in_Type)	\
    (This)->lpVtbl -> put_Type(This,in_Type)

#define PPGItem_get_UIItems(This,out_pUIItemsArray)	\
    (This)->lpVtbl -> get_UIItems(This,out_pUIItemsArray)

#define PPGItem_put_UIItems(This,in_UIItemsArray)	\
    (This)->lpVtbl -> put_UIItems(This,in_UIItemsArray)

#define PPGItem_get_WidthPercentage(This,out_Percentage)	\
    (This)->lpVtbl -> get_WidthPercentage(This,out_Percentage)

#define PPGItem_put_WidthPercentage(This,in_Percentage)	\
    (This)->lpVtbl -> put_WidthPercentage(This,in_Percentage)

#define PPGItem_get_LabelPercentage(This,out_Percentage)	\
    (This)->lpVtbl -> get_LabelPercentage(This,out_Percentage)

#define PPGItem_put_LabelPercentage(This,in_Percentage)	\
    (This)->lpVtbl -> put_LabelPercentage(This,in_Percentage)

#define PPGItem_get_LabelMinPixels(This,out_MinPixels)	\
    (This)->lpVtbl -> get_LabelMinPixels(This,out_MinPixels)

#define PPGItem_put_LabelMinPixels(This,in_MinPixels)	\
    (This)->lpVtbl -> put_LabelMinPixels(This,in_MinPixels)

#define PPGItem_GetAttribute(This,in_AttributeName,out_pAttribute)	\
    (This)->lpVtbl -> GetAttribute(This,in_AttributeName,out_pAttribute)

#define PPGItem_SetAttribute(This,in_AttributeName,in_AttributeValue)	\
    (This)->lpVtbl -> SetAttribute(This,in_AttributeName,in_AttributeValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PPGItem_get_Name_Proxy( 
    PPGItem * This,
    /* [retval][out] */ BSTR *out_Name);


void __RPC_STUB PPGItem_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PPGItem_put_Name_Proxy( 
    PPGItem * This,
    /* [in] */ BSTR in_Name);


void __RPC_STUB PPGItem_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PPGItem_get_Label_Proxy( 
    PPGItem * This,
    /* [retval][out] */ BSTR *out_Label);


void __RPC_STUB PPGItem_get_Label_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PPGItem_put_Label_Proxy( 
    PPGItem * This,
    /* [in] */ BSTR in_Label);


void __RPC_STUB PPGItem_put_Label_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PPGItem_get_Type_Proxy( 
    PPGItem * This,
    /* [retval][out] */ BSTR *out_Type);


void __RPC_STUB PPGItem_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PPGItem_put_Type_Proxy( 
    PPGItem * This,
    /* [in] */ BSTR in_Type);


void __RPC_STUB PPGItem_put_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PPGItem_get_UIItems_Proxy( 
    PPGItem * This,
    /* [retval][out] */ VARIANT *out_pUIItemsArray);


void __RPC_STUB PPGItem_get_UIItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PPGItem_put_UIItems_Proxy( 
    PPGItem * This,
    /* [in] */ VARIANT in_UIItemsArray);


void __RPC_STUB PPGItem_put_UIItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PPGItem_get_WidthPercentage_Proxy( 
    PPGItem * This,
    /* [retval][out] */ LONG *out_Percentage);


void __RPC_STUB PPGItem_get_WidthPercentage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PPGItem_put_WidthPercentage_Proxy( 
    PPGItem * This,
    /* [in] */ LONG in_Percentage);


void __RPC_STUB PPGItem_put_WidthPercentage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PPGItem_get_LabelPercentage_Proxy( 
    PPGItem * This,
    /* [retval][out] */ LONG *out_Percentage);


void __RPC_STUB PPGItem_get_LabelPercentage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PPGItem_put_LabelPercentage_Proxy( 
    PPGItem * This,
    /* [in] */ LONG in_Percentage);


void __RPC_STUB PPGItem_put_LabelPercentage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PPGItem_get_LabelMinPixels_Proxy( 
    PPGItem * This,
    /* [retval][out] */ LONG *out_MinPixels);


void __RPC_STUB PPGItem_get_LabelMinPixels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PPGItem_put_LabelMinPixels_Proxy( 
    PPGItem * This,
    /* [in] */ LONG in_MinPixels);


void __RPC_STUB PPGItem_put_LabelMinPixels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PPGItem_GetAttribute_Proxy( 
    PPGItem * This,
    /* [in] */ BSTR in_AttributeName,
    /* [retval][out] */ VARIANT *out_pAttribute);


void __RPC_STUB PPGItem_GetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PPGItem_SetAttribute_Proxy( 
    PPGItem * This,
    /* [in] */ BSTR in_AttributeName,
    /* [in] */ VARIANT in_AttributeValue);


void __RPC_STUB PPGItem_SetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PPGItem_INTERFACE_DEFINED__ */


#ifndef __Context_INTERFACE_DEFINED__
#define __Context_INTERFACE_DEFINED__

/* interface Context */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Context;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("49D416DF-120D-4989-8BEE-9814BB20DE17")
    Context : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ IDispatch **out_Source) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_UserData( 
            /* [retval][out] */ VARIANT *out_pvUserData) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_UserData( 
            /* [in] */ VARIANT in_vUserData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAttribute( 
            /* [in] */ BSTR in_AttributeName,
            /* [retval][out] */ VARIANT *out_pAttribute) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAttribute( 
            /* [in] */ BSTR in_AttributeName,
            /* [in] */ VARIANT in_AttributeValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ContextVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Context * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Context * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Context * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Context * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Context * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Context * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Context * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            Context * This,
            /* [retval][out] */ IDispatch **out_Source);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UserData )( 
            Context * This,
            /* [retval][out] */ VARIANT *out_pvUserData);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UserData )( 
            Context * This,
            /* [in] */ VARIANT in_vUserData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            Context * This,
            /* [in] */ BSTR in_AttributeName,
            /* [retval][out] */ VARIANT *out_pAttribute);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
            Context * This,
            /* [in] */ BSTR in_AttributeName,
            /* [in] */ VARIANT in_AttributeValue);
        
        END_INTERFACE
    } ContextVtbl;

    interface Context
    {
        CONST_VTBL struct ContextVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Context_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Context_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Context_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Context_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Context_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Context_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Context_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Context_get_Source(This,out_Source)	\
    (This)->lpVtbl -> get_Source(This,out_Source)

#define Context_get_UserData(This,out_pvUserData)	\
    (This)->lpVtbl -> get_UserData(This,out_pvUserData)

#define Context_put_UserData(This,in_vUserData)	\
    (This)->lpVtbl -> put_UserData(This,in_vUserData)

#define Context_GetAttribute(This,in_AttributeName,out_pAttribute)	\
    (This)->lpVtbl -> GetAttribute(This,in_AttributeName,out_pAttribute)

#define Context_SetAttribute(This,in_AttributeName,in_AttributeValue)	\
    (This)->lpVtbl -> SetAttribute(This,in_AttributeName,in_AttributeValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE Context_get_Source_Proxy( 
    Context * This,
    /* [retval][out] */ IDispatch **out_Source);


void __RPC_STUB Context_get_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE Context_get_UserData_Proxy( 
    Context * This,
    /* [retval][out] */ VARIANT *out_pvUserData);


void __RPC_STUB Context_get_UserData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE Context_put_UserData_Proxy( 
    Context * This,
    /* [in] */ VARIANT in_vUserData);


void __RPC_STUB Context_put_UserData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Context_GetAttribute_Proxy( 
    Context * This,
    /* [in] */ BSTR in_AttributeName,
    /* [retval][out] */ VARIANT *out_pAttribute);


void __RPC_STUB Context_GetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Context_SetAttribute_Proxy( 
    Context * This,
    /* [in] */ BSTR in_AttributeName,
    /* [in] */ VARIANT in_AttributeValue);


void __RPC_STUB Context_SetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Context_INTERFACE_DEFINED__ */


#ifndef __XSIFactory_INTERFACE_DEFINED__
#define __XSIFactory_INTERFACE_DEFINED__

/* interface XSIFactory */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_XSIFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("984B17FB-F6FA-4418-A84F-2D178C343793")
    XSIFactory : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateActiveXObject( 
            /* [in] */ BSTR name,
            /* [retval][out] */ IDispatch **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateObject( 
            /* [in] */ BSTR name,
            /* [retval][out] */ IDispatch **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateObjectFromPreset( 
            /* [in] */ BSTR name,
            /* [defaultvalue][in] */ BSTR family,
            /* [retval][out] */ SIObject **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateObjectFromFile( 
            /* [in] */ BSTR filename,
            /* [retval][out] */ SIObject **out_ppObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateScriptedOp( 
            /* [defaultvalue][in] */ BSTR name,
            /* [defaultvalue][in] */ BSTR scriptcode,
            /* [defaultvalue][in] */ BSTR language,
            /* [retval][out] */ CustomOperator **out_ppCOP) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateScriptedOpFromFile( 
            /* [defaultvalue][in] */ BSTR name,
            /* [defaultvalue][in] */ BSTR filename,
            /* [defaultvalue][in] */ BSTR language,
            /* [retval][out] */ CustomOperator **out_ppCOP) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateParamDef( 
            /* [in] */ BSTR in_scriptname,
            /* [in] */ siVariantType in_type,
            /* [defaultvalue][in] */ siParamClassification in_classification,
            /* [defaultvalue][in] */ int in_capabilities,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [defaultvalue][in] */ BSTR in_description,
            /* [optional][in] */ VARIANT in_default,
            /* [optional][in] */ VARIANT in_min,
            /* [optional][in] */ VARIANT in_max,
            /* [optional][in] */ VARIANT in_suggestedmin,
            /* [optional][in] */ VARIANT in_suggestedmax,
            /* [retval][out] */ ParamDef **out_ppPDef) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateParamDef2( 
            /* [in] */ BSTR in_scriptname,
            /* [in] */ siVariantType in_type,
            /* [optional][in] */ VARIANT in_default,
            /* [optional][in] */ VARIANT in_min,
            /* [optional][in] */ VARIANT in_max,
            /* [retval][out] */ ParamDef **out_ppPDef) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateGridData( 
            /* [retval][out] */ IDispatch **out_ppObject) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateGuid( 
            /* [retval][out] */ BSTR *out_ppGuid) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateFCurveParamDef( 
            /* [in] */ BSTR in_scriptname,
            /* [retval][out] */ ParamDef **out_ppPDef) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateGridParamDef( 
            /* [in] */ BSTR in_scriptname,
            /* [retval][out] */ ParamDef **out_ppPDef) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct XSIFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            XSIFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            XSIFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            XSIFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            XSIFactory * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            XSIFactory * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            XSIFactory * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            XSIFactory * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateActiveXObject )( 
            XSIFactory * This,
            /* [in] */ BSTR name,
            /* [retval][out] */ IDispatch **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateObject )( 
            XSIFactory * This,
            /* [in] */ BSTR name,
            /* [retval][out] */ IDispatch **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateObjectFromPreset )( 
            XSIFactory * This,
            /* [in] */ BSTR name,
            /* [defaultvalue][in] */ BSTR family,
            /* [retval][out] */ SIObject **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateObjectFromFile )( 
            XSIFactory * This,
            /* [in] */ BSTR filename,
            /* [retval][out] */ SIObject **out_ppObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateScriptedOp )( 
            XSIFactory * This,
            /* [defaultvalue][in] */ BSTR name,
            /* [defaultvalue][in] */ BSTR scriptcode,
            /* [defaultvalue][in] */ BSTR language,
            /* [retval][out] */ CustomOperator **out_ppCOP);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateScriptedOpFromFile )( 
            XSIFactory * This,
            /* [defaultvalue][in] */ BSTR name,
            /* [defaultvalue][in] */ BSTR filename,
            /* [defaultvalue][in] */ BSTR language,
            /* [retval][out] */ CustomOperator **out_ppCOP);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateParamDef )( 
            XSIFactory * This,
            /* [in] */ BSTR in_scriptname,
            /* [in] */ siVariantType in_type,
            /* [defaultvalue][in] */ siParamClassification in_classification,
            /* [defaultvalue][in] */ int in_capabilities,
            /* [defaultvalue][in] */ BSTR in_name,
            /* [defaultvalue][in] */ BSTR in_description,
            /* [optional][in] */ VARIANT in_default,
            /* [optional][in] */ VARIANT in_min,
            /* [optional][in] */ VARIANT in_max,
            /* [optional][in] */ VARIANT in_suggestedmin,
            /* [optional][in] */ VARIANT in_suggestedmax,
            /* [retval][out] */ ParamDef **out_ppPDef);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateParamDef2 )( 
            XSIFactory * This,
            /* [in] */ BSTR in_scriptname,
            /* [in] */ siVariantType in_type,
            /* [optional][in] */ VARIANT in_default,
            /* [optional][in] */ VARIANT in_min,
            /* [optional][in] */ VARIANT in_max,
            /* [retval][out] */ ParamDef **out_ppPDef);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateGridData )( 
            XSIFactory * This,
            /* [retval][out] */ IDispatch **out_ppObject);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateGuid )( 
            XSIFactory * This,
            /* [retval][out] */ BSTR *out_ppGuid);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateFCurveParamDef )( 
            XSIFactory * This,
            /* [in] */ BSTR in_scriptname,
            /* [retval][out] */ ParamDef **out_ppPDef);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateGridParamDef )( 
            XSIFactory * This,
            /* [in] */ BSTR in_scriptname,
            /* [retval][out] */ ParamDef **out_ppPDef);
        
        END_INTERFACE
    } XSIFactoryVtbl;

    interface XSIFactory
    {
        CONST_VTBL struct XSIFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define XSIFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define XSIFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define XSIFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define XSIFactory_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define XSIFactory_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define XSIFactory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define XSIFactory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define XSIFactory_CreateActiveXObject(This,name,out_ppObj)	\
    (This)->lpVtbl -> CreateActiveXObject(This,name,out_ppObj)

#define XSIFactory_CreateObject(This,name,out_ppObj)	\
    (This)->lpVtbl -> CreateObject(This,name,out_ppObj)

#define XSIFactory_CreateObjectFromPreset(This,name,family,out_ppObj)	\
    (This)->lpVtbl -> CreateObjectFromPreset(This,name,family,out_ppObj)

#define XSIFactory_CreateObjectFromFile(This,filename,out_ppObj)	\
    (This)->lpVtbl -> CreateObjectFromFile(This,filename,out_ppObj)

#define XSIFactory_CreateScriptedOp(This,name,scriptcode,language,out_ppCOP)	\
    (This)->lpVtbl -> CreateScriptedOp(This,name,scriptcode,language,out_ppCOP)

#define XSIFactory_CreateScriptedOpFromFile(This,name,filename,language,out_ppCOP)	\
    (This)->lpVtbl -> CreateScriptedOpFromFile(This,name,filename,language,out_ppCOP)

#define XSIFactory_CreateParamDef(This,in_scriptname,in_type,in_classification,in_capabilities,in_name,in_description,in_default,in_min,in_max,in_suggestedmin,in_suggestedmax,out_ppPDef)	\
    (This)->lpVtbl -> CreateParamDef(This,in_scriptname,in_type,in_classification,in_capabilities,in_name,in_description,in_default,in_min,in_max,in_suggestedmin,in_suggestedmax,out_ppPDef)

#define XSIFactory_CreateParamDef2(This,in_scriptname,in_type,in_default,in_min,in_max,out_ppPDef)	\
    (This)->lpVtbl -> CreateParamDef2(This,in_scriptname,in_type,in_default,in_min,in_max,out_ppPDef)

#define XSIFactory_CreateGridData(This,out_ppObject)	\
    (This)->lpVtbl -> CreateGridData(This,out_ppObject)

#define XSIFactory_CreateGuid(This,out_ppGuid)	\
    (This)->lpVtbl -> CreateGuid(This,out_ppGuid)

#define XSIFactory_CreateFCurveParamDef(This,in_scriptname,out_ppPDef)	\
    (This)->lpVtbl -> CreateFCurveParamDef(This,in_scriptname,out_ppPDef)

#define XSIFactory_CreateGridParamDef(This,in_scriptname,out_ppPDef)	\
    (This)->lpVtbl -> CreateGridParamDef(This,in_scriptname,out_ppPDef)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateActiveXObject_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR name,
    /* [retval][out] */ IDispatch **out_ppObj);


void __RPC_STUB XSIFactory_CreateActiveXObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateObject_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR name,
    /* [retval][out] */ IDispatch **out_ppObj);


void __RPC_STUB XSIFactory_CreateObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateObjectFromPreset_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR name,
    /* [defaultvalue][in] */ BSTR family,
    /* [retval][out] */ SIObject **out_ppObj);


void __RPC_STUB XSIFactory_CreateObjectFromPreset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateObjectFromFile_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR filename,
    /* [retval][out] */ SIObject **out_ppObj);


void __RPC_STUB XSIFactory_CreateObjectFromFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateScriptedOp_Proxy( 
    XSIFactory * This,
    /* [defaultvalue][in] */ BSTR name,
    /* [defaultvalue][in] */ BSTR scriptcode,
    /* [defaultvalue][in] */ BSTR language,
    /* [retval][out] */ CustomOperator **out_ppCOP);


void __RPC_STUB XSIFactory_CreateScriptedOp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateScriptedOpFromFile_Proxy( 
    XSIFactory * This,
    /* [defaultvalue][in] */ BSTR name,
    /* [defaultvalue][in] */ BSTR filename,
    /* [defaultvalue][in] */ BSTR language,
    /* [retval][out] */ CustomOperator **out_ppCOP);


void __RPC_STUB XSIFactory_CreateScriptedOpFromFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateParamDef_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR in_scriptname,
    /* [in] */ siVariantType in_type,
    /* [defaultvalue][in] */ siParamClassification in_classification,
    /* [defaultvalue][in] */ int in_capabilities,
    /* [defaultvalue][in] */ BSTR in_name,
    /* [defaultvalue][in] */ BSTR in_description,
    /* [optional][in] */ VARIANT in_default,
    /* [optional][in] */ VARIANT in_min,
    /* [optional][in] */ VARIANT in_max,
    /* [optional][in] */ VARIANT in_suggestedmin,
    /* [optional][in] */ VARIANT in_suggestedmax,
    /* [retval][out] */ ParamDef **out_ppPDef);


void __RPC_STUB XSIFactory_CreateParamDef_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateParamDef2_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR in_scriptname,
    /* [in] */ siVariantType in_type,
    /* [optional][in] */ VARIANT in_default,
    /* [optional][in] */ VARIANT in_min,
    /* [optional][in] */ VARIANT in_max,
    /* [retval][out] */ ParamDef **out_ppPDef);


void __RPC_STUB XSIFactory_CreateParamDef2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateGridData_Proxy( 
    XSIFactory * This,
    /* [retval][out] */ IDispatch **out_ppObject);


void __RPC_STUB XSIFactory_CreateGridData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateGuid_Proxy( 
    XSIFactory * This,
    /* [retval][out] */ BSTR *out_ppGuid);


void __RPC_STUB XSIFactory_CreateGuid_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateFCurveParamDef_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR in_scriptname,
    /* [retval][out] */ ParamDef **out_ppPDef);


void __RPC_STUB XSIFactory_CreateFCurveParamDef_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE XSIFactory_CreateGridParamDef_Proxy( 
    XSIFactory * This,
    /* [in] */ BSTR in_scriptname,
    /* [retval][out] */ ParamDef **out_ppPDef);


void __RPC_STUB XSIFactory_CreateGridParamDef_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __XSIFactory_INTERFACE_DEFINED__ */


#ifndef __Device_INTERFACE_DEFINED__
#define __Device_INTERFACE_DEFINED__

/* interface Device */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Device;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5E467F34-3572-40a9-9503-0C278B96026C")
    Device : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enable( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enable( 
            /* [in] */ VARIANT_BOOL in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ID( 
            /* [retval][out] */ LONG *out_pulValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Channel( 
            /* [in] */ ULONG in_channelID,
            /* [retval][out] */ Channel **out_ppChannel) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Channels( 
            /* [retval][out] */ ChannelCollection **__MIDL_0567) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetValue( 
            /* [in] */ ULONG in_ulChannelID,
            /* [in] */ VARIANT in_varValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Option( 
            /* [retval][out] */ Property **property) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct DeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Device * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Device * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Device * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Device * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Device * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Device * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Device * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enable )( 
            Device * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enable )( 
            Device * This,
            /* [in] */ VARIANT_BOOL in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ID )( 
            Device * This,
            /* [retval][out] */ LONG *out_pulValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Channel )( 
            Device * This,
            /* [in] */ ULONG in_channelID,
            /* [retval][out] */ Channel **out_ppChannel);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Channels )( 
            Device * This,
            /* [retval][out] */ ChannelCollection **__MIDL_0567);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetValue )( 
            Device * This,
            /* [in] */ ULONG in_ulChannelID,
            /* [in] */ VARIANT in_varValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Option )( 
            Device * This,
            /* [retval][out] */ Property **property);
        
        END_INTERFACE
    } DeviceVtbl;

    interface Device
    {
        CONST_VTBL struct DeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Device_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Device_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Device_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Device_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Device_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Device_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Device_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Device_get_Enable(This,pVal)	\
    (This)->lpVtbl -> get_Enable(This,pVal)

#define Device_put_Enable(This,in_val)	\
    (This)->lpVtbl -> put_Enable(This,in_val)

#define Device_get_ID(This,out_pulValue)	\
    (This)->lpVtbl -> get_ID(This,out_pulValue)

#define Device_get_Channel(This,in_channelID,out_ppChannel)	\
    (This)->lpVtbl -> get_Channel(This,in_channelID,out_ppChannel)

#define Device_get_Channels(This,__MIDL_0567)	\
    (This)->lpVtbl -> get_Channels(This,__MIDL_0567)

#define Device_SetValue(This,in_ulChannelID,in_varValue)	\
    (This)->lpVtbl -> SetValue(This,in_ulChannelID,in_varValue)

#define Device_get_Option(This,property)	\
    (This)->lpVtbl -> get_Option(This,property)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Device_get_Enable_Proxy( 
    Device * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB Device_get_Enable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Device_put_Enable_Proxy( 
    Device * This,
    /* [in] */ VARIANT_BOOL in_val);


void __RPC_STUB Device_put_Enable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Device_get_ID_Proxy( 
    Device * This,
    /* [retval][out] */ LONG *out_pulValue);


void __RPC_STUB Device_get_ID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Device_get_Channel_Proxy( 
    Device * This,
    /* [in] */ ULONG in_channelID,
    /* [retval][out] */ Channel **out_ppChannel);


void __RPC_STUB Device_get_Channel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Device_get_Channels_Proxy( 
    Device * This,
    /* [retval][out] */ ChannelCollection **__MIDL_0567);


void __RPC_STUB Device_get_Channels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Device_SetValue_Proxy( 
    Device * This,
    /* [in] */ ULONG in_ulChannelID,
    /* [in] */ VARIANT in_varValue);


void __RPC_STUB Device_SetValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Device_get_Option_Proxy( 
    Device * This,
    /* [retval][out] */ Property **property);


void __RPC_STUB Device_get_Option_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Device_INTERFACE_DEFINED__ */


#ifndef __DeviceCollection_INTERFACE_DEFINED__
#define __DeviceCollection_INTERFACE_DEFINED__

/* interface DeviceCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_DeviceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A0CDCD2B-BF4A-4781-A414-BF5A72A02C0D")
    DeviceCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Device **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enable( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enable( 
            /* [in] */ VARIANT_BOOL in_val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDevice( 
            /* [in] */ BSTR in_bstrDeviceName,
            /* [retval][out] */ Device **out_ppDevice) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveDevice( 
            /* [in] */ BSTR in_bstrDeviceName) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct DeviceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            DeviceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            DeviceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            DeviceCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            DeviceCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            DeviceCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            DeviceCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            DeviceCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            DeviceCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Device **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            DeviceCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            DeviceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enable )( 
            DeviceCollection * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enable )( 
            DeviceCollection * This,
            /* [in] */ VARIANT_BOOL in_val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDevice )( 
            DeviceCollection * This,
            /* [in] */ BSTR in_bstrDeviceName,
            /* [retval][out] */ Device **out_ppDevice);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveDevice )( 
            DeviceCollection * This,
            /* [in] */ BSTR in_bstrDeviceName);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            DeviceCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } DeviceCollectionVtbl;

    interface DeviceCollection
    {
        CONST_VTBL struct DeviceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define DeviceCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define DeviceCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define DeviceCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define DeviceCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define DeviceCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define DeviceCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define DeviceCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define DeviceCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define DeviceCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define DeviceCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define DeviceCollection_get_Enable(This,pVal)	\
    (This)->lpVtbl -> get_Enable(This,pVal)

#define DeviceCollection_put_Enable(This,in_val)	\
    (This)->lpVtbl -> put_Enable(This,in_val)

#define DeviceCollection_AddDevice(This,in_bstrDeviceName,out_ppDevice)	\
    (This)->lpVtbl -> AddDevice(This,in_bstrDeviceName,out_ppDevice)

#define DeviceCollection_RemoveDevice(This,in_bstrDeviceName)	\
    (This)->lpVtbl -> RemoveDevice(This,in_bstrDeviceName)

#define DeviceCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE DeviceCollection_get_Item_Proxy( 
    DeviceCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Device **out_pParam);


void __RPC_STUB DeviceCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE DeviceCollection_get_Count_Proxy( 
    DeviceCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB DeviceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE DeviceCollection_get_NewEnum_Proxy( 
    DeviceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB DeviceCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE DeviceCollection_get_Enable_Proxy( 
    DeviceCollection * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB DeviceCollection_get_Enable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE DeviceCollection_put_Enable_Proxy( 
    DeviceCollection * This,
    /* [in] */ VARIANT_BOOL in_val);


void __RPC_STUB DeviceCollection_put_Enable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeviceCollection_AddDevice_Proxy( 
    DeviceCollection * This,
    /* [in] */ BSTR in_bstrDeviceName,
    /* [retval][out] */ Device **out_ppDevice);


void __RPC_STUB DeviceCollection_AddDevice_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeviceCollection_RemoveDevice_Proxy( 
    DeviceCollection * This,
    /* [in] */ BSTR in_bstrDeviceName);


void __RPC_STUB DeviceCollection_RemoveDevice_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE DeviceCollection_get__NewEnum_Proxy( 
    DeviceCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB DeviceCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __DeviceCollection_INTERFACE_DEFINED__ */


#ifndef __Channel_INTERFACE_DEFINED__
#define __Channel_INTERFACE_DEFINED__

/* interface Channel */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Channel;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3281700D-E636-4b31-ADCB-2A99DE9E296E")
    Channel : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ LPVARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enable( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enable( 
            /* [in] */ VARIANT_BOOL in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ID( 
            /* [retval][out] */ LONG *out_pulValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Offset( 
            /* [retval][out] */ DOUBLE *out_pdValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Offset( 
            /* [in] */ DOUBLE in_dValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Scale( 
            /* [retval][out] */ DOUBLE *out_pdValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Scale( 
            /* [in] */ DOUBLE in_dValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Action( 
            /* [retval][out] */ siChannelAction *out_pulValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Action( 
            /* [in] */ siChannelAction in_ulValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ BSTR *out_pbstrValue) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Target( 
            /* [in] */ BSTR in_bstrValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RawMin( 
            /* [retval][out] */ DOUBLE *out_dValue) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RawMax( 
            /* [retval][out] */ DOUBLE *out_dValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsConnected( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ChannelVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Channel * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Channel * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Channel * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Channel * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Channel * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Channel * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Channel * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            Channel * This,
            /* [retval][out] */ LPVARIANT pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            Channel * This,
            /* [in] */ VARIANT in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enable )( 
            Channel * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enable )( 
            Channel * This,
            /* [in] */ VARIANT_BOOL in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ID )( 
            Channel * This,
            /* [retval][out] */ LONG *out_pulValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Offset )( 
            Channel * This,
            /* [retval][out] */ DOUBLE *out_pdValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Offset )( 
            Channel * This,
            /* [in] */ DOUBLE in_dValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Scale )( 
            Channel * This,
            /* [retval][out] */ DOUBLE *out_pdValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Scale )( 
            Channel * This,
            /* [in] */ DOUBLE in_dValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Action )( 
            Channel * This,
            /* [retval][out] */ siChannelAction *out_pulValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Action )( 
            Channel * This,
            /* [in] */ siChannelAction in_ulValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            Channel * This,
            /* [retval][out] */ BSTR *out_pbstrValue);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Target )( 
            Channel * This,
            /* [in] */ BSTR in_bstrValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RawMin )( 
            Channel * This,
            /* [retval][out] */ DOUBLE *out_dValue);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RawMax )( 
            Channel * This,
            /* [retval][out] */ DOUBLE *out_dValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsConnected )( 
            Channel * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        END_INTERFACE
    } ChannelVtbl;

    interface Channel
    {
        CONST_VTBL struct ChannelVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Channel_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Channel_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Channel_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Channel_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Channel_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Channel_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Channel_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Channel_get_Value(This,pVal)	\
    (This)->lpVtbl -> get_Value(This,pVal)

#define Channel_put_Value(This,in_val)	\
    (This)->lpVtbl -> put_Value(This,in_val)

#define Channel_get_Enable(This,pVal)	\
    (This)->lpVtbl -> get_Enable(This,pVal)

#define Channel_put_Enable(This,in_val)	\
    (This)->lpVtbl -> put_Enable(This,in_val)

#define Channel_get_ID(This,out_pulValue)	\
    (This)->lpVtbl -> get_ID(This,out_pulValue)

#define Channel_get_Offset(This,out_pdValue)	\
    (This)->lpVtbl -> get_Offset(This,out_pdValue)

#define Channel_put_Offset(This,in_dValue)	\
    (This)->lpVtbl -> put_Offset(This,in_dValue)

#define Channel_get_Scale(This,out_pdValue)	\
    (This)->lpVtbl -> get_Scale(This,out_pdValue)

#define Channel_put_Scale(This,in_dValue)	\
    (This)->lpVtbl -> put_Scale(This,in_dValue)

#define Channel_get_Action(This,out_pulValue)	\
    (This)->lpVtbl -> get_Action(This,out_pulValue)

#define Channel_put_Action(This,in_ulValue)	\
    (This)->lpVtbl -> put_Action(This,in_ulValue)

#define Channel_get_Target(This,out_pbstrValue)	\
    (This)->lpVtbl -> get_Target(This,out_pbstrValue)

#define Channel_put_Target(This,in_bstrValue)	\
    (This)->lpVtbl -> put_Target(This,in_bstrValue)

#define Channel_get_RawMin(This,out_dValue)	\
    (This)->lpVtbl -> get_RawMin(This,out_dValue)

#define Channel_get_RawMax(This,out_dValue)	\
    (This)->lpVtbl -> get_RawMax(This,out_dValue)

#define Channel_IsConnected(This,pVal)	\
    (This)->lpVtbl -> IsConnected(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_Value_Proxy( 
    Channel * This,
    /* [retval][out] */ LPVARIANT pVal);


void __RPC_STUB Channel_get_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Channel_put_Value_Proxy( 
    Channel * This,
    /* [in] */ VARIANT in_val);


void __RPC_STUB Channel_put_Value_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_Enable_Proxy( 
    Channel * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB Channel_get_Enable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Channel_put_Enable_Proxy( 
    Channel * This,
    /* [in] */ VARIANT_BOOL in_val);


void __RPC_STUB Channel_put_Enable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_ID_Proxy( 
    Channel * This,
    /* [retval][out] */ LONG *out_pulValue);


void __RPC_STUB Channel_get_ID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_Offset_Proxy( 
    Channel * This,
    /* [retval][out] */ DOUBLE *out_pdValue);


void __RPC_STUB Channel_get_Offset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Channel_put_Offset_Proxy( 
    Channel * This,
    /* [in] */ DOUBLE in_dValue);


void __RPC_STUB Channel_put_Offset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_Scale_Proxy( 
    Channel * This,
    /* [retval][out] */ DOUBLE *out_pdValue);


void __RPC_STUB Channel_get_Scale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Channel_put_Scale_Proxy( 
    Channel * This,
    /* [in] */ DOUBLE in_dValue);


void __RPC_STUB Channel_put_Scale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_Action_Proxy( 
    Channel * This,
    /* [retval][out] */ siChannelAction *out_pulValue);


void __RPC_STUB Channel_get_Action_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Channel_put_Action_Proxy( 
    Channel * This,
    /* [in] */ siChannelAction in_ulValue);


void __RPC_STUB Channel_put_Action_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_Target_Proxy( 
    Channel * This,
    /* [retval][out] */ BSTR *out_pbstrValue);


void __RPC_STUB Channel_get_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Channel_put_Target_Proxy( 
    Channel * This,
    /* [in] */ BSTR in_bstrValue);


void __RPC_STUB Channel_put_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_RawMin_Proxy( 
    Channel * This,
    /* [retval][out] */ DOUBLE *out_dValue);


void __RPC_STUB Channel_get_RawMin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Channel_get_RawMax_Proxy( 
    Channel * This,
    /* [retval][out] */ DOUBLE *out_dValue);


void __RPC_STUB Channel_get_RawMax_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Channel_IsConnected_Proxy( 
    Channel * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB Channel_IsConnected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Channel_INTERFACE_DEFINED__ */


#ifndef __Addon_INTERFACE_DEFINED__
#define __Addon_INTERFACE_DEFINED__

/* interface Addon */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Addon;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5A67A57C-FBC6-4eff-8B78-0625A5EACC5D")
    Addon : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DefaultInstallationPath( 
            /* [retval][out] */ siInstallationPath *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DefaultInstallationPath( 
            /* [in] */ siInstallationPath in_val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubDirectory( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SubDirectory( 
            /* [in] */ BSTR in_val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddItem( 
            /* [in] */ siAddonItemType in_eItemKind,
            /* [in] */ BSTR in_bstrItemName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddOtherItem( 
            /* [in] */ BSTR in_bstrFilename,
            /* [optional][in] */ BSTR in_bstrDestination) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( 
            /* [in] */ BSTR in_bstrFilename) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAddonDetail( 
            /* [in] */ BSTR in_bstrKey,
            /* [in] */ BSTR in_bstrValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct AddonVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Addon * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Addon * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Addon * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Addon * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Addon * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Addon * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Addon * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultInstallationPath )( 
            Addon * This,
            /* [retval][out] */ siInstallationPath *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DefaultInstallationPath )( 
            Addon * This,
            /* [in] */ siInstallationPath in_val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubDirectory )( 
            Addon * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SubDirectory )( 
            Addon * This,
            /* [in] */ BSTR in_val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddItem )( 
            Addon * This,
            /* [in] */ siAddonItemType in_eItemKind,
            /* [in] */ BSTR in_bstrItemName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddOtherItem )( 
            Addon * This,
            /* [in] */ BSTR in_bstrFilename,
            /* [optional][in] */ BSTR in_bstrDestination);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
            Addon * This,
            /* [in] */ BSTR in_bstrFilename);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAddonDetail )( 
            Addon * This,
            /* [in] */ BSTR in_bstrKey,
            /* [in] */ BSTR in_bstrValue);
        
        END_INTERFACE
    } AddonVtbl;

    interface Addon
    {
        CONST_VTBL struct AddonVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Addon_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Addon_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Addon_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Addon_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Addon_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Addon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Addon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Addon_get_DefaultInstallationPath(This,pVal)	\
    (This)->lpVtbl -> get_DefaultInstallationPath(This,pVal)

#define Addon_put_DefaultInstallationPath(This,in_val)	\
    (This)->lpVtbl -> put_DefaultInstallationPath(This,in_val)

#define Addon_get_SubDirectory(This,pVal)	\
    (This)->lpVtbl -> get_SubDirectory(This,pVal)

#define Addon_put_SubDirectory(This,in_val)	\
    (This)->lpVtbl -> put_SubDirectory(This,in_val)

#define Addon_AddItem(This,in_eItemKind,in_bstrItemName)	\
    (This)->lpVtbl -> AddItem(This,in_eItemKind,in_bstrItemName)

#define Addon_AddOtherItem(This,in_bstrFilename,in_bstrDestination)	\
    (This)->lpVtbl -> AddOtherItem(This,in_bstrFilename,in_bstrDestination)

#define Addon_Save(This,in_bstrFilename)	\
    (This)->lpVtbl -> Save(This,in_bstrFilename)

#define Addon_SetAddonDetail(This,in_bstrKey,in_bstrValue)	\
    (This)->lpVtbl -> SetAddonDetail(This,in_bstrKey,in_bstrValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Addon_get_DefaultInstallationPath_Proxy( 
    Addon * This,
    /* [retval][out] */ siInstallationPath *pVal);


void __RPC_STUB Addon_get_DefaultInstallationPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Addon_put_DefaultInstallationPath_Proxy( 
    Addon * This,
    /* [in] */ siInstallationPath in_val);


void __RPC_STUB Addon_put_DefaultInstallationPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Addon_get_SubDirectory_Proxy( 
    Addon * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB Addon_get_SubDirectory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Addon_put_SubDirectory_Proxy( 
    Addon * This,
    /* [in] */ BSTR in_val);


void __RPC_STUB Addon_put_SubDirectory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Addon_AddItem_Proxy( 
    Addon * This,
    /* [in] */ siAddonItemType in_eItemKind,
    /* [in] */ BSTR in_bstrItemName);


void __RPC_STUB Addon_AddItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Addon_AddOtherItem_Proxy( 
    Addon * This,
    /* [in] */ BSTR in_bstrFilename,
    /* [optional][in] */ BSTR in_bstrDestination);


void __RPC_STUB Addon_AddOtherItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Addon_Save_Proxy( 
    Addon * This,
    /* [in] */ BSTR in_bstrFilename);


void __RPC_STUB Addon_Save_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Addon_SetAddonDetail_Proxy( 
    Addon * This,
    /* [in] */ BSTR in_bstrKey,
    /* [in] */ BSTR in_bstrValue);


void __RPC_STUB Addon_SetAddonDetail_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Addon_INTERFACE_DEFINED__ */


#ifndef __Preferences_INTERFACE_DEFINED__
#define __Preferences_INTERFACE_DEFINED__

/* interface Preferences */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Preferences;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CFAC82CC-C96E-4c04-94A3-1A8B5C06808A")
    Preferences : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Categories( 
            /* [retval][out] */ ProjectItemCollection **out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPreferenceValue( 
            /* [in] */ BSTR in_bstrPrefName,
            /* [retval][out] */ VARIANT *out_ppRetVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPreferenceValue( 
            /* [in] */ BSTR in_bstrPrefName,
            /* [in] */ VARIANT in_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Import( 
            /* [in] */ BSTR in_bstrFile) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Export( 
            /* [in] */ BSTR in_bstrFile,
            /* [optional][in] */ BSTR in_bstrCategories) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RestoreDefault( 
            /* [in] */ BSTR in_bstrPrefName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveChanges( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PreferencesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Preferences * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Preferences * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Preferences * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Preferences * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Preferences * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Preferences * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Preferences * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Categories )( 
            Preferences * This,
            /* [retval][out] */ ProjectItemCollection **out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPreferenceValue )( 
            Preferences * This,
            /* [in] */ BSTR in_bstrPrefName,
            /* [retval][out] */ VARIANT *out_ppRetVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPreferenceValue )( 
            Preferences * This,
            /* [in] */ BSTR in_bstrPrefName,
            /* [in] */ VARIANT in_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Import )( 
            Preferences * This,
            /* [in] */ BSTR in_bstrFile);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Export )( 
            Preferences * This,
            /* [in] */ BSTR in_bstrFile,
            /* [optional][in] */ BSTR in_bstrCategories);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RestoreDefault )( 
            Preferences * This,
            /* [in] */ BSTR in_bstrPrefName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveChanges )( 
            Preferences * This);
        
        END_INTERFACE
    } PreferencesVtbl;

    interface Preferences
    {
        CONST_VTBL struct PreferencesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Preferences_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Preferences_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Preferences_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Preferences_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Preferences_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Preferences_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Preferences_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Preferences_get_Categories(This,out_ppRetVal)	\
    (This)->lpVtbl -> get_Categories(This,out_ppRetVal)

#define Preferences_GetPreferenceValue(This,in_bstrPrefName,out_ppRetVal)	\
    (This)->lpVtbl -> GetPreferenceValue(This,in_bstrPrefName,out_ppRetVal)

#define Preferences_SetPreferenceValue(This,in_bstrPrefName,in_pVal)	\
    (This)->lpVtbl -> SetPreferenceValue(This,in_bstrPrefName,in_pVal)

#define Preferences_Import(This,in_bstrFile)	\
    (This)->lpVtbl -> Import(This,in_bstrFile)

#define Preferences_Export(This,in_bstrFile,in_bstrCategories)	\
    (This)->lpVtbl -> Export(This,in_bstrFile,in_bstrCategories)

#define Preferences_RestoreDefault(This,in_bstrPrefName)	\
    (This)->lpVtbl -> RestoreDefault(This,in_bstrPrefName)

#define Preferences_SaveChanges(This)	\
    (This)->lpVtbl -> SaveChanges(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Preferences_get_Categories_Proxy( 
    Preferences * This,
    /* [retval][out] */ ProjectItemCollection **out_ppRetVal);


void __RPC_STUB Preferences_get_Categories_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Preferences_GetPreferenceValue_Proxy( 
    Preferences * This,
    /* [in] */ BSTR in_bstrPrefName,
    /* [retval][out] */ VARIANT *out_ppRetVal);


void __RPC_STUB Preferences_GetPreferenceValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Preferences_SetPreferenceValue_Proxy( 
    Preferences * This,
    /* [in] */ BSTR in_bstrPrefName,
    /* [in] */ VARIANT in_pVal);


void __RPC_STUB Preferences_SetPreferenceValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Preferences_Import_Proxy( 
    Preferences * This,
    /* [in] */ BSTR in_bstrFile);


void __RPC_STUB Preferences_Import_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Preferences_Export_Proxy( 
    Preferences * This,
    /* [in] */ BSTR in_bstrFile,
    /* [optional][in] */ BSTR in_bstrCategories);


void __RPC_STUB Preferences_Export_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Preferences_RestoreDefault_Proxy( 
    Preferences * This,
    /* [in] */ BSTR in_bstrPrefName);


void __RPC_STUB Preferences_RestoreDefault_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Preferences_SaveChanges_Proxy( 
    Preferences * This);


void __RPC_STUB Preferences_SaveChanges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Preferences_INTERFACE_DEFINED__ */


#ifndef __Plugin_INTERFACE_DEFINED__
#define __Plugin_INTERFACE_DEFINED__

/* interface Plugin */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_Plugin;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6E16ACFB-9C4C-433f-8665-748E51B9EF50")
    Plugin : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Author( 
            /* [retval][out] */ BSTR *__MIDL_0568) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Major( 
            /* [retval][out] */ LONG *__MIDL_0569) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Minor( 
            /* [retval][out] */ LONG *__MIDL_0570) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Language( 
            /* [retval][out] */ BSTR *__MIDL_0571) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Filename( 
            /* [retval][out] */ BSTR *__MIDL_0572) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_URL( 
            /* [retval][out] */ BSTR *__MIDL_0573) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Email( 
            /* [retval][out] */ BSTR *__MIDL_0574) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Loaded( 
            /* [retval][out] */ VARIANT_BOOL *out_bLoaded) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Items( 
            /* [retval][out] */ PluginItemCollection **__MIDL_0575) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PluginVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Plugin * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Plugin * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Plugin * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Plugin * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Plugin * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Plugin * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Plugin * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Author )( 
            Plugin * This,
            /* [retval][out] */ BSTR *__MIDL_0568);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Major )( 
            Plugin * This,
            /* [retval][out] */ LONG *__MIDL_0569);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Minor )( 
            Plugin * This,
            /* [retval][out] */ LONG *__MIDL_0570);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Language )( 
            Plugin * This,
            /* [retval][out] */ BSTR *__MIDL_0571);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Filename )( 
            Plugin * This,
            /* [retval][out] */ BSTR *__MIDL_0572);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( 
            Plugin * This,
            /* [retval][out] */ BSTR *__MIDL_0573);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Email )( 
            Plugin * This,
            /* [retval][out] */ BSTR *__MIDL_0574);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Loaded )( 
            Plugin * This,
            /* [retval][out] */ VARIANT_BOOL *out_bLoaded);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Items )( 
            Plugin * This,
            /* [retval][out] */ PluginItemCollection **__MIDL_0575);
        
        END_INTERFACE
    } PluginVtbl;

    interface Plugin
    {
        CONST_VTBL struct PluginVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Plugin_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Plugin_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Plugin_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Plugin_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Plugin_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Plugin_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Plugin_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Plugin_get_Author(This,__MIDL_0568)	\
    (This)->lpVtbl -> get_Author(This,__MIDL_0568)

#define Plugin_get_Major(This,__MIDL_0569)	\
    (This)->lpVtbl -> get_Major(This,__MIDL_0569)

#define Plugin_get_Minor(This,__MIDL_0570)	\
    (This)->lpVtbl -> get_Minor(This,__MIDL_0570)

#define Plugin_get_Language(This,__MIDL_0571)	\
    (This)->lpVtbl -> get_Language(This,__MIDL_0571)

#define Plugin_get_Filename(This,__MIDL_0572)	\
    (This)->lpVtbl -> get_Filename(This,__MIDL_0572)

#define Plugin_get_URL(This,__MIDL_0573)	\
    (This)->lpVtbl -> get_URL(This,__MIDL_0573)

#define Plugin_get_Email(This,__MIDL_0574)	\
    (This)->lpVtbl -> get_Email(This,__MIDL_0574)

#define Plugin_get_Loaded(This,out_bLoaded)	\
    (This)->lpVtbl -> get_Loaded(This,out_bLoaded)

#define Plugin_get_Items(This,__MIDL_0575)	\
    (This)->lpVtbl -> get_Items(This,__MIDL_0575)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Author_Proxy( 
    Plugin * This,
    /* [retval][out] */ BSTR *__MIDL_0568);


void __RPC_STUB Plugin_get_Author_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Major_Proxy( 
    Plugin * This,
    /* [retval][out] */ LONG *__MIDL_0569);


void __RPC_STUB Plugin_get_Major_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Minor_Proxy( 
    Plugin * This,
    /* [retval][out] */ LONG *__MIDL_0570);


void __RPC_STUB Plugin_get_Minor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Language_Proxy( 
    Plugin * This,
    /* [retval][out] */ BSTR *__MIDL_0571);


void __RPC_STUB Plugin_get_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Filename_Proxy( 
    Plugin * This,
    /* [retval][out] */ BSTR *__MIDL_0572);


void __RPC_STUB Plugin_get_Filename_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_URL_Proxy( 
    Plugin * This,
    /* [retval][out] */ BSTR *__MIDL_0573);


void __RPC_STUB Plugin_get_URL_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Email_Proxy( 
    Plugin * This,
    /* [retval][out] */ BSTR *__MIDL_0574);


void __RPC_STUB Plugin_get_Email_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Loaded_Proxy( 
    Plugin * This,
    /* [retval][out] */ VARIANT_BOOL *out_bLoaded);


void __RPC_STUB Plugin_get_Loaded_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Plugin_get_Items_Proxy( 
    Plugin * This,
    /* [retval][out] */ PluginItemCollection **__MIDL_0575);


void __RPC_STUB Plugin_get_Items_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Plugin_INTERFACE_DEFINED__ */


#ifndef __PluginItem_INTERFACE_DEFINED__
#define __PluginItem_INTERFACE_DEFINED__

/* interface PluginItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PluginItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0B3DC168-5CA0-452e-82AE-420E86442C12")
    PluginItem : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct PluginItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PluginItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PluginItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PluginItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PluginItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PluginItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PluginItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PluginItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } PluginItemVtbl;

    interface PluginItem
    {
        CONST_VTBL struct PluginItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PluginItem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PluginItem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PluginItem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PluginItem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PluginItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PluginItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PluginItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __PluginItem_INTERFACE_DEFINED__ */


#ifndef __PluginRegistrar_INTERFACE_DEFINED__
#define __PluginRegistrar_INTERFACE_DEFINED__

/* interface PluginRegistrar */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_PluginRegistrar;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5AA81326-167D-44f0-887D-FEE79B2E6C4F")
    PluginRegistrar : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Author( 
            /* [in] */ BSTR __MIDL_0576) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Author( 
            /* [retval][out] */ BSTR *__MIDL_0577) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_URL( 
            /* [in] */ BSTR __MIDL_0578) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_URL( 
            /* [retval][out] */ BSTR *__MIDL_0579) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Email( 
            /* [in] */ BSTR __MIDL_0580) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Email( 
            /* [retval][out] */ BSTR *__MIDL_0581) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Filename( 
            /* [retval][out] */ BSTR *__MIDL_0582) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Language( 
            /* [retval][out] */ BSTR *__MIDL_0583) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Major( 
            /* [in] */ LONG in_major) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Major( 
            /* [retval][out] */ LONG *in_major) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Minor( 
            /* [in] */ LONG in_minor) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Minor( 
            /* [retval][out] */ LONG *in_minor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterCommand( 
            /* [in] */ BSTR in_Name,
            /* [defaultvalue][in] */ BSTR in_scriptName,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterFilter( 
            /* [in] */ BSTR in_Name,
            /* [in] */ siFilterType in_type,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterCustomDisplay( 
            /* [in] */ BSTR in_Name,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterProperty( 
            /* [in] */ BSTR in_Name,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterMenu( 
            /* [in] */ siMenuAnchorPoints in_menuID,
            /* [in] */ BSTR in_menuName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bDisplayAsSubmenu,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bDynamicMenu,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterOperator( 
            /* [in] */ BSTR in_Name,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterEvent( 
            /* [in] */ BSTR in_eventName,
            /* [in] */ siEventID in_eventID,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterTimerEvent( 
            /* [in] */ BSTR in_eventName,
            /* [in] */ LONG in_interval,
            /* [defaultvalue][in] */ LONG in_delay,
            /* [retval][out] */ PluginItem **out_pItem) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PluginRegistrarVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PluginRegistrar * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PluginRegistrar * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PluginRegistrar * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PluginRegistrar * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PluginRegistrar * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PluginRegistrar * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PluginRegistrar * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Author )( 
            PluginRegistrar * This,
            /* [in] */ BSTR __MIDL_0576);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Author )( 
            PluginRegistrar * This,
            /* [retval][out] */ BSTR *__MIDL_0577);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_URL )( 
            PluginRegistrar * This,
            /* [in] */ BSTR __MIDL_0578);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( 
            PluginRegistrar * This,
            /* [retval][out] */ BSTR *__MIDL_0579);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Email )( 
            PluginRegistrar * This,
            /* [in] */ BSTR __MIDL_0580);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Email )( 
            PluginRegistrar * This,
            /* [retval][out] */ BSTR *__MIDL_0581);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Filename )( 
            PluginRegistrar * This,
            /* [retval][out] */ BSTR *__MIDL_0582);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Language )( 
            PluginRegistrar * This,
            /* [retval][out] */ BSTR *__MIDL_0583);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Major )( 
            PluginRegistrar * This,
            /* [in] */ LONG in_major);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Major )( 
            PluginRegistrar * This,
            /* [retval][out] */ LONG *in_major);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Minor )( 
            PluginRegistrar * This,
            /* [in] */ LONG in_minor);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Minor )( 
            PluginRegistrar * This,
            /* [retval][out] */ LONG *in_minor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterCommand )( 
            PluginRegistrar * This,
            /* [in] */ BSTR in_Name,
            /* [defaultvalue][in] */ BSTR in_scriptName,
            /* [retval][out] */ PluginItem **out_pItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterFilter )( 
            PluginRegistrar * This,
            /* [in] */ BSTR in_Name,
            /* [in] */ siFilterType in_type,
            /* [retval][out] */ PluginItem **out_pItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterCustomDisplay )( 
            PluginRegistrar * This,
            /* [in] */ BSTR in_Name,
            /* [retval][out] */ PluginItem **out_pItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterProperty )( 
            PluginRegistrar * This,
            /* [in] */ BSTR in_Name,
            /* [retval][out] */ PluginItem **out_pItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterMenu )( 
            PluginRegistrar * This,
            /* [in] */ siMenuAnchorPoints in_menuID,
            /* [in] */ BSTR in_menuName,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bDisplayAsSubmenu,
            /* [defaultvalue][in] */ VARIANT_BOOL in_bDynamicMenu,
            /* [retval][out] */ PluginItem **out_pItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterOperator )( 
            PluginRegistrar * This,
            /* [in] */ BSTR in_Name,
            /* [retval][out] */ PluginItem **out_pItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            PluginRegistrar * This,
            /* [in] */ BSTR in_eventName,
            /* [in] */ siEventID in_eventID,
            /* [retval][out] */ PluginItem **out_pItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterTimerEvent )( 
            PluginRegistrar * This,
            /* [in] */ BSTR in_eventName,
            /* [in] */ LONG in_interval,
            /* [defaultvalue][in] */ LONG in_delay,
            /* [retval][out] */ PluginItem **out_pItem);
        
        END_INTERFACE
    } PluginRegistrarVtbl;

    interface PluginRegistrar
    {
        CONST_VTBL struct PluginRegistrarVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PluginRegistrar_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define PluginRegistrar_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define PluginRegistrar_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define PluginRegistrar_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define PluginRegistrar_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define PluginRegistrar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define PluginRegistrar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define PluginRegistrar_put_Author(This,__MIDL_0576)	\
    (This)->lpVtbl -> put_Author(This,__MIDL_0576)

#define PluginRegistrar_get_Author(This,__MIDL_0577)	\
    (This)->lpVtbl -> get_Author(This,__MIDL_0577)

#define PluginRegistrar_put_URL(This,__MIDL_0578)	\
    (This)->lpVtbl -> put_URL(This,__MIDL_0578)

#define PluginRegistrar_get_URL(This,__MIDL_0579)	\
    (This)->lpVtbl -> get_URL(This,__MIDL_0579)

#define PluginRegistrar_put_Email(This,__MIDL_0580)	\
    (This)->lpVtbl -> put_Email(This,__MIDL_0580)

#define PluginRegistrar_get_Email(This,__MIDL_0581)	\
    (This)->lpVtbl -> get_Email(This,__MIDL_0581)

#define PluginRegistrar_get_Filename(This,__MIDL_0582)	\
    (This)->lpVtbl -> get_Filename(This,__MIDL_0582)

#define PluginRegistrar_get_Language(This,__MIDL_0583)	\
    (This)->lpVtbl -> get_Language(This,__MIDL_0583)

#define PluginRegistrar_put_Major(This,in_major)	\
    (This)->lpVtbl -> put_Major(This,in_major)

#define PluginRegistrar_get_Major(This,in_major)	\
    (This)->lpVtbl -> get_Major(This,in_major)

#define PluginRegistrar_put_Minor(This,in_minor)	\
    (This)->lpVtbl -> put_Minor(This,in_minor)

#define PluginRegistrar_get_Minor(This,in_minor)	\
    (This)->lpVtbl -> get_Minor(This,in_minor)

#define PluginRegistrar_RegisterCommand(This,in_Name,in_scriptName,out_pItem)	\
    (This)->lpVtbl -> RegisterCommand(This,in_Name,in_scriptName,out_pItem)

#define PluginRegistrar_RegisterFilter(This,in_Name,in_type,out_pItem)	\
    (This)->lpVtbl -> RegisterFilter(This,in_Name,in_type,out_pItem)

#define PluginRegistrar_RegisterCustomDisplay(This,in_Name,out_pItem)	\
    (This)->lpVtbl -> RegisterCustomDisplay(This,in_Name,out_pItem)

#define PluginRegistrar_RegisterProperty(This,in_Name,out_pItem)	\
    (This)->lpVtbl -> RegisterProperty(This,in_Name,out_pItem)

#define PluginRegistrar_RegisterMenu(This,in_menuID,in_menuName,in_bDisplayAsSubmenu,in_bDynamicMenu,out_pItem)	\
    (This)->lpVtbl -> RegisterMenu(This,in_menuID,in_menuName,in_bDisplayAsSubmenu,in_bDynamicMenu,out_pItem)

#define PluginRegistrar_RegisterOperator(This,in_Name,out_pItem)	\
    (This)->lpVtbl -> RegisterOperator(This,in_Name,out_pItem)

#define PluginRegistrar_RegisterEvent(This,in_eventName,in_eventID,out_pItem)	\
    (This)->lpVtbl -> RegisterEvent(This,in_eventName,in_eventID,out_pItem)

#define PluginRegistrar_RegisterTimerEvent(This,in_eventName,in_interval,in_delay,out_pItem)	\
    (This)->lpVtbl -> RegisterTimerEvent(This,in_eventName,in_interval,in_delay,out_pItem)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_put_Author_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR __MIDL_0576);


void __RPC_STUB PluginRegistrar_put_Author_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_get_Author_Proxy( 
    PluginRegistrar * This,
    /* [retval][out] */ BSTR *__MIDL_0577);


void __RPC_STUB PluginRegistrar_get_Author_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_put_URL_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR __MIDL_0578);


void __RPC_STUB PluginRegistrar_put_URL_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_get_URL_Proxy( 
    PluginRegistrar * This,
    /* [retval][out] */ BSTR *__MIDL_0579);


void __RPC_STUB PluginRegistrar_get_URL_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_put_Email_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR __MIDL_0580);


void __RPC_STUB PluginRegistrar_put_Email_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_get_Email_Proxy( 
    PluginRegistrar * This,
    /* [retval][out] */ BSTR *__MIDL_0581);


void __RPC_STUB PluginRegistrar_get_Email_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_get_Filename_Proxy( 
    PluginRegistrar * This,
    /* [retval][out] */ BSTR *__MIDL_0582);


void __RPC_STUB PluginRegistrar_get_Filename_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_get_Language_Proxy( 
    PluginRegistrar * This,
    /* [retval][out] */ BSTR *__MIDL_0583);


void __RPC_STUB PluginRegistrar_get_Language_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_put_Major_Proxy( 
    PluginRegistrar * This,
    /* [in] */ LONG in_major);


void __RPC_STUB PluginRegistrar_put_Major_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_get_Major_Proxy( 
    PluginRegistrar * This,
    /* [retval][out] */ LONG *in_major);


void __RPC_STUB PluginRegistrar_get_Major_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_put_Minor_Proxy( 
    PluginRegistrar * This,
    /* [in] */ LONG in_minor);


void __RPC_STUB PluginRegistrar_put_Minor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_get_Minor_Proxy( 
    PluginRegistrar * This,
    /* [retval][out] */ LONG *in_minor);


void __RPC_STUB PluginRegistrar_get_Minor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterCommand_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR in_Name,
    /* [defaultvalue][in] */ BSTR in_scriptName,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterCommand_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterFilter_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR in_Name,
    /* [in] */ siFilterType in_type,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterCustomDisplay_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR in_Name,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterCustomDisplay_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterProperty_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR in_Name,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterMenu_Proxy( 
    PluginRegistrar * This,
    /* [in] */ siMenuAnchorPoints in_menuID,
    /* [in] */ BSTR in_menuName,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bDisplayAsSubmenu,
    /* [defaultvalue][in] */ VARIANT_BOOL in_bDynamicMenu,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterMenu_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterOperator_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR in_Name,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterOperator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterEvent_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR in_eventName,
    /* [in] */ siEventID in_eventID,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PluginRegistrar_RegisterTimerEvent_Proxy( 
    PluginRegistrar * This,
    /* [in] */ BSTR in_eventName,
    /* [in] */ LONG in_interval,
    /* [defaultvalue][in] */ LONG in_delay,
    /* [retval][out] */ PluginItem **out_pItem);


void __RPC_STUB PluginRegistrar_RegisterTimerEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __PluginRegistrar_INTERFACE_DEFINED__ */


#ifndef __Desktop_INTERFACE_DEFINED__
#define __Desktop_INTERFACE_DEFINED__

/* interface Desktop */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Desktop;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1182EACC-1D5B-492f-9D35-C27CCB444825")
    Desktop : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveLayout( 
            /* [retval][out] */ Layout **out_ppLayout) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ActiveLayout( 
            Layout *in_pLayout) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Layouts( 
            /* [retval][out] */ LayoutCollection **out_pLayouts) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RedrawUI( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SuspendWin32ControlsHook( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RestoreWin32ControlsHook( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct DesktopVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Desktop * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Desktop * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Desktop * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Desktop * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Desktop * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Desktop * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Desktop * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveLayout )( 
            Desktop * This,
            /* [retval][out] */ Layout **out_ppLayout);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActiveLayout )( 
            Desktop * This,
            Layout *in_pLayout);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Layouts )( 
            Desktop * This,
            /* [retval][out] */ LayoutCollection **out_pLayouts);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RedrawUI )( 
            Desktop * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SuspendWin32ControlsHook )( 
            Desktop * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RestoreWin32ControlsHook )( 
            Desktop * This);
        
        END_INTERFACE
    } DesktopVtbl;

    interface Desktop
    {
        CONST_VTBL struct DesktopVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Desktop_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Desktop_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Desktop_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Desktop_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Desktop_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Desktop_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Desktop_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Desktop_get_ActiveLayout(This,out_ppLayout)	\
    (This)->lpVtbl -> get_ActiveLayout(This,out_ppLayout)

#define Desktop_put_ActiveLayout(This,in_pLayout)	\
    (This)->lpVtbl -> put_ActiveLayout(This,in_pLayout)

#define Desktop_get_Layouts(This,out_pLayouts)	\
    (This)->lpVtbl -> get_Layouts(This,out_pLayouts)

#define Desktop_RedrawUI(This)	\
    (This)->lpVtbl -> RedrawUI(This)

#define Desktop_SuspendWin32ControlsHook(This)	\
    (This)->lpVtbl -> SuspendWin32ControlsHook(This)

#define Desktop_RestoreWin32ControlsHook(This)	\
    (This)->lpVtbl -> RestoreWin32ControlsHook(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Desktop_get_ActiveLayout_Proxy( 
    Desktop * This,
    /* [retval][out] */ Layout **out_ppLayout);


void __RPC_STUB Desktop_get_ActiveLayout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE Desktop_put_ActiveLayout_Proxy( 
    Desktop * This,
    Layout *in_pLayout);


void __RPC_STUB Desktop_put_ActiveLayout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Desktop_get_Layouts_Proxy( 
    Desktop * This,
    /* [retval][out] */ LayoutCollection **out_pLayouts);


void __RPC_STUB Desktop_get_Layouts_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Desktop_RedrawUI_Proxy( 
    Desktop * This);


void __RPC_STUB Desktop_RedrawUI_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Desktop_SuspendWin32ControlsHook_Proxy( 
    Desktop * This);


void __RPC_STUB Desktop_SuspendWin32ControlsHook_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Desktop_RestoreWin32ControlsHook_Proxy( 
    Desktop * This);


void __RPC_STUB Desktop_RestoreWin32ControlsHook_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Desktop_INTERFACE_DEFINED__ */


#ifndef __Layout_INTERFACE_DEFINED__
#define __Layout_INTERFACE_DEFINED__

/* interface Layout */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Layout;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("880F1B5B-3A66-4efb-9CA2-99F61A2D1680")
    Layout : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Views( 
            /* [retval][out] */ ViewCollection **out_ppViews) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateView( 
            /* [in] */ BSTR in_pViewType,
            /* [in] */ BSTR in_pViewName,
            /* [retval][out] */ View **out_pView) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateViewFromDefinitionFile( 
            /* [in] */ BSTR in_pViewPath,
            /* [in] */ BSTR in_pViewName,
            /* [retval][out] */ View **out_pView) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct LayoutVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Layout * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Layout * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Layout * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Layout * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Layout * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Layout * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Layout * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Views )( 
            Layout * This,
            /* [retval][out] */ ViewCollection **out_ppViews);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateView )( 
            Layout * This,
            /* [in] */ BSTR in_pViewType,
            /* [in] */ BSTR in_pViewName,
            /* [retval][out] */ View **out_pView);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateViewFromDefinitionFile )( 
            Layout * This,
            /* [in] */ BSTR in_pViewPath,
            /* [in] */ BSTR in_pViewName,
            /* [retval][out] */ View **out_pView);
        
        END_INTERFACE
    } LayoutVtbl;

    interface Layout
    {
        CONST_VTBL struct LayoutVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Layout_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Layout_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Layout_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Layout_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Layout_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Layout_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Layout_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Layout_get_Views(This,out_ppViews)	\
    (This)->lpVtbl -> get_Views(This,out_ppViews)

#define Layout_CreateView(This,in_pViewType,in_pViewName,out_pView)	\
    (This)->lpVtbl -> CreateView(This,in_pViewType,in_pViewName,out_pView)

#define Layout_CreateViewFromDefinitionFile(This,in_pViewPath,in_pViewName,out_pView)	\
    (This)->lpVtbl -> CreateViewFromDefinitionFile(This,in_pViewPath,in_pViewName,out_pView)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE Layout_get_Views_Proxy( 
    Layout * This,
    /* [retval][out] */ ViewCollection **out_ppViews);


void __RPC_STUB Layout_get_Views_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Layout_CreateView_Proxy( 
    Layout * This,
    /* [in] */ BSTR in_pViewType,
    /* [in] */ BSTR in_pViewName,
    /* [retval][out] */ View **out_pView);


void __RPC_STUB Layout_CreateView_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Layout_CreateViewFromDefinitionFile_Proxy( 
    Layout * This,
    /* [in] */ BSTR in_pViewPath,
    /* [in] */ BSTR in_pViewName,
    /* [retval][out] */ View **out_pView);


void __RPC_STUB Layout_CreateViewFromDefinitionFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Layout_INTERFACE_DEFINED__ */


#ifndef __View_INTERFACE_DEFINED__
#define __View_INTERFACE_DEFINED__

/* interface View */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_View;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("70DFA7C4-60B0-4eb4-AA11-9BAE732EB339")
    View : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Views( 
            /* [retval][out] */ ViewCollection **out_ppSubViews) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_State( 
            /* [in] */ siViewState in_lState) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ siViewState *out_pState) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Visible( 
            /* [in] */ VARIANT_BOOL in_bFlag) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Visible( 
            /* [retval][out] */ VARIANT_BOOL *out_pbFlag) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Floating( 
            /* [retval][out] */ VARIANT_BOOL *out_pbVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAttributeValue( 
            /* [in] */ BSTR in_pParamName,
            /* [retval][out] */ VARIANT *out_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAttributeValue( 
            /* [in] */ BSTR in_pParamName,
            /* [in] */ VARIANT *in_pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE BeginEdit( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EndEdit( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Move( 
            LONG in_x,
            LONG in_y) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Resize( 
            LONG in_w,
            LONG in_h) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ViewVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            View * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            View * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            View * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            View * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            View * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            View * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            View * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Views )( 
            View * This,
            /* [retval][out] */ ViewCollection **out_ppSubViews);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_State )( 
            View * This,
            /* [in] */ siViewState in_lState);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            View * This,
            /* [retval][out] */ siViewState *out_pState);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            View * This,
            /* [in] */ VARIANT_BOOL in_bFlag);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            View * This,
            /* [retval][out] */ VARIANT_BOOL *out_pbFlag);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Floating )( 
            View * This,
            /* [retval][out] */ VARIANT_BOOL *out_pbVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttributeValue )( 
            View * This,
            /* [in] */ BSTR in_pParamName,
            /* [retval][out] */ VARIANT *out_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAttributeValue )( 
            View * This,
            /* [in] */ BSTR in_pParamName,
            /* [in] */ VARIANT *in_pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *BeginEdit )( 
            View * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EndEdit )( 
            View * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( 
            View * This,
            LONG in_x,
            LONG in_y);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Resize )( 
            View * This,
            LONG in_w,
            LONG in_h);
        
        END_INTERFACE
    } ViewVtbl;

    interface View
    {
        CONST_VTBL struct ViewVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define View_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define View_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define View_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define View_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define View_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define View_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define View_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define View_get_Views(This,out_ppSubViews)	\
    (This)->lpVtbl -> get_Views(This,out_ppSubViews)

#define View_put_State(This,in_lState)	\
    (This)->lpVtbl -> put_State(This,in_lState)

#define View_get_State(This,out_pState)	\
    (This)->lpVtbl -> get_State(This,out_pState)

#define View_put_Visible(This,in_bFlag)	\
    (This)->lpVtbl -> put_Visible(This,in_bFlag)

#define View_get_Visible(This,out_pbFlag)	\
    (This)->lpVtbl -> get_Visible(This,out_pbFlag)

#define View_get_Floating(This,out_pbVal)	\
    (This)->lpVtbl -> get_Floating(This,out_pbVal)

#define View_GetAttributeValue(This,in_pParamName,out_pVal)	\
    (This)->lpVtbl -> GetAttributeValue(This,in_pParamName,out_pVal)

#define View_SetAttributeValue(This,in_pParamName,in_pVal)	\
    (This)->lpVtbl -> SetAttributeValue(This,in_pParamName,in_pVal)

#define View_BeginEdit(This)	\
    (This)->lpVtbl -> BeginEdit(This)

#define View_EndEdit(This)	\
    (This)->lpVtbl -> EndEdit(This)

#define View_Move(This,in_x,in_y)	\
    (This)->lpVtbl -> Move(This,in_x,in_y)

#define View_Resize(This,in_w,in_h)	\
    (This)->lpVtbl -> Resize(This,in_w,in_h)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE View_get_Views_Proxy( 
    View * This,
    /* [retval][out] */ ViewCollection **out_ppSubViews);


void __RPC_STUB View_get_Views_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE View_put_State_Proxy( 
    View * This,
    /* [in] */ siViewState in_lState);


void __RPC_STUB View_put_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE View_get_State_Proxy( 
    View * This,
    /* [retval][out] */ siViewState *out_pState);


void __RPC_STUB View_get_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE View_put_Visible_Proxy( 
    View * This,
    /* [in] */ VARIANT_BOOL in_bFlag);


void __RPC_STUB View_put_Visible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE View_get_Visible_Proxy( 
    View * This,
    /* [retval][out] */ VARIANT_BOOL *out_pbFlag);


void __RPC_STUB View_get_Visible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE View_get_Floating_Proxy( 
    View * This,
    /* [retval][out] */ VARIANT_BOOL *out_pbVal);


void __RPC_STUB View_get_Floating_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE View_GetAttributeValue_Proxy( 
    View * This,
    /* [in] */ BSTR in_pParamName,
    /* [retval][out] */ VARIANT *out_pVal);


void __RPC_STUB View_GetAttributeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE View_SetAttributeValue_Proxy( 
    View * This,
    /* [in] */ BSTR in_pParamName,
    /* [in] */ VARIANT *in_pVal);


void __RPC_STUB View_SetAttributeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE View_BeginEdit_Proxy( 
    View * This);


void __RPC_STUB View_BeginEdit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE View_EndEdit_Proxy( 
    View * This);


void __RPC_STUB View_EndEdit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE View_Move_Proxy( 
    View * This,
    LONG in_x,
    LONG in_y);


void __RPC_STUB View_Move_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE View_Resize_Proxy( 
    View * This,
    LONG in_w,
    LONG in_h);


void __RPC_STUB View_Resize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __View_INTERFACE_DEFINED__ */


#ifndef __UIObject_INTERFACE_DEFINED__
#define __UIObject_INTERFACE_DEFINED__

/* interface UIObject */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UIObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C1D8F888-14CC-457e-97F2-3EA6CB653BBF")
    UIObject : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct UIObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UIObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UIObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UIObject * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UIObject * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UIObject * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UIObject * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UIObject * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } UIObjectVtbl;

    interface UIObject
    {
        CONST_VTBL struct UIObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define UIObject_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define UIObject_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define UIObject_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define UIObject_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define UIObject_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define UIObject_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define UIObject_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __UIObject_INTERFACE_DEFINED__ */


#ifndef __LayoutCollection_INTERFACE_DEFINED__
#define __LayoutCollection_INTERFACE_DEFINED__

/* interface LayoutCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_LayoutCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D908FD5D-8F51-46ab-B67A-046954989DE8")
    LayoutCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Layout **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ LayoutCollection **__MIDL_0521) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Layout **__MIDL_0522) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0523) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct LayoutCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            LayoutCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            LayoutCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            LayoutCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            LayoutCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            LayoutCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            LayoutCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            LayoutCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            LayoutCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Layout **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            LayoutCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            LayoutCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            LayoutCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ LayoutCollection **__MIDL_0521);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            LayoutCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Layout **__MIDL_0522);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            LayoutCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0523);
        
        END_INTERFACE
    } LayoutCollectionVtbl;

    interface LayoutCollection
    {
        CONST_VTBL struct LayoutCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define LayoutCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define LayoutCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define LayoutCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define LayoutCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define LayoutCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define LayoutCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define LayoutCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define LayoutCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define LayoutCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define LayoutCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define LayoutCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0521)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0521)

#define LayoutCollection_Find(This,in_filter,__MIDL_0522)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0522)

#define LayoutCollection_GetAsText(This,__MIDL_0523)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0523)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE LayoutCollection_get_Item_Proxy( 
    LayoutCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Layout **out_pParam);


void __RPC_STUB LayoutCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE LayoutCollection_get_Count_Proxy( 
    LayoutCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB LayoutCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE LayoutCollection_get__NewEnum_Proxy( 
    LayoutCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB LayoutCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LayoutCollection_Filter_Proxy( 
    LayoutCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ LayoutCollection **__MIDL_0521);


void __RPC_STUB LayoutCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LayoutCollection_Find_Proxy( 
    LayoutCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Layout **__MIDL_0522);


void __RPC_STUB LayoutCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE LayoutCollection_GetAsText_Proxy( 
    LayoutCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0523);


void __RPC_STUB LayoutCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __LayoutCollection_INTERFACE_DEFINED__ */


#ifndef __ViewCollection_INTERFACE_DEFINED__
#define __ViewCollection_INTERFACE_DEFINED__

/* interface ViewCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ViewCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("06CFA4AF-3408-4ad4-A1F0-E53D2DC5BDF6")
    ViewCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ View **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ViewCollection **__MIDL_0524) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ View **__MIDL_0525) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0526) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ViewCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ViewCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ViewCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ViewCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ViewCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ViewCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ViewCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ViewCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ViewCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ View **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ViewCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ViewCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ViewCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ViewCollection **__MIDL_0524);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ViewCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ View **__MIDL_0525);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ViewCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0526);
        
        END_INTERFACE
    } ViewCollectionVtbl;

    interface ViewCollection
    {
        CONST_VTBL struct ViewCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ViewCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ViewCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ViewCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ViewCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ViewCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ViewCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ViewCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ViewCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ViewCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ViewCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ViewCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0524)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0524)

#define ViewCollection_Find(This,in_filter,__MIDL_0525)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0525)

#define ViewCollection_GetAsText(This,__MIDL_0526)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0526)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ViewCollection_get_Item_Proxy( 
    ViewCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ View **out_pParam);


void __RPC_STUB ViewCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ViewCollection_get_Count_Proxy( 
    ViewCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ViewCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ViewCollection_get__NewEnum_Proxy( 
    ViewCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ViewCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ViewCollection_Filter_Proxy( 
    ViewCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ViewCollection **__MIDL_0524);


void __RPC_STUB ViewCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ViewCollection_Find_Proxy( 
    ViewCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ View **__MIDL_0525);


void __RPC_STUB ViewCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ViewCollection_GetAsText_Proxy( 
    ViewCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0526);


void __RPC_STUB ViewCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ViewCollection_INTERFACE_DEFINED__ */


#ifndef __Menu_INTERFACE_DEFINED__
#define __Menu_INTERFACE_DEFINED__

/* interface Menu */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_Menu;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8D1592EB-9801-4c9d-901B-EC0CCBB02418")
    Menu : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddItem( 
            /* [in] */ BSTR in_pLabel,
            /* [in] */ siMenuItemStyle in_style,
            /* [retval][out] */ MenuItem **out_pMenuItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCommandItem( 
            /* [in] */ BSTR in_pLabel,
            /* [in] */ VARIANT in_cmd,
            /* [retval][out] */ MenuItem **out_pMenuItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCallbackItem( 
            /* [in] */ BSTR in_pLabel,
            /* [in] */ BSTR in_pszCallback,
            /* [retval][out] */ MenuItem **out_pMenuItem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddSeparatorItem( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct MenuVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Menu * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Menu * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Menu * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Menu * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Menu * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Menu * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Menu * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddItem )( 
            Menu * This,
            /* [in] */ BSTR in_pLabel,
            /* [in] */ siMenuItemStyle in_style,
            /* [retval][out] */ MenuItem **out_pMenuItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCommandItem )( 
            Menu * This,
            /* [in] */ BSTR in_pLabel,
            /* [in] */ VARIANT in_cmd,
            /* [retval][out] */ MenuItem **out_pMenuItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCallbackItem )( 
            Menu * This,
            /* [in] */ BSTR in_pLabel,
            /* [in] */ BSTR in_pszCallback,
            /* [retval][out] */ MenuItem **out_pMenuItem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddSeparatorItem )( 
            Menu * This);
        
        END_INTERFACE
    } MenuVtbl;

    interface Menu
    {
        CONST_VTBL struct MenuVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Menu_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define Menu_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define Menu_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define Menu_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define Menu_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define Menu_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define Menu_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define Menu_AddItem(This,in_pLabel,in_style,out_pMenuItem)	\
    (This)->lpVtbl -> AddItem(This,in_pLabel,in_style,out_pMenuItem)

#define Menu_AddCommandItem(This,in_pLabel,in_cmd,out_pMenuItem)	\
    (This)->lpVtbl -> AddCommandItem(This,in_pLabel,in_cmd,out_pMenuItem)

#define Menu_AddCallbackItem(This,in_pLabel,in_pszCallback,out_pMenuItem)	\
    (This)->lpVtbl -> AddCallbackItem(This,in_pLabel,in_pszCallback,out_pMenuItem)

#define Menu_AddSeparatorItem(This)	\
    (This)->lpVtbl -> AddSeparatorItem(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Menu_AddItem_Proxy( 
    Menu * This,
    /* [in] */ BSTR in_pLabel,
    /* [in] */ siMenuItemStyle in_style,
    /* [retval][out] */ MenuItem **out_pMenuItem);


void __RPC_STUB Menu_AddItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Menu_AddCommandItem_Proxy( 
    Menu * This,
    /* [in] */ BSTR in_pLabel,
    /* [in] */ VARIANT in_cmd,
    /* [retval][out] */ MenuItem **out_pMenuItem);


void __RPC_STUB Menu_AddCommandItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Menu_AddCallbackItem_Proxy( 
    Menu * This,
    /* [in] */ BSTR in_pLabel,
    /* [in] */ BSTR in_pszCallback,
    /* [retval][out] */ MenuItem **out_pMenuItem);


void __RPC_STUB Menu_AddCallbackItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Menu_AddSeparatorItem_Proxy( 
    Menu * This);


void __RPC_STUB Menu_AddSeparatorItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __Menu_INTERFACE_DEFINED__ */


#ifndef __MenuItem_INTERFACE_DEFINED__
#define __MenuItem_INTERFACE_DEFINED__

/* interface MenuItem */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_MenuItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A36C264C-AE73-4151-A587-E90DA5E062DF")
    MenuItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Command( 
            /* [in] */ VARIANT in_command) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Command( 
            /* [retval][out] */ Command **out_ppCommand) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Callback( 
            /* [in] */ BSTR in_pCallback) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Callback( 
            /* [retval][out] */ BSTR *out_ppCallback) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Style( 
            /* [retval][out] */ siMenuItemStyle *out_pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0584) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ VARIANT_BOOL __MIDL_0585) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Filter( 
            /* [in] */ VARIANT in_filter) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Filter( 
            /* [retval][out] */ Filter **out_ppFilter) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct MenuItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            MenuItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            MenuItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            MenuItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            MenuItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            MenuItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            MenuItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            MenuItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Command )( 
            MenuItem * This,
            /* [in] */ VARIANT in_command);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Command )( 
            MenuItem * This,
            /* [retval][out] */ Command **out_ppCommand);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Callback )( 
            MenuItem * This,
            /* [in] */ BSTR in_pCallback);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Callback )( 
            MenuItem * This,
            /* [retval][out] */ BSTR *out_ppCallback);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Style )( 
            MenuItem * This,
            /* [retval][out] */ siMenuItemStyle *out_pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            MenuItem * This,
            /* [retval][out] */ VARIANT_BOOL *__MIDL_0584);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            MenuItem * This,
            /* [in] */ VARIANT_BOOL __MIDL_0585);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Filter )( 
            MenuItem * This,
            /* [in] */ VARIANT in_filter);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Filter )( 
            MenuItem * This,
            /* [retval][out] */ Filter **out_ppFilter);
        
        END_INTERFACE
    } MenuItemVtbl;

    interface MenuItem
    {
        CONST_VTBL struct MenuItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define MenuItem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define MenuItem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define MenuItem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define MenuItem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define MenuItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define MenuItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define MenuItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define MenuItem_put_Command(This,in_command)	\
    (This)->lpVtbl -> put_Command(This,in_command)

#define MenuItem_get_Command(This,out_ppCommand)	\
    (This)->lpVtbl -> get_Command(This,out_ppCommand)

#define MenuItem_put_Callback(This,in_pCallback)	\
    (This)->lpVtbl -> put_Callback(This,in_pCallback)

#define MenuItem_get_Callback(This,out_ppCallback)	\
    (This)->lpVtbl -> get_Callback(This,out_ppCallback)

#define MenuItem_get_Style(This,out_pVal)	\
    (This)->lpVtbl -> get_Style(This,out_pVal)

#define MenuItem_get_Enabled(This,__MIDL_0584)	\
    (This)->lpVtbl -> get_Enabled(This,__MIDL_0584)

#define MenuItem_put_Enabled(This,__MIDL_0585)	\
    (This)->lpVtbl -> put_Enabled(This,__MIDL_0585)

#define MenuItem_put_Filter(This,in_filter)	\
    (This)->lpVtbl -> put_Filter(This,in_filter)

#define MenuItem_get_Filter(This,out_ppFilter)	\
    (This)->lpVtbl -> get_Filter(This,out_ppFilter)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE MenuItem_put_Command_Proxy( 
    MenuItem * This,
    /* [in] */ VARIANT in_command);


void __RPC_STUB MenuItem_put_Command_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MenuItem_get_Command_Proxy( 
    MenuItem * This,
    /* [retval][out] */ Command **out_ppCommand);


void __RPC_STUB MenuItem_get_Command_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE MenuItem_put_Callback_Proxy( 
    MenuItem * This,
    /* [in] */ BSTR in_pCallback);


void __RPC_STUB MenuItem_put_Callback_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MenuItem_get_Callback_Proxy( 
    MenuItem * This,
    /* [retval][out] */ BSTR *out_ppCallback);


void __RPC_STUB MenuItem_get_Callback_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MenuItem_get_Style_Proxy( 
    MenuItem * This,
    /* [retval][out] */ siMenuItemStyle *out_pVal);


void __RPC_STUB MenuItem_get_Style_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MenuItem_get_Enabled_Proxy( 
    MenuItem * This,
    /* [retval][out] */ VARIANT_BOOL *__MIDL_0584);


void __RPC_STUB MenuItem_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE MenuItem_put_Enabled_Proxy( 
    MenuItem * This,
    /* [in] */ VARIANT_BOOL __MIDL_0585);


void __RPC_STUB MenuItem_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE MenuItem_put_Filter_Proxy( 
    MenuItem * This,
    /* [in] */ VARIANT in_filter);


void __RPC_STUB MenuItem_put_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE MenuItem_get_Filter_Proxy( 
    MenuItem * This,
    /* [retval][out] */ Filter **out_ppFilter);


void __RPC_STUB MenuItem_get_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __MenuItem_INTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_CXSIApplication;

#ifdef __cplusplus

class DECLSPEC_UUID("72233CD0-47BE-11d4-80F2-00A024189A69")
CXSIApplication;
#endif

EXTERN_C const CLSID CLSID_CXSICollection;

#ifdef __cplusplus

class DECLSPEC_UUID("1258482A-CC7B-11D4-8155-00A0C9AC19A9")
CXSICollection;
#endif

EXTERN_C const CLSID CLSID_CXSICollectionItem;

#ifdef __cplusplus

class DECLSPEC_UUID("1258482B-CC7B-11D4-8155-00A0C9AC19A9")
CXSICollectionItem;
#endif

EXTERN_C const CLSID CLSID_CXSIUIToolkit;

#ifdef __cplusplus

class DECLSPEC_UUID("719f90c0-537b-11d5-b5d0-00d0b7142d8a")
CXSIUIToolkit;
#endif

EXTERN_C const CLSID CLSID_CXSIFactory;

#ifdef __cplusplus

class DECLSPEC_UUID("4CEE8494-4A7A-4174-9A4B-E9632960A713")
CXSIFactory;
#endif
#endif /* __SI3DOBJECTMODELLIB_LIBRARY_DEFINED__ */

/* interface __MIDL_itf_si3dobjectmodel_0260 */
/* [local] */ 

#pragma once


extern RPC_IF_HANDLE __MIDL_itf_si3dobjectmodel_0260_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_si3dobjectmodel_0260_v0_0_s_ifspec;

#ifndef __UserGroup_INTERFACE_DEFINED__
#define __UserGroup_INTERFACE_DEFINED__

/* interface UserGroup */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UserGroup;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D958FDF2-414D-11d4-ACD9-0090275802BF")
    UserGroup : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct UserGroupVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UserGroup * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UserGroup * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UserGroup * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UserGroup * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UserGroup * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UserGroup * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UserGroup * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } UserGroupVtbl;

    interface UserGroup
    {
        CONST_VTBL struct UserGroupVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define UserGroup_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define UserGroup_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define UserGroup_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define UserGroup_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define UserGroup_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define UserGroup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define UserGroup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __UserGroup_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_si3dobjectmodel_0303 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_si3dobjectmodel_0303_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_si3dobjectmodel_0303_v0_0_s_ifspec;

#ifndef __ConstructionHistory_INTERFACE_DEFINED__
#define __ConstructionHistory_INTERFACE_DEFINED__

/* interface ConstructionHistory */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ConstructionHistory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F481606E-4ECD-11d4-812C-00A0C9AC19A9")
    ConstructionHistory : public IDispatch
    {
    public:
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ OperatorCollection **__MIDL_0167) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Operator **__MIDL_0168) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ConstructionHistoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ConstructionHistory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ConstructionHistory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ConstructionHistory * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ConstructionHistory * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ConstructionHistory * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ConstructionHistory * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ConstructionHistory * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ConstructionHistory * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ConstructionHistory * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ OperatorCollection **__MIDL_0167);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ConstructionHistory * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Operator **__MIDL_0168);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ConstructionHistory * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        END_INTERFACE
    } ConstructionHistoryVtbl;

    interface ConstructionHistory
    {
        CONST_VTBL struct ConstructionHistoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ConstructionHistory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ConstructionHistory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ConstructionHistory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ConstructionHistory_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ConstructionHistory_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ConstructionHistory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ConstructionHistory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ConstructionHistory_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ConstructionHistory_Filter(This,in_filter,in_famArray,in_path,__MIDL_0167)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0167)

#define ConstructionHistory_Find(This,in_filter,__MIDL_0168)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0168)

#define ConstructionHistory_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ConstructionHistory_get_NewEnum_Proxy( 
    ConstructionHistory * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ConstructionHistory_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConstructionHistory_Filter_Proxy( 
    ConstructionHistory * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ OperatorCollection **__MIDL_0167);


void __RPC_STUB ConstructionHistory_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ConstructionHistory_Find_Proxy( 
    ConstructionHistory * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Operator **__MIDL_0168);


void __RPC_STUB ConstructionHistory_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ConstructionHistory_get__NewEnum_Proxy( 
    ConstructionHistory * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ConstructionHistory_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ConstructionHistory_INTERFACE_DEFINED__ */


#ifndef __ChannelCollection_INTERFACE_DEFINED__
#define __ChannelCollection_INTERFACE_DEFINED__

/* interface ChannelCollection */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ChannelCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("03F6F362-E9D4-4a32-9156-DFD6B00F96F2")
    ChannelCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Channel **out_pParam) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ LONG *vtRetVal) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Filter( 
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ChannelCollection **__MIDL_0506) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Find( 
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Channel **__MIDL_0507) = 0;
        
        virtual /* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ LPUNKNOWN *retval) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAsText( 
            /* [retval][out] */ BSTR *__MIDL_0508) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ChannelCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ChannelCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ChannelCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ChannelCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ChannelCollection * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ChannelCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ChannelCollection * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ChannelCollection * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            ChannelCollection * This,
            /* [optional][in] */ VARIANT idx,
            /* [retval][out] */ Channel **out_pParam);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ChannelCollection * This,
            /* [retval][out] */ LONG *vtRetVal);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NewEnum )( 
            ChannelCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
            ChannelCollection * This,
            /* [defaultvalue][in] */ BSTR in_filter,
            /* [optional][in] */ VARIANT in_famArray,
            /* [defaultvalue][in] */ BSTR in_path,
            /* [retval][out] */ ChannelCollection **__MIDL_0506);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Find )( 
            ChannelCollection * This,
            /* [in] */ BSTR in_filter,
            /* [retval][out] */ Channel **__MIDL_0507);
        
        /* [id][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            ChannelCollection * This,
            /* [retval][out] */ LPUNKNOWN *retval);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAsText )( 
            ChannelCollection * This,
            /* [retval][out] */ BSTR *__MIDL_0508);
        
        END_INTERFACE
    } ChannelCollectionVtbl;

    interface ChannelCollection
    {
        CONST_VTBL struct ChannelCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ChannelCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ChannelCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ChannelCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ChannelCollection_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ChannelCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ChannelCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ChannelCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ChannelCollection_get_Item(This,idx,out_pParam)	\
    (This)->lpVtbl -> get_Item(This,idx,out_pParam)

#define ChannelCollection_get_Count(This,vtRetVal)	\
    (This)->lpVtbl -> get_Count(This,vtRetVal)

#define ChannelCollection_get_NewEnum(This,retval)	\
    (This)->lpVtbl -> get_NewEnum(This,retval)

#define ChannelCollection_Filter(This,in_filter,in_famArray,in_path,__MIDL_0506)	\
    (This)->lpVtbl -> Filter(This,in_filter,in_famArray,in_path,__MIDL_0506)

#define ChannelCollection_Find(This,in_filter,__MIDL_0507)	\
    (This)->lpVtbl -> Find(This,in_filter,__MIDL_0507)

#define ChannelCollection_get__NewEnum(This,retval)	\
    (This)->lpVtbl -> get__NewEnum(This,retval)

#define ChannelCollection_GetAsText(This,__MIDL_0508)	\
    (This)->lpVtbl -> GetAsText(This,__MIDL_0508)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE ChannelCollection_get_Item_Proxy( 
    ChannelCollection * This,
    /* [optional][in] */ VARIANT idx,
    /* [retval][out] */ Channel **out_pParam);


void __RPC_STUB ChannelCollection_get_Item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE ChannelCollection_get_Count_Proxy( 
    ChannelCollection * This,
    /* [retval][out] */ LONG *vtRetVal);


void __RPC_STUB ChannelCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ChannelCollection_get_NewEnum_Proxy( 
    ChannelCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ChannelCollection_get_NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ChannelCollection_Filter_Proxy( 
    ChannelCollection * This,
    /* [defaultvalue][in] */ BSTR in_filter,
    /* [optional][in] */ VARIANT in_famArray,
    /* [defaultvalue][in] */ BSTR in_path,
    /* [retval][out] */ ChannelCollection **__MIDL_0506);


void __RPC_STUB ChannelCollection_Filter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ChannelCollection_Find_Proxy( 
    ChannelCollection * This,
    /* [in] */ BSTR in_filter,
    /* [retval][out] */ Channel **__MIDL_0507);


void __RPC_STUB ChannelCollection_Find_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][restricted][propget] */ HRESULT STDMETHODCALLTYPE ChannelCollection_get__NewEnum_Proxy( 
    ChannelCollection * This,
    /* [retval][out] */ LPUNKNOWN *retval);


void __RPC_STUB ChannelCollection_get__NewEnum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id] */ HRESULT STDMETHODCALLTYPE ChannelCollection_GetAsText_Proxy( 
    ChannelCollection * This,
    /* [retval][out] */ BSTR *__MIDL_0508);


void __RPC_STUB ChannelCollection_GetAsText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ChannelCollection_INTERFACE_DEFINED__ */


#ifndef __CollectionItem2_INTERFACE_DEFINED__
#define __CollectionItem2_INTERFACE_DEFINED__

/* interface CollectionItem2 */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_CollectionItem2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("45BB3A07-0EF4-4d1f-8634-4AE4E7D9CDFE")
    CollectionItem2 : public CollectionItem
    {
    public:
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FullName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ LPDISPATCH *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ Application **pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsEqualTo( 
            /* [in] */ IDispatch *in_pItem,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_UniqueName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsClassOf( 
            /* [in] */ siClassID __MIDL_0566,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_NestedObjects( 
            /* [retval][out] */ XSICollection **out_pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct CollectionItem2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            CollectionItem2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            CollectionItem2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            CollectionItem2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            CollectionItem2 * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            CollectionItem2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            CollectionItem2 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            CollectionItem2 * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            CollectionItem2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            CollectionItem2 * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubElements )( 
            CollectionItem2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SubElements )( 
            CollectionItem2 * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathItems )( 
            CollectionItem2 * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BranchFlag )( 
            CollectionItem2 * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BranchFlag )( 
            CollectionItem2 * This,
            /* [in] */ LONG newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Families )( 
            CollectionItem2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Capabilities )( 
            CollectionItem2 * This,
            /* [retval][out] */ LONG *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Obj )( 
            CollectionItem2 * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Obj )( 
            CollectionItem2 * This,
            /* [in] */ LPUNKNOWN newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            CollectionItem2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Singleton )( 
            CollectionItem2 * This,
            /* [retval][out] */ BOOL *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            CollectionItem2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindAttrib )( 
            CollectionItem2 * This,
            BSTR __MIDL_0564,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsA )( 
            CollectionItem2 * This,
            LONG __MIDL_0565,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Selected )( 
            CollectionItem2 * This,
            /* [optional][in] */ LONG newVal,
            /* [retval][out] */ BOOL *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubComponent )( 
            CollectionItem2 * This,
            /* [retval][out] */ SubComponent **pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubElements2 )( 
            CollectionItem2 * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FullName )( 
            CollectionItem2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            CollectionItem2 * This,
            /* [retval][out] */ LPDISPATCH *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            CollectionItem2 * This,
            /* [retval][out] */ Application **pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsEqualTo )( 
            CollectionItem2 * This,
            /* [in] */ IDispatch *in_pItem,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UniqueName )( 
            CollectionItem2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsClassOf )( 
            CollectionItem2 * This,
            /* [in] */ siClassID __MIDL_0566,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NestedObjects )( 
            CollectionItem2 * This,
            /* [retval][out] */ XSICollection **out_pVal);
        
        END_INTERFACE
    } CollectionItem2Vtbl;

    interface CollectionItem2
    {
        CONST_VTBL struct CollectionItem2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define CollectionItem2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define CollectionItem2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define CollectionItem2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define CollectionItem2_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define CollectionItem2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define CollectionItem2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define CollectionItem2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define CollectionItem2_get_Value(This,pVal)	\
    (This)->lpVtbl -> get_Value(This,pVal)

#define CollectionItem2_put_Value(This,newVal)	\
    (This)->lpVtbl -> put_Value(This,newVal)

#define CollectionItem2_get_SubElements(This,pVal)	\
    (This)->lpVtbl -> get_SubElements(This,pVal)

#define CollectionItem2_put_SubElements(This,newVal)	\
    (This)->lpVtbl -> put_SubElements(This,newVal)

#define CollectionItem2_get_PathItems(This,pVal)	\
    (This)->lpVtbl -> get_PathItems(This,pVal)

#define CollectionItem2_get_BranchFlag(This,pVal)	\
    (This)->lpVtbl -> get_BranchFlag(This,pVal)

#define CollectionItem2_put_BranchFlag(This,newVal)	\
    (This)->lpVtbl -> put_BranchFlag(This,newVal)

#define CollectionItem2_get_Families(This,pVal)	\
    (This)->lpVtbl -> get_Families(This,pVal)

#define CollectionItem2_get_Capabilities(This,pVal)	\
    (This)->lpVtbl -> get_Capabilities(This,pVal)

#define CollectionItem2_get_Obj(This,pVal)	\
    (This)->lpVtbl -> get_Obj(This,pVal)

#define CollectionItem2_put_Obj(This,newVal)	\
    (This)->lpVtbl -> put_Obj(This,newVal)

#define CollectionItem2_get_Type(This,pVal)	\
    (This)->lpVtbl -> get_Type(This,pVal)

#define CollectionItem2_get_Singleton(This,pVal)	\
    (This)->lpVtbl -> get_Singleton(This,pVal)

#define CollectionItem2_get_Name(This,pVal)	\
    (This)->lpVtbl -> get_Name(This,pVal)

#define CollectionItem2_FindAttrib(This,__MIDL_0564,pVal)	\
    (This)->lpVtbl -> FindAttrib(This,__MIDL_0564,pVal)

#define CollectionItem2_get_IsA(This,__MIDL_0565,pVal)	\
    (This)->lpVtbl -> get_IsA(This,__MIDL_0565,pVal)

#define CollectionItem2_get_Selected(This,newVal,pVal)	\
    (This)->lpVtbl -> get_Selected(This,newVal,pVal)

#define CollectionItem2_get_SubComponent(This,pVal)	\
    (This)->lpVtbl -> get_SubComponent(This,pVal)

#define CollectionItem2_get_SubElements2(This,pVal)	\
    (This)->lpVtbl -> get_SubElements2(This,pVal)


#define CollectionItem2_get_FullName(This,pVal)	\
    (This)->lpVtbl -> get_FullName(This,pVal)

#define CollectionItem2_get_Parent(This,pVal)	\
    (This)->lpVtbl -> get_Parent(This,pVal)

#define CollectionItem2_get_Application(This,pVal)	\
    (This)->lpVtbl -> get_Application(This,pVal)

#define CollectionItem2_IsEqualTo(This,in_pItem,pVal)	\
    (This)->lpVtbl -> IsEqualTo(This,in_pItem,pVal)

#define CollectionItem2_get_UniqueName(This,pVal)	\
    (This)->lpVtbl -> get_UniqueName(This,pVal)

#define CollectionItem2_IsClassOf(This,__MIDL_0566,pVal)	\
    (This)->lpVtbl -> IsClassOf(This,__MIDL_0566,pVal)

#define CollectionItem2_get_NestedObjects(This,out_pVal)	\
    (This)->lpVtbl -> get_NestedObjects(This,out_pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem2_get_FullName_Proxy( 
    CollectionItem2 * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItem2_get_FullName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem2_get_Parent_Proxy( 
    CollectionItem2 * This,
    /* [retval][out] */ LPDISPATCH *pVal);


void __RPC_STUB CollectionItem2_get_Parent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem2_get_Application_Proxy( 
    CollectionItem2 * This,
    /* [retval][out] */ Application **pVal);


void __RPC_STUB CollectionItem2_get_Application_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE CollectionItem2_IsEqualTo_Proxy( 
    CollectionItem2 * This,
    /* [in] */ IDispatch *in_pItem,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB CollectionItem2_IsEqualTo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem2_get_UniqueName_Proxy( 
    CollectionItem2 * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB CollectionItem2_get_UniqueName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE CollectionItem2_IsClassOf_Proxy( 
    CollectionItem2 * This,
    /* [in] */ siClassID __MIDL_0566,
    /* [retval][out] */ VARIANT_BOOL *pVal);


void __RPC_STUB CollectionItem2_IsClassOf_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE CollectionItem2_get_NestedObjects_Proxy( 
    CollectionItem2 * This,
    /* [retval][out] */ XSICollection **out_pVal);


void __RPC_STUB CollectionItem2_get_NestedObjects_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __CollectionItem2_INTERFACE_DEFINED__ */


#ifndef __UIPersistable_INTERFACE_DEFINED__
#define __UIPersistable_INTERFACE_DEFINED__

/* interface UIPersistable */
/* [unique][dual][local][object][helpstring][uuid] */ 


EXTERN_C const IID IID_UIPersistable;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1EFE7EF1-E893-42b0-A2A6-9BA28C2B9304")
    UIPersistable : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAs( 
            /* [in] */ BSTR *in_pFilename) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct UIPersistableVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            UIPersistable * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            UIPersistable * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            UIPersistable * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            UIPersistable * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            UIPersistable * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            UIPersistable * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            UIPersistable * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
            UIPersistable * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAs )( 
            UIPersistable * This,
            /* [in] */ BSTR *in_pFilename);
        
        END_INTERFACE
    } UIPersistableVtbl;

    interface UIPersistable
    {
        CONST_VTBL struct UIPersistableVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define UIPersistable_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define UIPersistable_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define UIPersistable_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define UIPersistable_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define UIPersistable_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define UIPersistable_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define UIPersistable_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define UIPersistable_Save(This)	\
    (This)->lpVtbl -> Save(This)

#define UIPersistable_SaveAs(This,in_pFilename)	\
    (This)->lpVtbl -> SaveAs(This,in_pFilename)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UIPersistable_Save_Proxy( 
    UIPersistable * This);


void __RPC_STUB UIPersistable_Save_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UIPersistable_SaveAs_Proxy( 
    UIPersistable * This,
    /* [in] */ BSTR *in_pFilename);


void __RPC_STUB UIPersistable_SaveAs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __UIPersistable_INTERFACE_DEFINED__ */


/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); 
void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


