123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447 |
- /** *************************************************************** **
- ** Radiography Detector: application interface **
- ** (c) VATech & E-Woo by S.B. **
- ** *************************************************************** **/
- #include "stdafx.h"
- #include "windows.h"
- #include "tchar.h"
- #include "VADAVIntf.h"
- #pragma comment(lib, "version.lib")
- #define NOT_AVAILABLE (int)-1
- static void iErrorMsg(const TCHAR* AMsg, int AErrCode)
- {
- TCHAR qMsg[256], qErrDescr[180];
- _tcscpy(qMsg, AMsg);
- if (AErrCode) {
- _tcscat(qMsg, _T("\n"));
- if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, AErrCode, 0,
- qErrDescr, sizeof(qErrDescr) - 1, NULL) <= 0)
- _stprintf(qErrDescr, _T("Error code #%d (%Xh)"), AErrCode, AErrCode);
- else
- _stprintf(qErrDescr + _tcslen(qErrDescr), _T(" #%d"), AErrCode);
- _tcscat(qMsg, qErrDescr);
- }; // if AErrCode
- MessageBox(NULL, qMsg, _T("X-ray detector library's load error"), MB_OK | MB_ICONSTOP);
- }
- static BOOL iGetPA(HINSTANCE AHDll, const TCHAR* AFuncName, FARPROC* AFuncRef)
- {
- #ifdef UNICODE
- char qFuncName[80];
- WideCharToMultiByte(CP_ACP, 0, AFuncName, -1, qFuncName, 79, NULL, NULL);
- *AFuncRef = GetProcAddress(AHDll, qFuncName);
- #else
- * AFuncRef = GetProcAddress(AHDll, AFuncName);
- #endif
- if (*AFuncRef)
- return TRUE;
- TCHAR qErrMsg[256];
- _tcscpy(qErrMsg, _T("Can't find exported procedure \""));
- _tcscat(qErrMsg, AFuncName); _tcscat(qErrMsg, _T("\""));
- iErrorMsg(qErrMsg, 0);
- return FALSE;
- }
- static void iDllNameDefault(TCHAR* ADllFName)
- {
- _tcscpy(ADllFName, _T("VADAV_FGM.dll"));
- #ifdef _WIN64
- _tcscpy(_tcsrchr(ADllFName, _T('.')), _T("_64.dll"));
- #endif
- }
- BOOL iDllVersionCheck(int ApiVerMajor, int ApiVerMinor, int ApiVerPatch, int ApiVerBuild,
- int DllVerMajor, int DllVerMinor, int DllVerPatch, int DllVerBuild)
- {
- BOOL qOK = TRUE;
- for (int i = 0; i < 4; i++)
- {
- switch (i)
- {
- case 0: // Version major
- if (ApiVerMajor == NOT_AVAILABLE) continue;
- else if (ApiVerMajor < DllVerMajor) return TRUE;
- else if (ApiVerMajor > DllVerMajor) return FALSE;
- else continue;
- break;
- case 1: // Version minor
- if (ApiVerMinor == NOT_AVAILABLE) continue;
- else if (ApiVerMinor < DllVerMinor) return TRUE;
- else if (ApiVerMinor > DllVerMinor) return FALSE;
- else continue;
- break;
- case 2: // Version patch
- if (ApiVerPatch == NOT_AVAILABLE) continue;
- else if (ApiVerPatch < DllVerPatch) return TRUE;
- else if (ApiVerPatch > DllVerPatch) return FALSE;
- else continue;
- break;
- case 3: // Version build
- if (ApiVerBuild == NOT_AVAILABLE) return TRUE;
- else if (ApiVerBuild < DllVerBuild) return TRUE;
- else if (ApiVerBuild > DllVerBuild) return FALSE;
- else return TRUE;
- break;
- default:
- break;
- }
- }
- return FALSE;
- }
- BOOL VADAV_MapDLL(const TCHAR* ADllFName, tVADAV_InterfaceRec* AIntfRec)
- {
- memset(AIntfRec, 0, sizeof(tVADAV_InterfaceRec));
- TCHAR qDllPath[256]; // define library file name
- TCHAR* qSaveCurrentDirectory = new TCHAR[256];
- if (ADllFName && ADllFName != (const TCHAR*)-1 && *ADllFName)
- _tcscpy(qDllPath, ADllFName);
- else { // replace module name with 'GrMxSense.dll'
- #ifdef __AFXWIN_H__
- GetModuleFileName(AfxGetInstanceHandle(), qDllPath, sizeof(qDllPath) / sizeof(TCHAR));
- #else
- GetModuleFileName(0, qDllPath, sizeof(qDllPath) / sizeof(TCHAR));
- #endif
- iDllNameDefault(_tcsrchr(qDllPath, _T('\\')) + 1);
- if ((int)GetFileAttributes(qDllPath) == -1) { // search the DLL in ./
- GetCurrentDirectory(255, qDllPath);
- int ql = (int)_tcslen(qDllPath);
- if (ql > 0 && qDllPath[ql - 1] != _T('\\')) {
- qDllPath[ql] = _T('\\');
- qDllPath[ql + 1] = 0;
- };
- iDllNameDefault(qDllPath + _tcslen(qDllPath));
- delete qSaveCurrentDirectory;
- qSaveCurrentDirectory = NULL;
- };
- }; // if ADllName
- // set working directory (in case of VaIOra.dll depends on some service libraries
- if (qSaveCurrentDirectory)
- if (_tcsstr(qDllPath, _T(".\\"))) {
- delete qSaveCurrentDirectory;
- qSaveCurrentDirectory = NULL;
- }
- else {
- GetCurrentDirectory(255, qSaveCurrentDirectory);
- TCHAR* qCh = _tcsrchr(qDllPath, _T('\\'));
- if (qCh) {
- *qCh = 0;
- SetCurrentDirectory(qDllPath);
- *qCh = _T('\\');
- };
- };
- AIntfRec->rHDLL = LoadLibrary(qDllPath); // load library
- BOOL qOk = AIntfRec->rHDLL != NULL;
- if (qSaveCurrentDirectory) {
- SetCurrentDirectory(qSaveCurrentDirectory);
- delete qSaveCurrentDirectory;
- };
- if (!qOk) {
- iErrorMsg(qDllPath, GetLastError());
- return FALSE;
- };
- // check library version
- DWORD qDllVersionSize = 0;
- TCHAR* qDllVersion;
- int verMajor, verMinor, verPatch, verBuild;
- TCHAR qLogMsg[256];
- GetModuleFileName(AIntfRec->rHDLL, qDllPath, 1024);
- qDllVersionSize = GetFileVersionInfoSize(qDllPath, 0);
- if (qDllVersionSize == 0) goto labLeave;
- qDllVersion = new TCHAR[qDllVersionSize];
- if (qDllVersion != NULL)
- {
- if (GetFileVersionInfo(qDllPath, 0, qDllVersionSize, qDllVersion) != 0)
- {
- VS_FIXEDFILEINFO* qFileInfo = NULL;
- UINT bufLen = 0;
- if (VerQueryValue(qDllVersion, _T("\\"), (LPVOID*)&qFileInfo, &bufLen) != 0)
- {
- verMajor = (int)HIWORD(qFileInfo->dwFileVersionMS);
- verMinor = (int)LOWORD(qFileInfo->dwFileVersionMS);
- verPatch = (int)HIWORD(qFileInfo->dwFileVersionLS);
- verBuild = (int)LOWORD(qFileInfo->dwFileVersionLS);
- _stprintf(qLogMsg, _T("\nLoad %s version %d.%d.%d.%d"), qDllPath, (int)verMajor, (int)verMinor, (int)verPatch, (int)verBuild);
- OutputDebugString(qLogMsg);
- }
- }
- delete[] qDllVersion;
- }
- // map imported functions
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_IsUnicode"), (FARPROC*)&AIntfRec->rVD_IsUnicode))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_DialogH"), (FARPROC*)&AIntfRec->rVD_Dialog))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_LogOpen"), (FARPROC*)&AIntfRec->rVD_LogOpen))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_LogMsg"), (FARPROC*)&AIntfRec->rVD_LogMsg))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_LogClose"), (FARPROC*)&AIntfRec->rVD_LogClose))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_LogFlush"), (FARPROC*)&AIntfRec->rVD_LogFlush))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetHomeDirectory"), (FARPROC*)&AIntfRec->rVD_GetHomeDirectory))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_IniProfSetSection"), (FARPROC*)&AIntfRec->rVD_IniProfSetSection))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_IniProfGetStr"), (FARPROC*)&AIntfRec->rVD_IniProfGetStr))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_IntParam"), (FARPROC*)&AIntfRec->rVD_IntParam))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_StrParam"), (FARPROC*)&AIntfRec->rVD_StrParam))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetFrameDim"), (FARPROC*)&AIntfRec->rVDACQ_SetFrameDim))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetFrameDim"), (FARPROC*)&AIntfRec->rVDACQ_GetFrameDim))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_Connect"), (FARPROC*)&AIntfRec->rVDACQ_Connect))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetCaptureBuf"), (FARPROC*)&AIntfRec->rVDACQ_SetCaptureBuf))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SendCommand"), (FARPROC*)&AIntfRec->rVDACQ_SendCommand))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SendCommandParam"), (FARPROC*)&AIntfRec->rVDACQ_SendCommandParam))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_StartFrame"), (FARPROC*)&AIntfRec->rVDACQ_StartFrame))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_VendorCommand"), (FARPROC*)&AIntfRec->rVDACQ_VendorCommand))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_Abort"), (FARPROC*)&AIntfRec->rVDACQ_Abort))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_Close"), (FARPROC*)&AIntfRec->rVDACQ_Close))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_Stop"), (FARPROC*)&AIntfRec->rVDACQ_Stop))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_Resume"), (FARPROC*)&AIntfRec->rVDACQ_Resume))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_Capture"), (FARPROC*)&AIntfRec->rVDACQ_Capture))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetDetectorAddr"), (FARPROC*)&AIntfRec->rVDACQ_GetDetectorAddr))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetDetectorAddr"), (FARPROC*)&AIntfRec->rVDACQ_SetDetectorAddr))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetFGRec"), (FARPROC*)&AIntfRec->rVDACQ_SetFGRec))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetFGRec"), (FARPROC*)&AIntfRec->rVDACQ_GetFGRec))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetFGFrameNum"), (FARPROC*)&AIntfRec->rVDACQ_GetFGFrameNum))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_FGFreeze"), (FARPROC*)&AIntfRec->rVDACQ_FGFreeze))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetDetectorInfo"), (FARPROC*)&AIntfRec->rVDACQ_GetDetectorInfo))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetDetectorInfo"), (FARPROC*)&AIntfRec->rVDACQ_SetDetectorInfo))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetVersionFPGA"), (FARPROC*)&AIntfRec->rVDACQ_GetVersionFPGA))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetVersionMCU"), (FARPROC*)&AIntfRec->rVDACQ_GetVersionMCU))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetSerialNumber"), (FARPROC*)&AIntfRec->rVDACQ_GetSerialNumber))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetModelName"), (FARPROC*)&AIntfRec->rVDACQ_GetModelName))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetDetectorState"), (FARPROC*)&AIntfRec->rVDACQ_GetDetectorState))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_GetImageDim"), (FARPROC*)&AIntfRec->rVDC_GetImageDim))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_CutImage"), (FARPROC*)&AIntfRec->rVDC_CutImage))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_ROIImage"), (FARPROC*)&AIntfRec->rVDC_ROIImage))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_Process"), (FARPROC*)&AIntfRec->rVDC_Process))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_Abort"), (FARPROC*)&AIntfRec->rVDC_Abort))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_Close"), (FARPROC*)&AIntfRec->rVDC_Close))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_GetCalibrationDirectory"), (FARPROC*)&AIntfRec->rVDC_GetCalibrationDirectory))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_SetCalibrationDirectory"), (FARPROC*)&AIntfRec->rVDC_SetCalibrationDirectory))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_GetImgCutParams"), (FARPROC*)&AIntfRec->rVDC_GetImgCutParams))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_SetImgCutParams"), (FARPROC*)&AIntfRec->rVDC_SetImgCutParams))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDIP_Process"), (FARPROC*)&AIntfRec->rVDIP_Process))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDIP_Abort"), (FARPROC*)&AIntfRec->rVDIP_Abort))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDIP_Close"), (FARPROC*)&AIntfRec->rVDIP_Close))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_Set_Acquisition"), (FARPROC*)&AIntfRec->rVD_Set_Acquisition))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_Set_Calibration"), (FARPROC*)&AIntfRec->rVD_Set_Calibration))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_Set_ImgProcess"), (FARPROC*)&AIntfRec->rVD_Set_ImgProcess))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetImage"), (FARPROC*)&AIntfRec->rVD_GetImage))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetImageA"), (FARPROC*)&AIntfRec->rVD_GetImageA))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetImageSP"), (FARPROC*)&AIntfRec->rVD_GetImageSP))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetImageCancel"), (FARPROC*)&AIntfRec->rVD_GetImageCancel))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_GenerateBright"), (FARPROC*)&AIntfRec->rVDC_GenerateBright))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_GenerateBPM"), (FARPROC*)&AIntfRec->rVDC_GenerateBPM))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_NoiseReduction"), (FARPROC*)&AIntfRec->rVDC_NoiseReduction))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetBinning"), (FARPROC*)&AIntfRec->rVDACQ_SetBinning))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetPartialValue"), (FARPROC*)&AIntfRec->rVDACQ_SetPartialValue))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetFrameRate"), (FARPROC*)&AIntfRec->rVDACQ_SetFrameRate))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetSensitivity"), (FARPROC*)&AIntfRec->rVDACQ_SetSensitivity))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetOneShot"), (FARPROC*)&AIntfRec->rVDACQ_SetOneShot))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetDynamic_Trigger"), (FARPROC*)&AIntfRec->rVDACQ_SetDynamic_Trigger))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetOneShot_Trigger"), (FARPROC*)&AIntfRec->rVDACQ_SetOneShot_Trigger))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetRFMode"), (FARPROC*)&AIntfRec->rVDACQ_SetRFMode))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_SetRecursiveFilter"), (FARPROC*)&AIntfRec->rVDC_SetRecursiveFilter))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_SetDigitalGain"), (FARPROC*)&AIntfRec->rVDC_SetDigitalGain))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetBinning"), (FARPROC*)&AIntfRec->rVDACQ_GetBinning))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetPartialValue"), (FARPROC*)&AIntfRec->rVDACQ_GetPartialValue))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetFrameRate"), (FARPROC*)&AIntfRec->rVDACQ_GetFrameRate))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetSensitivity"), (FARPROC*)&AIntfRec->rVDACQ_GetSensitivity))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetOneShot"), (FARPROC*)&AIntfRec->rVDACQ_GetOneShot))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetDynamic_Trigger"), (FARPROC*)&AIntfRec->rVDACQ_GetDynamic_Trigger))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetOneShot_Trigger"), (FARPROC*)&AIntfRec->rVDACQ_GetOneShot_Trigger))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetRFMode"), (FARPROC*)&AIntfRec->rVDACQ_GetRFMode))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_GetRecursiveFilter"), (FARPROC*)&AIntfRec->rVDC_GetRecursiveFilter))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_GetDigitalGain"), (FARPROC*)&AIntfRec->rVDC_GetDigitalGain))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_FreeResource"), (FARPROC*)&AIntfRec->rVD_FreeResource))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetDark"), (FARPROC*)&AIntfRec->rVD_GetDark))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetDark_Forced"), (FARPROC*)&AIntfRec->rVD_GetDark_Forced))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetBright"), (FARPROC*)&AIntfRec->rVD_GetBright))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetBright2"), (FARPROC*)&AIntfRec->rVD_GetBright2))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_Grab"), (FARPROC*)&AIntfRec->rVD_Grab))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetCaptureBuf"), (FARPROC*)&AIntfRec->rVDACQ_SetCaptureBuf))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_RegisterCallbackInfo"), (FARPROC*)&AIntfRec->rVD_RegisterCallbackInfo))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDC_CalDir"), (FARPROC*)&AIntfRec->rVDC_CalDir))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_IniSave"), (FARPROC*)&AIntfRec->rVD_IniSave))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SecondCtrl"), (FARPROC*)&AIntfRec->rVDACQ_SecondCtrl))
- goto labLeave;
- if (iDllVersionCheck(6272, NOT_AVAILABLE, 21316, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetCaptureExposureTime"), (FARPROC*)&AIntfRec->rVDACQ_GetCaptureExposureTime))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetCaptureExposureTime"), (FARPROC*)&AIntfRec->rVDACQ_SetCaptureExposureTime))
- goto labLeave;
- }
- if (iDllVersionCheck(6272, NOT_AVAILABLE, 22136, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_ModeLock"), (FARPROC*)&AIntfRec->rVDACQ_ModeLock))
- goto labLeave;
- }
- if (iDllVersionCheck(6273, NOT_AVAILABLE, 22176, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_IntgTimeCalibration"), (FARPROC*)&AIntfRec->rVD_IntgTimeCalibration))
- goto labLeave;
- }
- if (iDllVersionCheck(6273, NOT_AVAILABLE, 22194, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_GetCaptureWaitTime"), (FARPROC*)&AIntfRec->rVDACQ_GetCaptureWaitTime))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_SetCaptureWaitTime"), (FARPROC*)&AIntfRec->rVDACQ_SetCaptureWaitTime))
- goto labLeave;
- }
- if (iDllVersionCheck(6273, NOT_AVAILABLE, 22251, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetDetectorMode"), (FARPROC*)&AIntfRec->rVD_GetDetectorMode))
- goto labLeave;
- }
- if (iDllVersionCheck(6273, NOT_AVAILABLE, 22333, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GenerateBPM"), (FARPROC*)&AIntfRec->rVD_GenerateBPM))
- goto labLeave;
- }
- if (iDllVersionCheck(6273, NOT_AVAILABLE, 23005, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_DarkReloadInAcquisition"), (FARPROC*)&AIntfRec->rVDACQ_DarkReloadInAcquisition))
- goto labLeave;
- }
- if (iDllVersionCheck(6275, NOT_AVAILABLE, 23187, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetVersionVADAV"), (FARPROC*)&AIntfRec->rVD_GetVersionVADAV))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetVersionVACAL"), (FARPROC*)&AIntfRec->rVD_GetVersionVACAL))
- goto labLeave;
- if (!iGetPA(AIntfRec->rHDLL, _T("VD_GetVersionView16"), (FARPROC*)&AIntfRec->rVD_GetVersionView16))
- goto labLeave;
- }
- if (iDllVersionCheck(6275, NOT_AVAILABLE, 24102, NOT_AVAILABLE, verMajor, verMinor, verPatch, verBuild))
- {
- if (!iGetPA(AIntfRec->rHDLL, _T("VDACQ_Capture2"), (FARPROC*)&AIntfRec->rVDACQ_Capture2))
- goto labLeave;
- }
- //void(_stdcall *rVD_ResigterCallbackInfo)(void *);
- // check Unicode
- if (AIntfRec->rVD_IsUnicode() != (BOOL)(sizeof(TCHAR) != sizeof(char))) {
- iErrorMsg(_T("UNICODE/MBCS does not match"), 0);
- qOk = FALSE;
- goto labLeave;
- };
- // success
- qOk = TRUE;
- // leave
- labLeave:
- if (!qOk)
- VADAV_ReleaseDLL(AIntfRec);
- return qOk;
- }
- void VADAV_ReleaseDLL(tVADAV_InterfaceRec* AIntfRec)
- {
- AIntfRec->rVD_FreeResource();
- if (AIntfRec->rHDLL) {
- FreeLibrary(AIntfRec->rHDLL);
- AIntfRec->rHDLL = NULL;
- };
- }
|