#pragma once interface IAutoLightControl2Paraent { virtual void IALC2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...) = 0; virtual BOOL IALC2P_ChangeLightLevel(int nIndex, double dLightLevel) = 0; virtual BOOL IALC2P_GetCurrentLightLevel(int nIndex, double& dLight, double& dLightLevel) = 0; virtual void IALC2P_ProcessEnd(int nIndex, int nResultCode, double dLightValue, double dLightLevel) = 0; virtual void IALC2P_CurrentResult(int nIndex, int nCount, int nResultCode, double dLightValue, double dLightLevel) = 0; }; enum AutoLight_Result { LightLevelBright=0, LightLevelDark, LightProcessFail, LightNoProcess, LightProcessComplete, LightChangeLevel }; struct SAutoLightParam { SAutoLightParam() { Reset(); } void Reset() { bAutoProcess = FALSE; nProcessMax = 10; dLightLevelMin = 1; dLightLevelMax = 255; dTargetMin = 100; dTargetMax = 120; nControlDealy = 100;// ms } BOOL bAutoProcess; int nProcessMax; double dLightLevelMin; double dLightLevelMax; double dTargetMin; double dTargetMax; UINT nControlDealy; }; struct SAutoLightResult { SAutoLightResult() { Reset(); } void Reset() { nProcessCount = 0; nResultCode = LightNoProcess; dLightValue = 0.0; dLightLevel = 0.0; } int nProcessCount; int nResultCode; double dLightValue; double dLightLevel; };