Click here to Skip to main content
15,882,017 members
Articles / Desktop Programming / ATL

3D Graph ActiveX Control

Rate me:
Please Sign up or sign in to vote.
4.90/5 (100 votes)
2 Aug 2003MIT3 min read 770.4K   50K   284  
An ATL/STL ActiveX control based on OpenGL library for 3D data visualization
// NTGraph3D.idl : IDL source for NTGraph3D.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (NTGraph3D.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";
#include "olectl.h"
	

	[
		object,
		uuid(74881C3E-3B4A-4134-9069-1B6E6B2E886F),
		dual,
		helpstring("IGraph3D Interface"),
		pointer_default(unique)
	]
	interface IGraph3D : IDispatch
	{
		[propput, id(DISPID_BACKCOLOR)]
		HRESULT BackColor([in]OLE_COLOR clr);
		[propget, id(DISPID_BACKCOLOR)]
		HRESULT BackColor([out,retval]OLE_COLOR* pclr);
		[propput, id(DISPID_BORDERSTYLE)]
		HRESULT BorderStyle([in]long style);
		[propget, id(DISPID_BORDERSTYLE)]
		HRESULT BorderStyle([out, retval]long* pstyle);
		[propputref, id(DISPID_FONT)]
		HRESULT Font([in]IFontDisp* pFont);
		[propput, id(DISPID_FONT)]
		HRESULT Font([in]IFontDisp* pFont);
		[propget, id(DISPID_FONT)]
		HRESULT Font([out, retval]IFontDisp** ppFont);
		[propput, id(DISPID_CAPTION)]
		HRESULT Caption([in]BSTR strCaption);
		[propget, id(DISPID_CAPTION)]
		HRESULT Caption([out,retval]BSTR* pstrCaption);
		[propput, id(DISPID_BORDERVISIBLE)]
		HRESULT BorderVisible([in]VARIANT_BOOL vbool);
		[propget, id(DISPID_BORDERVISIBLE)]
		HRESULT BorderVisible([out, retval]VARIANT_BOOL* pbool);
		[propput, id(DISPID_APPEARANCE)]
		HRESULT Appearance([in]short appearance);
		[propget, id(DISPID_APPEARANCE)]
		HRESULT Appearance([out, retval]short* pappearance);
		[propget, id(1), helpstring("property CaptionColor")] HRESULT CaptionColor([out, retval] OLE_COLOR *pVal);
		[propput, id(1), helpstring("property CaptionColor")] HRESULT CaptionColor([in] OLE_COLOR newVal);
		[id(2), helpstring("method SetRange")] HRESULT SetRange(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax);
		[id(3), helpstring("method AutoRange")] HRESULT AutoRange();
		[id(4), helpstring("method ShowPropertyPages")] HRESULT ShowPropertyPages();
		[propget, id(5), helpstring("property TrackMode")] HRESULT TrackMode([out, retval] short *pVal);
		[propput, id(5), helpstring("property TrackMode")] HRESULT TrackMode([in] short newVal);
		[propget, id(6), helpstring("property Projection")] HRESULT Projection([out, retval] short *pVal);
		[propput, id(6), helpstring("property Projection")] HRESULT Projection([in] short newVal);
		[propget, id(7), helpstring("property XLabel")] HRESULT XLabel([out, retval] BSTR *pVal);
		[propput, id(7), helpstring("property XLabel")] HRESULT XLabel([in] BSTR newVal);
		[propget, id(8), helpstring("property YLabel")] HRESULT YLabel([out, retval] BSTR *pVal);
		[propput, id(8), helpstring("property YLabel")] HRESULT YLabel([in] BSTR newVal);
		[propget, id(9), helpstring("property ZLabel")] HRESULT ZLabel([out, retval] BSTR *pVal);
		[propput, id(9), helpstring("property ZLabel")] HRESULT ZLabel([in] BSTR newVal);
		[propget, id(10), helpstring("property XGridNumber")] HRESULT XGridNumber([out, retval] short *pVal);
		[propput, id(10), helpstring("property XGridNumber")] HRESULT XGridNumber([in] short newVal);
		[propget, id(11), helpstring("property YGridNumber")] HRESULT YGridNumber([out, retval] short *pVal);
		[propput, id(11), helpstring("property YGridNumber")] HRESULT YGridNumber([in] short newVal);
		[propget, id(12), helpstring("property ZGridNumber")] HRESULT ZGridNumber([out, retval] short *pVal);
		[propput, id(12), helpstring("property ZGridNumber")] HRESULT ZGridNumber([in] short newVal);
		[propget, id(13), helpstring("property XGridColor")] HRESULT XGridColor([out, retval] OLE_COLOR *pVal);
		[propput, id(13), helpstring("property XGridColor")] HRESULT XGridColor([in] OLE_COLOR newVal);
		[propget, id(14), helpstring("property YGridColor")] HRESULT YGridColor([out, retval] OLE_COLOR *pVal);
		[propput, id(14), helpstring("property YGridColor")] HRESULT YGridColor([in] OLE_COLOR newVal);
		[propget, id(15), helpstring("property ZGridColor")] HRESULT ZGridColor([out, retval] OLE_COLOR *pVal);
		[propput, id(15), helpstring("property ZGridColor")] HRESULT ZGridColor([in] OLE_COLOR newVal);
		[id(16), helpstring("method AddElement")] HRESULT AddElement();
		[id(17), helpstring("method DeleteElement")] HRESULT DeleteElement(short ElementID);
		[id(18), helpstring("method ClearGraph")] HRESULT ClearGraph();
		[propget, id(19), helpstring("property ElementLineColor")] HRESULT ElementLineColor(short ElementID, [out, retval] OLE_COLOR *pVal);
		[propput, id(19), helpstring("property ElementLineColor")] HRESULT ElementLineColor(short ElementID, [in] OLE_COLOR newVal);
		[propget, id(20), helpstring("property ElementPointColor")] HRESULT ElementPointColor(short ElementID, [out, retval] OLE_COLOR *pVal);
		[propput, id(20), helpstring("property ElementPointColor")] HRESULT ElementPointColor(short ElementID, [in] OLE_COLOR newVal);
		[propget, id(21), helpstring("property ElementLineWidth")] HRESULT ElementLineWidth(short ElementID, [out, retval] float *pVal);
		[propput, id(21), helpstring("property ElementLineWidth")] HRESULT ElementLineWidth(short ElementID, [in] float newVal);
		[propget, id(22), helpstring("property ElementPointSize")] HRESULT ElementPointSize(short ElementID, [out, retval] float *pVal);
		[propput, id(22), helpstring("property ElementPointSize")] HRESULT ElementPointSize(short ElementID, [in] float newVal);
		[propget, id(23), helpstring("property ElementType")] HRESULT ElementType(short ElementID, [out, retval] short *pVal);
		[propput, id(23), helpstring("property ElementType")] HRESULT ElementType(short ElementID, [in] short newVal);
		[id(24), helpstring("method PlotXYZ")] HRESULT PlotXYZ(double x, double y, double z, short ElementID);
		[propget, id(25), helpstring("property ElementShow")] HRESULT ElementShow(short ElementID, [out, retval] BOOL *pVal);
		[propput, id(25), helpstring("property ElementShow")] HRESULT ElementShow(short ElementID, [in] BOOL newVal);
		[propget, id(26), helpstring("property ElementSurfaceFill")] HRESULT ElementSurfaceFill(short ElementID, [out, retval] BOOL *pVal);
		[propput, id(26), helpstring("property ElementSurfaceFill")] HRESULT ElementSurfaceFill(short ElementID, [in] BOOL newVal);
		[propget, id(27), helpstring("property ElementSurfaceFlat")] HRESULT ElementSurfaceFlat(short ElementID, [out, retval] BOOL *pVal);
		[propput, id(27), helpstring("property ElementSurfaceFlat")] HRESULT ElementSurfaceFlat(short ElementID, [in] BOOL newVal);
		[propget, id(28), helpstring("property ElementLight")] HRESULT ElementLight(short ElementID, [out, retval] BOOL *pVal);
		[propput, id(28), helpstring("property ElementLight")] HRESULT ElementLight(short ElementID, [in] BOOL newVal);
		[propget, id(29), helpstring("property ElementLightingAmbient")] HRESULT ElementLightingAmbient(short ElementID, [out, retval] short *pVal);
		[propput, id(29), helpstring("property ElementLightingAmbient")] HRESULT ElementLightingAmbient(short ElementID, [in] short newVal);
		[propget, id(30), helpstring("property ElementLightingDiffuse")] HRESULT ElementLightingDiffuse(short ElementID, [out, retval] short *pVal);
		[propput, id(30), helpstring("property ElementLightingDiffuse")] HRESULT ElementLightingDiffuse(short ElementID, [in] short newVal);
		[propget, id(31), helpstring("property ElementLightingSpecular")] HRESULT ElementLightingSpecular(short ElementID, [out, retval] short *pVal);
		[propput, id(31), helpstring("property ElementLightingSpecular")] HRESULT ElementLightingSpecular(short ElementID, [in] short newVal);
		[propget, id(32), helpstring("property ElementMaterialAmbient")] HRESULT ElementMaterialAmbient(short ElementID, [out, retval] short *pVal);
		[propput, id(32), helpstring("property ElementMaterialAmbient")] HRESULT ElementMaterialAmbient(short ElementID, [in] short newVal);
		[propget, id(33), helpstring("property ElementMaterialDiffuse")] HRESULT ElementMaterialDiffuse(short ElementID, [out, retval] short *pVal);
		[propput, id(33), helpstring("property ElementMaterialDiffuse")] HRESULT ElementMaterialDiffuse(short ElementID, [in] short newVal);
		[propget, id(34), helpstring("property ElementMaterialSpecular")] HRESULT ElementMaterialSpecular(short ElementID, [out, retval] short *pVal);
		[propput, id(34), helpstring("property ElementMaterialSpecular")] HRESULT ElementMaterialSpecular(short ElementID, [in] short newVal);
		[propget, id(35), helpstring("property ElementMaterialShinines")] HRESULT ElementMaterialShinines(short ElementID, [out, retval] short *pVal);
		[propput, id(35), helpstring("property ElementMaterialShinines")] HRESULT ElementMaterialShinines(short ElementID, [in] short newVal);
		[propget, id(36), helpstring("property ElementMaterialEmission")] HRESULT ElementMaterialEmission(short ElementID, [out, retval] short *pVal);
		[propput, id(36), helpstring("property ElementMaterialEmission")] HRESULT ElementMaterialEmission(short ElementID, [in] short newVal);
		[id(37), helpstring("method SetLightCoordinates")] HRESULT SetLightCoordinates(short ElementID, float x, float y, float z);
		[id(38), helpstring("method CopyToClipboard")] HRESULT CopyToClipboard();
		[propget, id(39), helpstring("property Lighting")] HRESULT Lighting(short ElementID, [out, retval] BOOL *pVal);
		[propput, id(39), helpstring("property Lighting")] HRESULT Lighting(short ElementID, [in] BOOL newVal);
	};

[
	uuid(7A99C13D-22DF-400C-AB37-48C32A897EFB),
	version(1.0),
	helpstring("NTGraph3D 1.0 Type Library")
]
library NTGRAPH3DLib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	[
		uuid(DF3EB502-551C-4A90-B564-6681A6962F58),
		helpstring("NTGraph3D Class")
	]
	coclass NTGraph3D
	{
		[default] interface IGraph3D;
	};
};

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
Germany Germany
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions