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

📄 routines.bas

📁 扫描软件
💻 BAS
📖 第 1 页 / 共 3 页
字号:
Attribute VB_Name = "Routines"
Option Explicit

'**************************************************************
' Global (Public) Variables
'**************************************************************
    
    '----------------------------------------------------------
    ' Directory locations:  set in frmMain.Form_Load.
    '----------------------------------------------------------
    Public gstrAppDirectory As String
    Public gstrWindowsDirectory As String
    Public gstrWindowsTempDirectory As String
                        
    '----------------------------------------------------------
    ' File name, path name, and fully qualified path name.
    '----------------------------------------------------------
    Public gstrFileName As String
    Public gstrPathName As String
    Public gstrFullPathFileName As String
    
    '----------------------------------------------------------
    ' Scan preferences:  set in frmPreferences.
    '----------------------------------------------------------
    Public gintScanSettings As Integer
    Public gintDocumentTypeIndex As Integer
    Public gblnUseADF As Boolean
    Public gstrScanToDirectory As String
    
    '----------------------------------------------------------
    ' Custom scan settings:  set in frmSettings.
    '----------------------------------------------------------
    Public gintColorIndex As Integer
    Public gintHorizontalDPI As Integer
    Public gintVerticalDPI As Integer
    Public gintPaperSizeIndex As Integer
    Public gdblPaperWidth As Double
    Public gdblPaperHeight As Double
    
    '----------------------------------------------------------
    ' Get scan settings:  are they supported?
    '----------------------------------------------------------
    Public gblnGetImageTypesAvailableSupported As Boolean
    
    Public gblnGetMaxHeightSupported As Boolean
    Public gblnGetMaxWidthSupported As Boolean
    
    Public gblnGetMinResolutionSupported As Boolean
    Public gblnGetMaxResolutionSupported As Boolean
    Public gblnGetResolutionStepSupported As Boolean
    
    Public gblnGetMinBrightnessSupported As Boolean
    Public gblnGetMaxBrightnessSupported As Boolean
    Public gblnGetBrightnessStepSupported As Boolean
    Public gblnGetAutoBrightnessSupported As Boolean
    
    Public gblnGetMinContrastSupported As Boolean
    Public gblnGetMaxContrastSupported As Boolean
    Public gblnGetContrastStepSupported As Boolean
    Public gblnGetAutoContrastSupported As Boolean
    
    Public gblnGetADFAvailableSupported As Boolean
    Public gblnGetMaxHeightADFSupported As Boolean
    
    '----------------------------------------------------------
    ' Set scan settings:  are they supported?
    '----------------------------------------------------------
    Public gblnSetImageTypeSupported As Boolean
    
    Public gblnSetResolutionXSupported As Boolean
    Public gblnSetResolutionYSupported As Boolean
    
    Public gblnSetBrightnessModeSupported As Boolean
    Public gblnSetBrightnessSupported As Boolean
    
    Public gblnSetContrastModeSupported As Boolean
    Public gblnSetContrastSupported As Boolean
    
    Public gblnSetImageLayoutSupported As Boolean
    Public gblnSetScanModeSupported As Boolean
    
    '----------------------------------------------------------
    ' Get scan capability ranges.
    '----------------------------------------------------------
    Public gblnGetCapabilityRangeDone As Boolean
    
    Public gintImageTypesAvailable As Integer
    Public gblnImageTypesAvailable(7) As Boolean
    Public gstrImageTypeStrings(7) As String
    
    Public gsngMaxHeight As Single
    Public gsngMaxWidth As Single
    
    Public glngMinResolution As Long
    Public glngMaxResolution As Long
    Public gblnResolutionStepArray As Boolean
    Public glngResolutionStep As Long
    Public gvntResolutionStep As Variant
    
    Public glngMinBrightness As Long
    Public glngMaxBrightness As Long
    Public gblnBrightnessStepArray As Boolean
    Public glngBrightnessStep As Long
    Public gvntBrightnessStep As Variant
    Public gstrAutoBrightness As String
    
    Public glngMinContrast As Long
    Public glngMaxContrast As Long
    Public gblnContrastStepArray As Boolean
    Public glngContrastStep As Long
    Public gvntContrastStep As Variant
    Public gstrAutoContrast As String
    
    Public gstrADFAvailable As String
    Public gsngMaxHeightADF As Single
    
    '----------------------------------------------------------
    ' Set scan capabilities.
    '----------------------------------------------------------
    Public gintSetImageType As Integer
    Public glngSetResolutionX As Long
    Public glngSetResolutionY As Long
    Public gintSetBrightnessMode As Integer
    Public glngSetBrightness As Long
    Public gintSetContrastMode As Long
    Public glngSetContrast As Long
    Public gsngSetLeft As Single
    Public gsngSetTop As Single
    Public gsngSetWidth As Single
    Public gsngSetHeight As Single
    Public gintSetScanMode As Integer
        
    '----------------------------------------------------------
    ' ImgScan event switches.
    '----------------------------------------------------------
    Public gblnTrackImgScanEvent(8) As Boolean
                        
'**************************************************************
' Global (Public) Constants
'**************************************************************
            
    '----------------------------------------------------------
    ' "Color" constants.
    '----------------------------------------------------------
    Public Enum Color
        clBlackAndWhite = 0
        cl16ShadesOfGray = 1
        cl256ShadesOfGray = 2
        cl256Colors = 3
        clTrueColor = 4
    End Enum

    '----------------------------------------------------------
    ' "Document Type" constants.
    '----------------------------------------------------------
    Public Enum DocumentType
        dtTextOnly = 0
        dtArticle = 1
        dtColorArticle = 2
        dtPhotograph = 3
        dtBusinessCard = 4
        dtLineDrawing = 5
        dtPoorQuality = 6
        dtLegalDocument = 7
        dtCustom = 8
    End Enum
    
    '----------------------------------------------------------
    ' "Paper Size" constants.
    '----------------------------------------------------------
    Public Enum PaperSize
        psLetter = 0
        psBusinessCard = 1
        psPhoto = 2
        psLargePhoto = 3
        psTabloid = 4
        psLedger = 5
        psLegal = 6
        psStatement = 7
        psExecutive = 8
        psA3 = 9
        psA4 = 10
        psA5 = 11
        psB4ISO = 12
        psB4JIS = 13
        psB5ISO = 14
        psB5JIS = 15
        psFolio = 16
        psQuarto = 17
        ps10x14 = 18
        psCustom = 19
    End Enum
    
    '----------------------------------------------------------
    ' ImgScan tracking event constants.
    '----------------------------------------------------------
    Public Enum ImgScanEvent
        iseFileNameRequest = 0
        isePageDone = 1
        iseScanDone = 2
        iseScanStarted = 3
        iseScanUIDone = 4
        iseError = 5
        iseGetScanCapability = 6
        iseSetScanCapability = 7
    End Enum
    
    Public Const CAP_SCAN_IMAGE_TYPES_SUPPORTED = 1
    Public Const CAP_SCAN_MAX_HEIGHT = 2
    Public Const CAP_SCAN_MAX_HEIGHT_ADF = 3
    Public Const CAP_SCAN_MAX_WIDTH = 4
    Public Const CAP_SCAN_MIN_RESOLUTION = 5
    Public Const CAP_SCAN_MAX_RESOLUTION = 6
    Public Const CAP_SCAN_STEP_RESOLUTION = 7
    Public Const CAP_SCAN_MIN_BRIGHTNESS = 8
    Public Const CAP_SCAN_MAX_BRIGHTNESS = 9
    Public Const CAP_SCAN_STEP_BRIGHTNESS = 10
    Public Const CAP_SCAN_AUTO_BRIGHTNESS = 11
    Public Const CAP_SCAN_MIN_CONTRAST = 12
    Public Const CAP_SCAN_MAX_CONTRAST = 13
    Public Const CAP_SCAN_STEP_CONTRAST = 14
    Public Const CAP_SCAN_AUTO_CONTRAST = 15
    Public Const CAP_SCAN_ADF_SUPPORTED = 16
    Public Const CAP_SCAN_READONLY_CAPS = 16
    ' save some for future expansion
    Public Const CAP_SCAN_IMAGE_TYPE = 100
    Public Const CAP_SCAN_RESOLUTION = 101
    Public Const CAP_SCAN_BRIGHTNESS_MODE = 102
    Public Const CAP_SCAN_BRIGHTNESS = 103
    Public Const CAP_SCAN_CONTRAST_MODE = 104
    Public Const CAP_SCAN_CONTRAST = 105
    Public Const CAP_SCAN_IMAGE_LAYOUT = 106
    Public Const CAP_SCAN_MODE = 107
    Public Const CAP_SCAN_PAPER_IN_FEEDER = 108
    
    '----------------------------------------------------------
    ' Message Box constants.
    '----------------------------------------------------------
    Public Const CANT_ACCESS_DIR = "Cannot access directory "
    Public Const BRIGHTNESS_BETWEEN_1 = "Brightness must be between "
    Public Const BRIGHTNESS_BETWEEN_2 = "."
    Public Const BRIGHTNESS_NUMERIC = "Brightness must be numeric."
    Public Const CONTRAST_NUMERIC = "Contrast must be numeric."
    Public Const CONTRAST_BETWEEN_1 = "Contrast must be between "
    Public Const CONTRAST_BETWEEN_2 = "."
    Public Const DELETE_FILES_AND_RESTART = "Are you sure you want to delete the files and restart?"
    Public Const GET_CAPABILITIES_FIRST = "You must get the current scanner capabilities before you set them."
    Public Const HEIGHT_NUMERIC = "Height must be numeric."
    Public Const LEFT_NUMERIC = "Left must be numeric."
    Public Const RESOLUTION_BETWEEN_1 = "Resolution must be between "
    Public Const RESOLUTION_BETWEEN_2 = " DPI."
    Public Const RESOLUTION_NUMERIC = "Resolution must be numeric."
    Public Const TOP_NUMERIC = "Top must be numeric."
    Public Const WIDTH_NUMERIC = "Width must be numeric."
    Public Const WORKFILE_PAGES_UNEQUAL = "The page counts of the 2 workfiles are not equal."
                                
    '----------------------------------------------------------
    ' Registry constants.
    '----------------------------------------------------------
    Public Const APP_NAME = "ImgScan"
    Public Const SCAN_PREF_KEY = "Scan Preferences"
    Public Const WINDOW_POS_KEY = "Window Position"
    
    '----------------------------------------------------------
    ' Miscellaneous constants.
    '----------------------------------------------------------
    Public Const CANCEL_PRESSED = 32755
    
