📄 routines.bas
字号:
End If
If intImageType And 4 Then
If intCounter > 0 Then
strWorkingLegend = strWorkingLegend & "; 256 Shades of Gray"
Else
strWorkingLegend = "256 Shades of Gray"
End If
intCounter = intCounter + 1
End If
If intImageType And 8 Then
If intCounter > 0 Then
strWorkingLegend = strWorkingLegend & "; 256 Colors"
Else
strWorkingLegend = "256 Colors"
End If
intCounter = intCounter + 1
End If
If intImageType And 16 Then
If intCounter > 0 Then
strWorkingLegend = strWorkingLegend & "; True Color (24-bit)"
Else
strWorkingLegend = "True Color (24-bit)"
End If
intCounter = intCounter + 1
End If
If intImageType And 32 Then
If intCounter > 0 Then
strWorkingLegend = strWorkingLegend & "; High Color (16-bit)"
Else
strWorkingLegend = "High Color (16-bit)"
End If
intCounter = intCounter + 1
End If
GetImageTypeLegend = strWorkingLegend
End Function
Public Sub GetRangeOfCapabilities()
'**************************************************************
' PUBLIC SUB GetRangeOfCapabilities: Get the range of
' capabilities for a scanner. These are implicit to the
' scanner, and do not change during a scanning session.
' Because they don't change, you should get them once and store
' the values. Note that if a specific capability is not
' supported by the scanner, a variant containing VT_ERROR (in
' Visual Basic's case, vbError) is returned. This differs
' from the behavior of capability values 100 and above, where
' if a specific capability is not supported, an error is
' thrown.
'**************************************************************
'** Integers
Dim intIndex As Integer
'** Variants
Dim vntImageTypesAvailable As Variant
Dim vntImageLayout As Variant
Dim vntMaxHeight As Variant
Dim vntMaxWidth As Variant
Dim vntMinResolution As Variant
Dim vntMaxResolution As Variant
Dim vntResolutionStep As Variant
Dim vntMinBrightness As Variant
Dim vntMaxBrightness As Variant
Dim vntBrightnessStep As Variant
Dim vntAutoBrightness As Variant
Dim vntMinContrast As Variant
Dim vntMaxContrast As Variant
Dim vntContrastStep As Variant
Dim vntAutoContrast As Variant
Dim vntADFAvailable As Variant
Dim vntMaxHeightADF As Variant
On Error GoTo ScanError
'----------------------------------------------------------
' Open the scanner.
'----------------------------------------------------------
frmMain.ImgScan1.OpenScanner
'----------------------------------------------------------
' Get Image Types Available (1).
'----------------------------------------------------------
For intIndex = 0 To 6
gblnImageTypesAvailable(intIndex) = False
Next intIndex
vntImageTypesAvailable = frmMain.ImgScan1.GetScanCapability(1) 'Image Types Available
If VarType(vntImageTypesAvailable) = vbError Then
gblnGetImageTypesAvailableSupported = False
gblnImageTypesAvailable(6) = True
Else
gblnGetImageTypesAvailableSupported = True
gintImageTypesAvailable = CInt(vntImageTypesAvailable)
End If
If gintImageTypesAvailable = 0 Then 'Unknown
gblnImageTypesAvailable(6) = True
End If
If gintImageTypesAvailable And 1 Then 'Black and White
gblnImageTypesAvailable(0) = True
End If
If gintImageTypesAvailable And 2 Then '16 Shades of Gray
gblnImageTypesAvailable(1) = True
End If
If gintImageTypesAvailable And 4 Then '256 Shades of Gray
gblnImageTypesAvailable(2) = True
End If
If gintImageTypesAvailable And 8 Then '256 Colors
gblnImageTypesAvailable(3) = True
End If
If gintImageTypesAvailable And 16 Then 'True Color (24-bit)
gblnImageTypesAvailable(4) = True
End If
If gintImageTypesAvailable And 32 Then 'High Color (16-bit)
gblnImageTypesAvailable(5) = True
End If
'----------------------------------------------------------
' Get Maximum Height (2).
'----------------------------------------------------------
vntMaxHeight = frmMain.ImgScan1.GetScanCapability(2)
If VarType(vntMaxHeight) = vbError Then
gblnGetMaxHeightSupported = False
Else
gblnGetMaxHeightSupported = True
gsngMaxHeight = CSng(vntMaxHeight)
End If
'----------------------------------------------------------
' Get Maximum Width (4).
'----------------------------------------------------------
vntMaxWidth = frmMain.ImgScan1.GetScanCapability(4)
If VarType(vntMaxWidth) = vbError Then
gblnGetMaxWidthSupported = False
Else
gblnGetMaxWidthSupported = True
gsngMaxWidth = CSng(vntMaxWidth)
End If
'----------------------------------------------------------
' Get Minimum Resolution (5).
'----------------------------------------------------------
vntMinResolution = frmMain.ImgScan1.GetScanCapability(5) 'Min Resolution
If VarType(vntMinResolution) = vbError Then
gblnGetMinResolutionSupported = False
Else
gblnGetMinResolutionSupported = True
glngMinResolution = CLng(vntMinResolution)
End If
'----------------------------------------------------------
' Get Maximum Resolution (6).
'----------------------------------------------------------
vntMaxResolution = frmMain.ImgScan1.GetScanCapability(6) 'Max Resolution
If VarType(vntMaxResolution) = vbError Then
gblnGetMaxResolutionSupported = False
Else
gblnGetMaxResolutionSupported = True
glngMaxResolution = CLng(vntMaxResolution)
End If
'----------------------------------------------------------
' Get Resolution Step (7).
'----------------------------------------------------------
vntResolutionStep = frmMain.ImgScan1.GetScanCapability(7) 'Resolution Step
If VarType(vntResolutionStep) = vbError Then
gblnGetResolutionStepSupported = False
Else
gblnGetResolutionStepSupported = True
If VarType(vntResolutionStep) = vbArray Then
gblnResolutionStepArray = True
gvntResolutionStep = vntResolutionStep
Else
gblnResolutionStepArray = False
glngResolutionStep = CLng(vntResolutionStep)
End If
End If
'----------------------------------------------------------
' Get Minimum Brightness (8).
'----------------------------------------------------------
vntMinBrightness = frmMain.ImgScan1.GetScanCapability(8) 'Min Brightness
If VarType(vntMinBrightness) = vbError Then
gblnGetMinBrightnessSupported = False
Else
gblnGetMinBrightnessSupported = True
glngMinBrightness = CLng(vntMinBrightness)
End If
'----------------------------------------------------------
' Get Maximum Brightness (9).
'----------------------------------------------------------
vntMaxBrightness = frmMain.ImgScan1.GetScanCapability(9) 'Max Brightness
If VarType(vntMaxBrightness) = vbError Then
gblnGetMaxBrightnessSupported = False
Else
gblnGetMaxBrightnessSupported = True
glngMaxBrightness = CLng(vntMaxBrightness)
End If
'----------------------------------------------------------
' Get Brightness Step (10).
'----------------------------------------------------------
vntBrightnessStep = frmMain.ImgScan1.GetScanCapability(10) 'Brightness Step
If VarType(vntBrightnessStep) = vbError Then
gblnGetBrightnessStepSupported = False
Else
gblnGetBrightnessStepSupported = True
If VarType(vntBrightnessStep) = vbArray Then
gblnBrightnessStepArray = True
gvntBrightnessStep = vntBrightnessStep
Else
gblnBrightnessStepArray = False
glngBrightnessStep = CLng(vntBrightnessStep)
End If
End If
'----------------------------------------------------------
' Get AutoBrightness (11).
'----------------------------------------------------------
vntAutoBrightness = frmMain.ImgScan1.GetScanCapability(11) 'Auto Brightness
If VarType(vntAutoBrightness) = vbError Then
gblnGetAutoBrightnessSupported = False
Else
gblnGetAutoBrightnessSupported = True
gstrAutoBrightness = CStr(vntAutoBrightness)
End If
'----------------------------------------------------------
' Get Minimum Contrast (12).
'----------------------------------------------------------
vntMinContrast = frmMain.ImgScan1.GetScanCapability(12) 'Min Contrast
If VarType(vntMinContrast) = vbError Then
gblnGetMinContrastSupported = False
Else
gblnGetMinContrastSupported = True
glngMinContrast = CLng(vntMinContrast)
End If
'----------------------------------------------------------
' Get Maximum Contrast (13).
'----------------------------------------------------------
vntMaxContrast = frmMain.ImgScan1.GetScanCapability(13) 'Max Contrast
If VarType(vntMaxContrast) = vbError Then
gblnGetMaxContrastSupported = False
Else
gblnGetMaxContrastSupported = True
glngMaxContrast = CLng(vntMaxContrast)
End If
'----------------------------------------------------------
' Get Contrast Step (14).
'----------------------------------------------------------
vntContrastStep = frmMain.ImgScan1.GetScanCapability(14) 'Contrast Step
If VarType(vntContrastStep) = vbError Then
gblnGetContrastStepSupported = False
Else
gblnGetContrastStepSupported = True
If VarType(vntContrastStep) = vbArray Then
gblnContrastStepArray = True
gvntContrastStep = vntContrastStep
Else
gblnContrastStepArray = False
glngContrastStep = CLng(vntContrastStep)
End If
End If
'----------------------------------------------------------
' Get AutoContrast (15).
'----------------------------------------------------------
vntAutoContrast = frmMain.ImgScan1.GetScanCapability(15) 'Auto Contrast
If VarType(vntAutoContrast) = vbError Then
gblnGetAutoContrastSupported = False
Else
gblnGetAutoContrastSupported = True
gstrAutoContrast = CStr(vntAutoContrast)
End If
'----------------------------------------------------------
' Get ADF Available (16).
'----------------------------------------------------------
vntADFAvailable = frmMain.ImgScan1.GetScanCapability(16) 'ADF Available
If VarType(vntADFAvailable) = vbError Then
gblnGetADFAvailableSupported = False
Else
gblnGetADFAvailableSupported = True
gstrADFAvailable = CStr(vntADFAvailable)
End If
'----------------------------------------------------------
' Get Maximum Height ADF (3).
'----------------------------------------------------------
vntMaxHeightADF = frmMain.ImgScan1.GetScanCapability(3) 'Max Height ADF
If VarType(vntMaxHeightADF) = vbError Then
gblnGetMaxHeightADFSupported = False
Else
gblnGetMaxHeightADFSupported = True
gsngMaxHeightADF = CSng(vntMaxHeightADF)
End If
'----------------------------------------------------------
' Set a switch saying GetRangeOfCapabilities was done.
' (This is tracked to prevent this routine from being called
' more than once.) Then close the scanner.
'----------------------------------------------------------
gblnGetCapabilityRangeDone = True
frmMain.ImgScan1.CloseScanner
'----------------------------------------------------------
' If logging has been turned on for GetScanCapability,
' initialize mstrPMEType and mstrEventName. Otherwise,
' exit the subroutine. Note that this logging is here to
' aid in debugging and analysis; logging wouldn't usually
' be included in a production application.
'----------------------------------------------------------
If gblnTrackImgScanEvent(iseGetScanCapability) = True Then
mstrPMEType = METHOD_LEGEND
mstrEventName = "ImgScan_GetScanCapability"
Else
Exit Sub
End If
'----------------------------------------------------------
' Log Image Types Available.
'----------------------------------------------------------
If gblnGetImageTypesAvailableSupported = True Then
mstrParameters = "ImageTypes=" & GetImageTypeLegend(gintImageTypesAvailable)
Else
mstrParameters = "ImageTypes: Unsupported"
End If
Call frmEventLog.GenerateLogEvent(mstrPMEType, mstrEventName, mstrParameters)
'----------------------------------------------------------
' Log Maximum Height.
'----------------------------------------------------------
If gblnGetMaxHeightSupported = True Then
mstrParameters = "MaxHeight=" & gsngMaxHeight
Else
mstrParameters = "MaxHeight: Unsupported"
End If
Call frmEventLog.GenerateLogEvent(mstrPMEType, mstrEventName, mstrParameters)
'----------------------------------------------------------
' Log Maximum Width.
'----------------------------------------------------------
If gblnGetMaxWidthSupported = True Then
mstrParameters = "MaxWidth=" & gsngMaxWidth
Else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -