⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 routines.bas

📁 扫描软件
💻 BAS
📖 第 1 页 / 共 3 页
字号:
    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 + -