'**************************************************************
' Module (Private) Variables
'**************************************************************

    Private mstrPMEType As String
    Private mstrEventName As String
    Private mstrParameters As String

'**************************************************************
' Module (Private) Constants
'**************************************************************

    Private Const PROPERTY_LEGEND = "Property:  "
    Private Const METHOD_LEGEND = "Method:    "
    Private Const EVENT_LEGEND = "Event:     "
            
Public Function ConvertBytes(lngBytes As Long, strXB As String) As Long
'**************************************************************
' PUBLIC FUNCTION ConvertBytes:  Converts a byte count into
' KB, MB, or GB, depending upon the parameter passed in.
'**************************************************************
    '----------------------------------------------------------
    ' Note that when dividing, "\" is used in order to return
    ' an integer result with no rounding.
    '----------------------------------------------------------
    
    If strXB = "KB" Then
        ConvertBytes = lngBytes \ 2 ^ 10    '1024
    ElseIf strXB = "MB" Then
        ConvertBytes = lngBytes \ 2 ^ 20    '1048576
    ElseIf strXB = "GB" Then
        ConvertBytes = lngBytes \ 2 ^ 30
    Else
        ConvertBytes = lngBytes
    End If
    
End Function

Public Sub DeleteFile(strWorkFile As String)
'**************************************************************
' PUBLIC SUB DeleteFile:  Delete a file.
'**************************************************************
'** Strings
    Dim strFileName As String
        
    '----------------------------------------------------------
    ' If the filename is empty, exit the subroutine.
    '----------------------------------------------------------
    If strWorkFile = "" Then
        Exit Sub
    End If
    
    '----------------------------------------------------------
    ' Make sure the workfile is there.  If it is, delete it.
    '----------------------------------------------------------
    strFileName = Dir(strWorkFile)
    If strFileName <> "" Then
        DoEvents
        Kill strWorkFile
    End If
        
End Sub

Public Function GetImageTypeLegend(intImageType As Integer) As String
'**************************************************************
' PUBLIC FUNCTION GetImageTypeLegend:  Returns a legend
' describing the Image Types, depending upon the integer value
' of Image Type passed in.
'**************************************************************
'** Integers
    Dim intCounter As Integer
'** Strings
    Dim strWorkingLegend As String
    
    If intImageType = 0 Then
        GetImageTypeLegend = "Unknown"
        Exit Function
    End If
    
    If intImageType And 1 Then
        strWorkingLegend = "Black and White"
        intCounter = intCounter + 1
    End If
    
    If intImageType And 2 Then
        If intCounter > 0 Then
            strWorkingLegend = strWorkingLegend & "; 16 Shades of Gray"
        Else
            strWorkingLegend = "16 Shades of Gray"
        End If
        intCounter = intCounter + 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -