📄 relctrldlg.cpp
字号:
case cdFLASH_MODE_OFF: index = m_CFlash.AddString( "Off" ); break;
case cdFLASH_MODE_AUTO: index = m_CFlash.AddString( "Auto" ); break;
case cdFLASH_MODE_ON: index = m_CFlash.AddString( "On" ); break;
case cdFLASH_MODE_RED_EYE: index = m_CFlash.AddString( "Red Eye" ); break;
case cdFLASH_MODE_SLOW_SYNC: index = m_CFlash.AddString( "Slow Sync." ); break;
case cdFLASH_MODE_AUTO_PLUS_RED_EYE: index = m_CFlash.AddString( "Auto (Red Eye)" ); break;
case cdFLASH_MODE_ON_PLUS_RED_EYE: index = m_CFlash.AddString( "On (Red Eye)" ); break;
case cdFLASH_MODE_NA: index = m_CFlash.AddString( "(NA)" ); break;
default: index = m_CFlash.AddString( "(Error)" );
};
m_CFlash.SetItemData( index, PossibleValue );
if(PossibleValue == CurrValue)
{
// Set current setting to edit control of Combo box
m_CFlash.SetCurSel( index );
}
}
err = CDEnumFlashSettingRelease(hEnumPossibleValue);
hEnumPossibleValue = NULL;
if(err) goto camerr;
m_CFlash.EnableWindow( TRUE );
return;
camerr:
if(hEnumPossibleValue)
{
CDEnumFlashSettingRelease(hEnumPossibleValue);
}
if(err != cdNOT_SUPPORTED){
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
}
return;
}
void CRelCtrlDlg::SetISOSpeedBox()
{
//
// Update ISO Combo Box
//
cdError err = cdOK;
cdRelCamSettingID TargetSettingID = cdREL_SET_ISO_SPEED_RATINGS;
cdUInt16 CurrValue = cdREL_VAL_ISO_NA;
cdUInt16 PossibleValue = cdREL_VAL_ISO_NA;
cdHEnum hEnumCamSetting = NULL;
cdHEnum hEnumPossibleValue = NULL;
cdUInt32 BufSize = 0;
cdRelCamSettingStruct relStruct;
memset(&relStruct, 0, sizeof(relStruct));
if( !m_CISOSpeed.IsWindowVisible() )
{
return;
}
m_CISOSpeed.EnableWindow( FALSE );
// Remove all items from the list box.
m_CISOSpeed.ResetContent();
//
// Check whether the camera supports the ISO setting.
err = CDEnumRelCamSettingReset( m_hSource, &hEnumCamSetting);
if(err) goto camerr;
while( (err = CDEnumRelCamSettingNext(hEnumCamSetting, &relStruct) )== cdOK)
{
if(relStruct.SettingID != TargetSettingID)
{
continue;
}
// Camera supports ISO setting. //
BufSize = sizeof(CurrValue);
// Get current setting for default value.
err = CDGetRelCamSettingData(m_hSource, TargetSettingID, &BufSize, &CurrValue);
if(err) goto camerr;
//
// Get all ISO values which can be set to camera,
// and set the list box.
err = CDEnumRelCamSettingDataReset(m_hSource, TargetSettingID, &hEnumPossibleValue, &BufSize);
if(err) goto camerr;
if(BufSize == sizeof(PossibleValue))
{
while( (err = CDEnumRelCamSettingDataNext(hEnumPossibleValue, sizeof(PossibleValue), &PossibleValue) ) == cdOK)
{
int index;
switch(PossibleValue){
case cdREL_VAL_ISO_AUTO: index = m_CISOSpeed.AddString( "AUTO" ); break;
case cdREL_VAL_ISO_6: index = m_CISOSpeed.AddString( "6" ); break;
case cdREL_VAL_ISO_8: index = m_CISOSpeed.AddString( "8" ); break;
case cdREL_VAL_ISO_10: index = m_CISOSpeed.AddString( "10" ); break;
case cdREL_VAL_ISO_12: index = m_CISOSpeed.AddString( "12" ); break;
case cdREL_VAL_ISO_16: index = m_CISOSpeed.AddString( "16" ); break;
case cdREL_VAL_ISO_20: index = m_CISOSpeed.AddString( "20" ); break;
case cdREL_VAL_ISO_25: index = m_CISOSpeed.AddString( "25" ); break;
case cdREL_VAL_ISO_32: index = m_CISOSpeed.AddString( "32" ); break;
case cdREL_VAL_ISO_40: index = m_CISOSpeed.AddString( "40" ); break;
case cdREL_VAL_ISO_50: index = m_CISOSpeed.AddString( "50" ); break;
case cdREL_VAL_ISO_64: index = m_CISOSpeed.AddString( "64" ); break;
case cdREL_VAL_ISO_80: index = m_CISOSpeed.AddString( "80" ); break;
case cdREL_VAL_ISO_100: index = m_CISOSpeed.AddString( "100" ); break;
case cdREL_VAL_ISO_125: index = m_CISOSpeed.AddString( "125" ); break;
case cdREL_VAL_ISO_160: index = m_CISOSpeed.AddString( "160" ); break;
case cdREL_VAL_ISO_200: index = m_CISOSpeed.AddString( "200" ); break;
case cdREL_VAL_ISO_250: index = m_CISOSpeed.AddString( "250" ); break;
case cdREL_VAL_ISO_320: index = m_CISOSpeed.AddString( "320" ); break;
case cdREL_VAL_ISO_400: index = m_CISOSpeed.AddString( "400" ); break;
case cdREL_VAL_ISO_500: index = m_CISOSpeed.AddString( "500" ); break;
case cdREL_VAL_ISO_640: index = m_CISOSpeed.AddString( "640" ); break;
case cdREL_VAL_ISO_800: index = m_CISOSpeed.AddString( "800" ); break;
case cdREL_VAL_ISO_1000: index = m_CISOSpeed.AddString( "1000" ); break;
case cdREL_VAL_ISO_1250: index = m_CISOSpeed.AddString( "1250" ); break;
case cdREL_VAL_ISO_1600: index = m_CISOSpeed.AddString( "1600" ); break;
case cdREL_VAL_ISO_2000: index = m_CISOSpeed.AddString( "2000" ); break;
case cdREL_VAL_ISO_2500: index = m_CISOSpeed.AddString( "2500" ); break;
case cdREL_VAL_ISO_3200: index = m_CISOSpeed.AddString( "3200" ); break;
case cdREL_VAL_ISO_4000: index = m_CISOSpeed.AddString( "4000" ); break;
case cdREL_VAL_ISO_5000: index = m_CISOSpeed.AddString( "5000" ); break;
case cdREL_VAL_ISO_6400: index = m_CISOSpeed.AddString( "6400" ); break;
case 0xffff: index = m_CISOSpeed.AddString( "(Invalid)" ); break;
default: index = m_CISOSpeed.AddString( "(Error)" );
};
m_CISOSpeed.SetItemData( index, PossibleValue );
if(PossibleValue == CurrValue)
{
// Set current setting to edit control of Combo box
m_CISOSpeed.SetCurSel( index );
}
}
m_CISOSpeed.EnableWindow( TRUE );
}
err = CDEnumRelCamSettingDataRelease(hEnumPossibleValue);
hEnumPossibleValue = NULL;
if(err) goto camerr;
break;
}
err = CDEnumRelCamSettingRelease(hEnumCamSetting);
hEnumCamSetting = NULL;
if(err) goto camerr;
return;
camerr:
if(hEnumPossibleValue)
{
CDEnumRelCamSettingDataRelease(hEnumPossibleValue);
}
if(hEnumCamSetting)
{
CDEnumRelCamSettingRelease(hEnumCamSetting);
}
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
return;
}
void CRelCtrlDlg::SetPhotoEffectBox()
{
//
// Update Photo Effect Combo Box
//
cdError err = cdOK;
cdRelCamSettingID TargetSettingID = cdREL_SET_PHOTO_EFFECT;
cdPhotoEffect CurrValue = cdPHOTO_EFFECT_UNKNOWN;
cdPhotoEffect PossibleValue = cdPHOTO_EFFECT_UNKNOWN;
cdHEnum hEnumCamSetting = NULL;
cdHEnum hEnumPossibleValue = NULL;
cdUInt32 BufSize = 0;
cdRelCamSettingStruct relStruct;
memset(&relStruct, 0, sizeof(relStruct));
if( !m_CPhotoEffect.IsWindowVisible() )
{
return;
}
m_CPhotoEffect.EnableWindow( FALSE );
// Remove all items from the list box.
m_CPhotoEffect.ResetContent();
//
// Check whether the camera supports the Photo Effect setting.
err = CDEnumRelCamSettingReset( m_hSource, &hEnumCamSetting);
if(err) goto camerr;
while( (err = CDEnumRelCamSettingNext(hEnumCamSetting, &relStruct) )== cdOK)
{
if(relStruct.SettingID != TargetSettingID)
{
continue;
}
// Camera supports Photo Effect setting. //
BufSize = sizeof(CurrValue);
// Get current setting for default value.
err = CDGetRelCamSettingData(m_hSource, TargetSettingID, &BufSize, &CurrValue);
if(err) goto camerr;
//
// Get all Photo Effect settings which can be set to camera,
// and set the list box.
err = CDEnumRelCamSettingDataReset(m_hSource, TargetSettingID, &hEnumPossibleValue, &BufSize);
if(err)goto camerr;
if(BufSize == sizeof(PossibleValue))
{
while( (err = CDEnumRelCamSettingDataNext(hEnumPossibleValue, sizeof(PossibleValue), &PossibleValue) ) == cdOK)
{
int index;
switch(PossibleValue){
case cdPHOTO_EFFECT_OFF: index = m_CPhotoEffect.AddString( "Off" ); break;
case cdPHOTO_EFFECT_VIVID: index = m_CPhotoEffect.AddString( "Vivid" ); break;
case cdPHOTO_EFFECT_NEUTRAL: index = m_CPhotoEffect.AddString( "Neutral" ); break;
case cdPHOTO_EFFECT_LOW_SHARPENING: index = m_CPhotoEffect.AddString( "Low Sharpening" ); break;
case cdPHOTO_EFFECT_SEPIA: index = m_CPhotoEffect.AddString( "Sepia" ); break;
case cdPHOTO_EFFECT_BW: index = m_CPhotoEffect.AddString( "BW" ); break;
case cdPHOTO_EFFECT_CUSTOM: index = m_CPhotoEffect.AddString( "Custom" ); break;
case cdPHOTO_EFFECT_UNKNOWN: index = m_CPhotoEffect.AddString( "(Unknown)" ); break;
default: index = m_CPhotoEffect.AddString( "(Error)" );
};
m_CPhotoEffect.SetItemData( index, PossibleValue );
if(PossibleValue == CurrValue)
{
// Set current setting to edit control of Combo box
m_CPhotoEffect.SetCurSel( index );
}
}
m_CPhotoEffect.EnableWindow( TRUE );
}
err = CDEnumRelCamSettingDataRelease(hEnumPossibleValue);
hEnumPossibleValue = NULL;
if(err) goto camerr;
break;
}
err = CDEnumRelCamSettingRelease(hEnumCamSetting);
hEnumCamSetting = NULL;
if(err) goto camerr;
return;
camerr:
if(hEnumPossibleValue)
{
CDEnumRelCamSettingDataRelease(hEnumPossibleValue);
}
if(hEnumCamSetting)
{
CDEnumRelCamSettingRelease(hEnumCamSetting);
}
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
return;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CRelCtrlDlg::OnSelchangeShootingMode()
{
cdShootingMode ShootingMode = (cdShootingMode)m_CShootingMode.GetItemData( m_CShootingMode.GetCurSel() );
cdError err = CDSetShootingMode(m_hSource, ShootingMode);
if( err ) goto camerr;
// Update other Combo Box
SetExpoCompBox();
SetFlashBox();
SetISOSpeedBox();
SetPhotoEffectBox();
GetCameraInformation();
return;
camerr:
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
}
void CRelCtrlDlg::OnSelchangeExpoComp()
{
cdCompensation Comp = (cdCompensation)m_CExpoComp.GetItemData( m_CExpoComp.GetCurSel() );
cdError err = CDSetExposureComp(m_hSource, Comp);
if( err ) goto camerr;
// Update other Combo Box
SetShootingModeBox();
SetISOSpeedBox();
SetPhotoEffectBox();
SetFlashBox();
GetCameraInformation();
return;
camerr:
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
}
void CRelCtrlDlg::OnSelchangeFlash()
{
cdFlashMode FlashMode = (cdFlashMode)m_CFlash.GetItemData( m_CFlash.GetCurSel() );
cdError err = CDSetFlashSetting(m_hSource, FlashMode, cdCOMP_NA);
if( err ) goto camerr;
// Update other Combo Box
SetShootingModeBox();
SetExpoCompBox();
SetISOSpeedBox();
SetPhotoEffectBox();
GetCameraInformation();
return;
camerr:
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
}
void CRelCtrlDlg::OnSelchangeISOSpeed()
{
cdUInt16 ISOValue = (cdUInt16)m_CISOSpeed.GetItemData( m_CISOSpeed.GetCurSel() );
cdError err = CDSetRelCamSettingData(m_hSource, cdREL_SET_ISO_SPEED_RATINGS, sizeof(ISOValue), &ISOValue);
if( err ) goto camerr;
// Update other Combo Box
SetShootingModeBox();
SetExpoCompBox();
SetFlashBox();
SetPhotoEffectBox();
GetCameraInformation();
return;
camerr:
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
}
void CRelCtrlDlg::OnSelchangePhotoEffect()
{
cdPhotoEffect PhotoEffect = (cdPhotoEffect)m_CPhotoEffect.GetItemData( m_CPhotoEffect.GetCurSel() );
cdError err = CDSetRelCamSettingData(m_hSource, cdREL_SET_PHOTO_EFFECT, sizeof(PhotoEffect), &PhotoEffect);
if( err ) goto camerr;
// Update other Combo Box
SetShootingModeBox();
SetExpoCompBox();
SetFlashBox();
SetISOSpeedBox();
GetCameraInformation();
return;
camerr:
char szErrStr[256];
wsprintf( szErrStr, "ErrorCode = 0x%08X", err );
MessageBox( szErrStr );
}
void CRelCtrlDlg::ShowReleaseParam(char* modelName)
{
int cmdshow;
if( modelName == NULL ||
!stricmp(modelName, "") ||
!stricmp(modelName, "PowerShot G1") ||
!stricmp(modelName, "PowerShot G2") ||
!stricmp(modelName, "PowerShot Pro90 IS") ||
!stricmp(modelName, "PowerShot S30") ||
!stricmp(modelName, "PowerShot S40") ||
!stricmp(modelName, "IXY DIGITAL") ||
!stricmp(modelName, "PowerShot S100") ||
!stricmp(modelName, "DIGITAL IXUS") ||
!stricmp(modelName, "IXY DIGITAL 300") ||
!stricmp(modelName, "PowerShot S300") ||
!stricmp(modelName, "DIGITAL IXUS 300") ||
!stricmp(modelName, "IXY DIGITAL 200") ||
!stricmp(modelName, "PowerShot S110") ||
!stricmp(modelName, "DIGITAL IXUS v") ||
!stricmp(modelName, "IXY DIGITAL 300a") ||
!stricmp(modelName, "PowerShot S300a") ||
!stricmp(modelName, "DIGITAL IXUS 330") ||
!stricmp(modelName, "IXY DIGITAL 200a") ||
!stricmp(modelName, "PowerShot S200") ||
!stricmp(modelName, "DIGITAL IXUS v2") ||
!stricmp(modelName, "PowerShot A10") ||
!stricmp(modelName, "PowerShot A20") ||
!stricmp(modelName, "PowerShot A30") ||
!stricmp(modelName, "PowerShot A40") ||
!stricmp(modelName, "PowerShot A100") ||
!stricmp(modelName, "PowerShot A200") ||
!stricmp(modelName, "EOS D30") ||
!stricmp(modelName, "EOS D60") ||
!stricmp(modelName, "EOS-1Ds") ||
!stricmp(modelName, "EOS-1D")
)
{
cmdshow = SW_HIDE;
}
else
{
cmdshow = SW_SHOW;
}
m_CShootingMode.ShowWindow(cmdshow);
m_CExpoComp.ShowWindow(cmdshow);
m_CFlash.ShowWindow(cmdshow);
m_CISOSpeed.ShowWindow(cmdshow);
m_CPhotoEffect.ShowWindow(cmdshow);
m_Static_ShootingMode.ShowWindow(cmdshow);
m_Static_ExpoComp.ShowWindow(cmdshow);
m_Static_Flash.ShowWindow(cmdshow);
m_Static_ISOSpeed.ShowWindow(cmdshow);
m_Static_PhotoEffect.ShowWindow(cmdshow);
m_Static_ReleaseParam.ShowWindow(cmdshow);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -