www.pudn.com > CADimage.rar > cadimage.h, change:2005-09-06,size:5312b


/* 
Copyright (c) 2002-2004 SoftGold software company 
 
Module Name: 
 
    cadimage.h 
 
Description: 
 
    Master include file CAD Image DLL version 
 
*/ 
#ifndef _CADIAMGE_ 
#define _CADIAMGE_ 
 
#include <windows.h> 
 
#define CS_STATIC_DLL 
 
typedef struct _CADDRAW 
{   
    DWORD Size; 
    HDC DC; 
    RECT R; 
    BYTE DrawMode; 
} CADDRAW, *LPCADDRAW; 
 
// Soft Gold float type (float in previous version) 
typedef double sgFloat; 
 
typedef struct _FPOINT 
{ 
	sgFloat x; 
	sgFloat y; 
	sgFloat z; 
} FPOINT, *LPFPOINT; 
 
typedef union _FRECT 
{ 
	struct 
	{ 
		sgFloat Left; 
		sgFloat Top; 
		sgFloat Z1; 
		sgFloat Right; 
		sgFloat Bottom; 
		sgFloat Z2; 
	} Points; 
	 
	struct 
	{ 
		FPOINT TopLeft; 
		FPOINT BottomRight; 
	} Corners;	 
} FRECT, *LPFRECT; 
 
typedef struct _DXFPOINT 
{ 
	float X; 
	float Y; 
	float Z; 
} DXFPOINT, *LPDXFPOINT; 
 
typedef struct _DXFDATA 
{ 
	WORD Tag; 
	WORD Count; 
	WORD TickCount; 
	BYTE Flags; 
	BYTE Style;     
	int Dimension; 
    LPDXFPOINT DashDots; 
    int DashDotsCount; 
	int Color; 
	LPVOID *Ticks; 
	float Thickness; 
	float Rotation; 
	char* Layer; 
	char* Text; 
	char* FontName; 
    unsigned long Handle; 
    int Unused; 
	DXFPOINT Point1; 
	DXFPOINT Point2; 
	DXFPOINT Point3; 
	DXFPOINT Point4; 
 
	union 
	{		 
		struct 
		{ 
			float Radius; 
			float StartAngle; 
			float EndAngle; 
		} Arc; 
		struct 
		{ 
			HANDLE Block; 
			DXFPOINT Scale; 
		} Blocks; 
		struct 
		{ 
			float FHeight; 
			float FScale; 
			float RWidth; 
			float RHeight; 
			BYTE HAlign; 
			BYTE VAlign; 
		} Text; 
		LPDXFPOINT PolyPoints; 
	} DATA; 
} DXFDATA, *LPDXFDATA; 
 
typedef enum AXES { axisX=0, axisY=1, axisZ=2 }; 
 
typedef int (WINAPI *PROGRESSPROC)(BYTE*); 
 
#ifndef CS_STATIC_DLL  
	typedef HANDLE (WINAPI *CADLAYER)(HANDLE, DWORD, LPDXFDATA); 
	typedef int    (WINAPI *CADLAYERCOUNT)(HANDLE); 
	typedef int    (WINAPI *CADLAYERVISIBLE)(HANDLE, int); 
	typedef int    (WINAPI *CADVISIBLE)(HANDLE, LPCSTR); 
	typedef HANDLE (WINAPI *CREATECAD)(HWND, LPCSTR); 
	typedef int    (WINAPI *CLOSECAD)(HANDLE); 
	typedef HANDLE (WINAPI *CADLAYOUT)(HANDLE, int);	   
	typedef int    (WINAPI *CADLAYOUTNAME)(HANDLE, DWORD, LPCSTR, DWORD); 
	typedef int    (WINAPI *CADLAYOUTSCOUNT)(HANDLE); 
	typedef BOOL   (WINAPI *CADLAYUOTVISIBLE)(HANDLE, int, BOOL, BOOL); 
	typedef HANDLE (WINAPI *CURRENTLAYOUTCAD)(HANDLE, int, BOOL); 
	typedef int    (WINAPI *DEFAULTLAYOUTINDEX)(HANDLE); 
	typedef int    (WINAPI *DRAWCAD)(HANDLE, HDC, LPRECT); 
	typedef int    (WINAPI *DRAWCADEX)(HANDLE, LPCADDRAW); 
	typedef HANDLE (WINAPI *DRAWCADTOBITMAP)(HANDLE, LPCADDRAW); 
	typedef HANDLE (WINAPI *DRAWCADTODIB)(HANDLE, LPRECT); 
	typedef HANDLE (WINAPI *DRAWCADTOJPEG)(HANDLE, LPCADDRAW); 
	typedef HANDLE (WINAPI *DRAWCADTOGIF)(HANDLE, LPCADDRAW); 
	typedef int    (WINAPI *GETBOXCAD)(HANDLE, float*, float*); 
	typedef int    (WINAPI *GETEXTENTSCAD)(HANDLE, LPFRECT); 
	typedef int    (WINAPI *GETIS3DCAD)(HANDLE, int*); 
	typedef int    (WINAPI *GETLASTERRORCAD)(LPCSTR); 
	typedef int    (WINAPI *GETPOINTCAD)(HANDLE, LPFPOINT); 
	typedef int    (WINAPI *RESETDRAWINGBOXCAD)(HANDLE); 
	typedef BOOL   (WINAPI *SETBMSIZE)(int);  
	typedef int    (WINAPI *SETDRAWINGBOXCAD)(HANDLE, LPFRECT); 
	typedef int    (WINAPI *SETPROCESSMESSAGESCAD) (HANDLE, int); 
	typedef int    (WINAPI *SETROTATECAD)(HANDLE, float, int);		 
	typedef int    (WINAPI *SETPROGRESSPROC)(PROGRESSPROC);		 
#else 
	#ifdef CS_DLL_EXPORT 
		#define CS_API __declspec(dllexport) 
	#else 
		#define CS_API __declspec(dllimport) 
	#endif 
	extern "C" 
	{ 
//		CS_API HANDLE WINAPI CADLayer(HANDLE, DWORD, LPDXFDATA); 
		CS_API int    WINAPI CADLayerCount(HANDLE); 
	//	CS_API int    WINAPI CADLayerVisible(HANDLE, int); 
	//	CS_API int    WINAPI CADVisible(HANDLE, LPCSTR); 
		CS_API HANDLE WINAPI CreateCAD(HWND, LPCSTR); 
		CS_API int    WINAPI CloseCAD(HANDLE);	 
	//	CS_API HANDLE WINAPI CADLayout(HANDLE, int); 
	//	CS_API int    WINAPI CADLayoutName(HANDLE, DWORD, LPCSTR, DWORD); 
		CS_API int	  WINAPI CADLayoutsCount(HANDLE); 
//		CS_API BOOL   WINAPI CADLayoutVisible(HANDLE, int, BOOL, BOOL); 
		CS_API HANDLE WINAPI CurrentLayoutCAD(HANDLE, int, BOOL); 
		CS_API int	  WINAPI DefaultLayoutIndex(HANDLE); 
		CS_API int    WINAPI DrawCAD(HANDLE, HDC, LPRECT); 
		CS_API int    WINAPI DrawCADEx(HANDLE, LPCADDRAW); 
		CS_API HANDLE WINAPI DrawCADtoBitmap(HANDLE, LPCADDRAW); 
		CS_API HANDLE WINAPI DrawCADtoDIB(HANDLE, LPRECT); 
		CS_API HANDLE WINAPI DrawCADtoJpeg(HANDLE, LPCADDRAW); 
		CS_API HANDLE WINAPI DrawCADtoGif(HANDLE, LPCADDRAW); 
		CS_API int    WINAPI GetBoxCAD(HANDLE, float*, float*); 
		CS_API int    WINAPI GetExtentsCAD(HANDLE, LPFRECT); 
		CS_API int    WINAPI GetIs3dCAD(HANDLE, int*); 
		CS_API int    WINAPI GetLastErrorCAD(LPCSTR); 
		CS_API int    WINAPI GetPointCAD(HANDLE, LPFPOINT); 
	//	CS_API int   WINAPIV GetPlugInInfo(LPCSTR, LPCSTR); 
	//	CS_API int    WINAPI ResetDrawingBoxCAD(HANDLE); 
		CS_API BOOL   WINAPI SetBMSize(int); 
		CS_API int    WINAPI SetDrawingBoxCAD(HANDLE, LPFRECT); 
   //     CS_API int    WINAPI SetProcessMessagesCAD(HANDLE, int); 
		CS_API int    WINAPI SetRotateCAD(HANDLE, float, int);		 
		CS_API void   WINAPI SetReg(LPCSTR, LPCSTR); 
		CS_API void   WINAPI SetProgressProc(PROGRESSPROC); 
	} 
#endif 
 
#endif