123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- #ifdef LASER
- #include <windows.h>
- #include "ld32.h"
- static HINSTANCE hDll;
- LONG (WINAPI *_LoadPalette)(LPSTR ColorFilename, LPLONG RETURN_LDStatus);
- LONG (WINAPI *_WritePoint)(LONG PointNumber, PTSTRUCT *SUPPLY_PtStruct);
- LONG (WINAPI *_InitialQMCheck)(LPLONG RETURN_LDStatus);
- LONG (WINAPI *_DisplayUpdate)(void);
- LONG (WINAPI *_DisplayBufferStatus)(LONG *RETURN_BufferIsFree, LONG *RETURN_CurrentOutputPoints);
- LONG (WINAPI *_DisplayFrame)(LONG Frame);
- LONG (WINAPI *_WriteFrameEx)(FRAMESTRUCTEX *SUPPLY_FrameStruct, PTSTRUCT *SUPPLY_PointArray);
- LONG (WINAPI *_SetWorkingScanners)(LONG Scanner);
- LONG (WINAPI *_SetWorkingTracks)(LONG Track);
- LONG (WINAPI *_SetWorkingFrame)(LONG FrameNumber);
- LONG (WINAPI *_BeginSessionEx)(LPLONG RETURN_Version, LPLONG RETURN_MaxFrames, LPLONG RETURN_MaxPoints, LPLONG RETURN_MaxBuffer, LPLONG RETURN_UndoFrames, LPLONG RETURN_LDStatus);
- LONG (WINAPI *_DisplayFlags)(LONG Flags);
- LONG (WINAPI *_EndSession)(void);
- LONG (WINAPI *_GetLDDLLModuleUsage)(LPLONG ModuleUsage);
- LONG (WINAPI *_ResetLD)(void);
- LONG (WINAPI *_ReadProjectionZone)(LONG ZoneNumber, PROJECTIONZONE *RETURN_PZ);
- LONG (WINAPI *_OpenLDCommWindow)(void);
- LONG (WINAPI *_DisplayProjectionZones)(long ProjectionZoneCode);
- LONG WINAPI InitialQMCheck(LPLONG RETURN_LDStatus)
- {
- hDll=LoadLibrary("ld2000.dll");
- if (!hDll)
- {
- *RETURN_LDStatus=1;
- return 1;
- }
- #define RETR(x) *((void**)&_##x)=(void*)GetProcAddress(hDll,#x); if (!_##x) { FreeLibrary(hDll); hDll=0; *RETURN_LDStatus=1; return 1; }
-
-
-
- RETR(ReadProjectionZone);
- RETR(InitialQMCheck);
- RETR(DisplayUpdate);
- RETR(DisplayBufferStatus);
- RETR(DisplayFrame);
- RETR(WriteFrameEx);
- RETR(WritePoint);
- RETR(SetWorkingScanners);
- RETR(LoadPalette);
- RETR(SetWorkingTracks);
- RETR(SetWorkingFrame);
- RETR(EndSession);
- RETR(BeginSessionEx);
- RETR(DisplayFlags);
- RETR(ResetLD);
- RETR(OpenLDCommWindow);
- RETR(GetLDDLLModuleUsage);
- RETR(DisplayProjectionZones);
- return _InitialQMCheck(RETURN_LDStatus);
- }
- LONG WINAPI DisplayProjectionZones(long ProjectionZoneCode)
- {
- return _DisplayProjectionZones(ProjectionZoneCode);
- }
- LONG WINAPI ReadProjectionZone(LONG ZoneNumber, PROJECTIONZONE *RETURN_PZ)
- {
- if (!hDll||!_ReadProjectionZone) return 1;
- return _ReadProjectionZone(ZoneNumber,RETURN_PZ);
- }
- LONG WINAPI DisplayBufferStatus(LONG *RETURN_BufferIsFree, LONG *RETURN_CurrentOutputPoints)
- {
- return _DisplayBufferStatus(RETURN_BufferIsFree,RETURN_CurrentOutputPoints);
- }
- LONG WINAPI DisplayUpdate(void)
- {
- return _DisplayUpdate();
- }
- LONG WINAPI DisplayFrame(LONG Frame)
- {
- return _DisplayFrame(Frame);
- }
- LONG WINAPI WriteFrameEx(FRAMESTRUCTEX *SUPPLY_FrameStruct, PTSTRUCT *SUPPLY_PointArray)
- {
- return _WriteFrameEx(SUPPLY_FrameStruct,SUPPLY_PointArray);
- }
- LONG WINAPI SetWorkingScanners(LONG Scanner)
- {
- return _SetWorkingScanners(Scanner);
- }
- LONG WINAPI SetWorkingTracks(LONG Track)
- {
- return _SetWorkingTracks(Track);
- }
- LONG WINAPI SetWorkingFrame(LONG FrameNumber)
- {
- return _SetWorkingFrame(FrameNumber);
- }
- LONG WINAPI OpenLDCommWindow(void)
- {
- return _OpenLDCommWindow();
- }
- LONG WINAPI EndSession(void)
- {
- return _EndSession();
- }
- LONG WINAPI LoadPalette(LPSTR ColorFilename, LPLONG RETURN_LDStatus)
- {
- return _LoadPalette(ColorFilename,RETURN_LDStatus);
- }
- LONG WINAPI WritePoint(LONG PointNumber, PTSTRUCT *SUPPLY_PtStruct)
- {
- return _WritePoint(PointNumber,SUPPLY_PtStruct);
- }
- LONG WINAPI GetLDDLLModuleUsage(LPLONG ModuleUsage)
- {
- return _GetLDDLLModuleUsage(ModuleUsage);
- }
- LONG WINAPI ResetLD()
- {
- return _ResetLD();
- }
- LONG WINAPI BeginSessionEx(LPLONG RETURN_Version, LPLONG RETURN_MaxFrames, LPLONG RETURN_MaxPoints, LPLONG RETURN_MaxBuffer, LPLONG RETURN_UndoFrames, LPLONG RETURN_LDStatus)
- {
- return _BeginSessionEx(
- RETURN_Version, RETURN_MaxFrames,
- RETURN_MaxPoints, RETURN_MaxBuffer,
- RETURN_UndoFrames,RETURN_LDStatus);
- }
- LONG WINAPI DisplayFlags(LONG Flags)
- {
- return _DisplayFlags(Flags);
- }
- void LaserQuit()
- {
- if (hDll) FreeLibrary(hDll);
- hDll=0;
- _InitialQMCheck=0;
- }
- #endif
|