RbBFBlokProjPSIVStrn2006.01 ACnmStrnAChpStrnACsvStrnVer1Strn1 Ver2Strn0 Ver3Strn0 RelsStrn0 NnRlStrn0 RegnStrnSVerStrnLVerStrnIVerStrnaiviInt DVewInt gprTpInt DLanInt CLanInt DEncInt BflgInt IconGrupEEndGInt EMacCStrnBMacStrnMy Application (Classic)BCarStrnMy Application BCMOStrnMy Application BSizInt @BMSzInt BSzSStrn4096BMSSStrn2048MDIcStrnBWinStrnMy Application.exe BMDIInt WcmNStrnWpNmStrnWiNmStrnBL86Strn MyApplication PadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObj NameStrnApp ContInt paswStrnbClsInt SuprStrn Application bNtrInt bApOInt CompStrnPDefGrup$FnameStrnMenuBar PValInt s%EndGInt FVwBhGrupGEndGInt GCnstGrupHEncoInt nameStrnkFileQuitShortcut typeInt defnStrnflagInt CInsGrup0IpltfInt langInt defnStrnCmd+Q EndGInt IEndGInt HCnstGrupJEncoInt nameStrn kFileQuit typeInt defnStrnQuitflagInt CInsGrup0KpltfInt langInt defnStrnE&xit EndGInt KCInsGrup0LpltfInt langInt defnStrnE&xit EndGInt LEndGInt JCnstGrupMEncoInt nameStrn kEditClear typeInt defnStrn&Delete flagInt CInsGrup0NpltfInt langInt defnStrn&Delete EndGInt NCInsGrup0OpltfInt langInt defnStrn&Delete EndGInt OEndGInt MPadnPadnd****************************************************************************************************BlokpVewgLNameStrnWindow1 ContInt paswStrnbClsInt SuprStrnWindow bNtrInt CompStrnPDefGrup0PnameStrnMenuBar PValStrn 1931845631 EndGInt PPDefGrup(QnameStrn MacProcID PValInt EndGInt QPDefGrup4RnameStrn BalloonHelp EncoInt PValStrnEndGInt RPDefGrup0SnameStrnMinimizeButton PValStrnTrueEndGInt SPDefGrup0TnameStrnMaximizeButton PValStrnTrueEndGInt TPDefGrup0UnameStrn LiveResize PValStrnFalse EndGInt UPDefGrup,VnameStrn Resizeable PValStrnTrueEndGInt VPDefGrup,WnameStrn CloseButton PValStrnTrueEndGInt WPDefGrup0XnameStrnMenuBarVisible PValStrnTrueEndGInt XPDefGrup0YnameStrn FullScreen PValStrnFalse EndGInt YPDefGrup(ZnameStrnVisible PValStrnTrueEndGInt ZPDefGrup@[nameStrnTitle EncoInt PValStrn TwainTest2006 EndGInt [PDefGrup$\nameStrnBackdropPValStrnEndGInt \PDefGrup(]nameStrn BackColor PValInt EndGInt ]PDefGrup0^nameStrn HasBackColorPValStrnFalse EndGInt ^PDefGrup0_nameStrn Composite PValStrnFalse EndGInt _PDefGrup$`nameStrnFrame PValInt EndGInt `PDefGrup(anameStrn MaxHeight PValInt }EndGInt aPDefGrup$bnameStrnMaxWidthPValInt }EndGInt bPDefGrup(cnameStrn MinHeight PValInt @EndGInt cPDefGrup$dnameStrnMinWidthPValInt @EndGInt dPDefGrup$enameStrnHeight PValInt ,EndGInt ePDefGrup$fnameStrnWidth PValInt EndGInt fPDefGrup(gnameStrn Placement PValInt EndGInt gVwBhGrup hVwPrGrup0iNameStrnNameVsblInt PrGpStrnID EndGInt iVwPrGrup8jNameStrn Interfaces VsblInt PrGpStrnID EndGInt jVwPrGrup4kNameStrnSuper VsblInt PrGpStrnID EndGInt kVwPrGruplNameStrn Placement VsblInt PrGpStrnPositionPValStrn0 EnumGrupmdefnStrn 0 - Default defnStrn1 - Parent Window defnStrn2 - Main Screen defnStrn3 - Parent Window ScreendefnStrn 4 - Stagger EndGInt mEndGInt lVwPrGrupHnNameStrnWidth VsblInt PrGpStrnPositionPValStrn300 EndGInt nVwPrGrupHoNameStrnHeight VsblInt PrGpStrnPositionPValStrn300 EndGInt oVwPrGrupHpNameStrnMinWidthVsblInt PrGpStrnPositionPValStrn64 EndGInt pVwPrGrupLqNameStrn MinHeight VsblInt PrGpStrnPositionPValStrn64 EndGInt qVwPrGrupLrNameStrnMaxWidthVsblInt PrGpStrnPositionPValStrn32000 EndGInt rVwPrGrupPsNameStrn MaxHeight VsblInt PrGpStrnPositionPValStrn32000 EndGInt sVwPrGruptNameStrnFrame VsblInt PrGpStrn Appearance PValStrn0 EnumGrupPudefnStrn 0 - DocumentdefnStrn1 - Movable Modal defnStrn2 - Modal DialogdefnStrn3 - Floating Window defnStrn 4 - Plain Box defnStrn5 - Shadowed BoxdefnStrn6 - Rounded Window defnStrn7 - Global Floating Window defnStrn8 - Sheet WindowdefnStrn9 - Metal WindowdefnStrn10 - Drawer Window EndGInt uEndGInt tVwPrGrupTvNameStrn Composite VsblInt PrGpStrn Appearance PValStrnFalse EndGInt vVwPrGrupTwNameStrn HasBackColorVsblInt PrGpStrn Appearance PValStrnFalse EndGInt wVwPrGrupTxNameStrn BackColor VsblInt PrGpStrn Appearance PValStrn&hFFFFFFEndGInt xVwPrGrup<yNameStrnBackdropVsblInt PrGpStrn Appearance EndGInt yVwPrGrupPzNameStrnTitle VsblInt PrGpStrn Appearance PValStrnUntitledEndGInt zVwPrGrupL{NameStrnVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt {VwPrGrupT|NameStrn FullScreen VsblInt PrGpStrn Appearance PValStrnFalse EndGInt |VwPrGrupT}NameStrnMenuBarVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt }VwPrGrupP~NameStrn CloseButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt ~VwPrGrupTNameStrn Resizeable VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrn LiveResize VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupXNameStrnMaximizeButton VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrnMinimizeButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt VwPrGrup@NameStrn BalloonHelp VsblInt PrGpStrn Appearance EndGInt VwPrGrupPNameStrn MacProcID VsblInt PrGpStrn Appearance PValStrn0 EndGInt VwPrGrup<NameStrnMenuBar VsblInt PrGpStrn Appearance EndGInt EndGInt hCBhvGrupSuprStrn PushButton HInsGruphnameStrnAction CompStrnVsblInt sorcGrup EncoInt srclStrn Sub Action()srclStrnDim f As FolderItem srclStrnDim tw As New sjgEZTwainsrclStrnsrclStrnIf nativeButton.Value Then srclStrnIf tw.AcquireNative ThensrclStrnCanvas1.Backdrop = tw.pic srclStrnElsesrclStrnMsgBox tw.lastError srclStrnEnd If srclStrnsrclStrnElseif clipButton.Value ThensrclStrnIf tw.AcquireToClipboard Then srclStrn!MsgBox "Picture now on Clipboard" srclStrnElsesrclStrnMsgBox tw.lastError srclStrnEnd If srclStrnsrclStrnElse // fileButton.Value srclStrn(f = TemporaryFolder.child("sjgtest.bmp")srclStrnIf tw.AcquireToFile(f) Then srclStrnf.LaunchsrclStrnElsesrclStrnMsgBox tw.lastError srclStrnEnd If srclStrnsrclStrnEnd If srclStrnEnd Sub EndGInt EndGInt EndGInt CBhvGrupSuprStrnCanvas EndGInt CBhvGrupSuprStrn PushButton HInsGrup`nameStrnAction CompStrnVsblInt sorcGrupEncoInt srclStrn Sub Action()srclStrnDim f As FolderItem srclStrnDim tw As New sjgEZTwainsrclStrnsrclStrnIf tw.SelectSource Then srclStrnMsgBox tw.classVersion srclStrnElsesrclStrnMsgBox tw.lastErrorsrclStrnEnd If srclStrnEnd Sub EndGInt EndGInt EndGInt CBhvGrupSuprStrnGroupBoxEndGInt CBhvGrupSuprStrn RadioButton EndGInt CBhvGrupSuprStrn RadioButton EndGInt CBhvGrupSuprStrn RadioButton EndGInt CtrlGrupcclsStrnGroupBoxnameStrnGroupBoxPDefGrup8nameStrn InitialParent EncoInt PValStrnEndGInt PDefGrup(nameStrn Underline PValStrnEndGInt PDefGrup$nameStrnItalic PValStrnEndGInt PDefGrup nameStrnBoldPValStrnEndGInt PDefGrup$nameStrnTextSizePValInt EndGInt PDefGrup8nameStrnTextFontEncoInt PValStrnSystem EndGInt PDefGrup0nameStrnAutoDeactivate PValStrnTrueEndGInt PDefGrup0nameStrnHelpTag EncoInt PValStrnEndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup8nameStrnCaption EncoInt PValStrnAcquire EndGInt PDefGrup,nameStrn TabPanelIndex PValInt EndGInt PDefGrup,nameStrn LockBottom PValStrnTrueEndGInt PDefGrup,nameStrn LockRight PValStrnTrueEndGInt PDefGrup$nameStrnLockTop PValStrnEndGInt PDefGrup,nameStrnLockLeftPValStrnFalse EndGInt PDefGrup$nameStrnHeight PValInt PEndGInt PDefGrup$nameStrnWidth PValInt qEndGInt PDefGrup nameStrnTop PValInt EndGInt PDefGrup nameStrnLeftPValInt EndGInt PDefGrup8nameStrn ControlOrderEncoInt PValStrn0 EndGInt PDefGrup8nameStrnSuper EncoInt PValStrnGroupBoxEndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup8nameStrnNameEncoInt PValStrn GroupBox1 EndGInt CBixInt EndGInt CtrlGrupcclsStrn RadioButton nameStrn RadioButton PDefGrupDnameStrn InitialParent EncoInt PValStrn GroupBox1 EndGInt PDefGrup(nameStrnValue PValStrnTrueEndGInt PDefGrup(nameStrn Underline PValStrnEndGInt PDefGrup$nameStrnItalic PValStrnEndGInt PDefGrup nameStrnBoldPValStrnEndGInt PDefGrup$nameStrnTextSizePValInt EndGInt PDefGrup8nameStrnTextFontEncoInt PValStrnSystem EndGInt PDefGrup0nameStrnAutoDeactivate PValStrnTrueEndGInt PDefGrup0nameStrnHelpTag EncoInt PValStrnEndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup8nameStrnCaption EncoInt PValStrnNative EndGInt PDefGrup,nameStrn TabPanelIndex PValInt EndGInt PDefGrup0nameStrn LockBottom PValStrnFalse EndGInt PDefGrup(nameStrn LockRight PValStrnEndGInt PDefGrup$nameStrnLockTop PValStrnEndGInt PDefGrup,nameStrnLockLeftPValStrnFalse EndGInt PDefGrup$nameStrnHeight PValInt EndGInt PDefGrup$nameStrnWidth PValInt nameStrnHeight PValInt EndGInt >PDefGrup$?nameStrnWidth PValInt EndGInt ?PDefGrup @nameStrnTop PValInt EndGInt @PDefGrup AnameStrnLeftPValInt EndGInt APDefGrup8BnameStrn ControlOrderEncoInt PValStrn6 EndGInt BPDefGrup8CnameStrnSuper EncoInt PValStrnCanvas EndGInt CPDefGrup$DnameStrnIndex PValInt EndGInt DPDefGrup4EnameStrnNameEncoInt PValStrnCanvas1 EndGInt ECBixInt EndGInt .PadnPadn****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpMnus% NameStrnMenuBar1ContInt paswStrnMItmGruppFspmuInt nameStrnFileMenutextStrn&File indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemMItmGrupGspmuInt nameStrnFileQuittextStrn#App.kFileQuit indxInt scutStrn#App.kFileQuitShortcut MiSKStrn#App.kFileQuitShortcut maEnInt EncoInt flagInt SuprStrn QuitMenuItemEndGInt GEndGInt FMItmGrup\HspmuInt nameStrnEditMenutextStrn&Edit indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemMItmGrupIspmuInt nameStrnEditUndotextStrn&Undo indxInt scutStrnCmd+Z MiSKStrnZ MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt IMItmGrupJspmuInt nameStrn UntitledMenu1 textStrn- indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt JMItmGrupKspmuInt nameStrnEditCut textStrnCu&tindxInt scutStrnCmd+X MiSKStrnX MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt KMItmGrupLspmuInt nameStrnEditCopytextStrn&Copy indxInt scutStrnCmd+C MiSKStrnC MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt LMItmGrupMspmuInt nameStrn EditPaste textStrn&Paste indxInt scutStrnCmd+V MiSKStrnV MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt MMItmGrupNspmuInt nameStrn EditClear textStrn#App.kEditClear indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt NMItmGrupOspmuInt nameStrn UntitledMenu0 textStrn- indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt OMItmGrupPspmuInt nameStrn EditSelectAll textStrn Select &All indxInt scutStrnCmd+A MiSKStrnA MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt PEndGInt HPadnPadn****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObj _8NameStrn sjgEZTwain ContInt paswStrnbClsInt bNtrInt CompStrnMethGrup(QnameStrn Constructor CompStrnVsblInt sorcGrupREncoInt srclStrnSub Constructor() srclStrn#Const thisModule = " - Constructor" srclStrn#If TargetWin32 srclStrnCSoft Declare Function TWAIN_IsAvailable Lib "EZTW32.dll" As Integer srclStrnCSoft Declare Function TWAIN_EasyVersion Lib "EZTW32.dll" As Integer srclStrnDim ret As Integer srclStrnDIf System.IsFunctionAvailable("TWAIN_IsAvailable","EZTW32.dll") ThensrclStrnIf TWAIN_IsAvailable = 1 Then srclStrnSelf.Available = True srclStrnret = TWAIN_EasyVersion srclStrn)EZTwainVersion = Format(ret / 100,"0.00") srclStrnElsesrclStrn@reportError "TWAIN Source Manager cannot be loaded" + thisModulesrclStrnEnd If srclStrnElsesrclStrn/reportError "Unable to access dll" + thisModule srclStrnEnd If srclStrn#Else srclStrn5reportError "Available for Windows only" + thisModule srclStrn#EndIf srclStrnsrclStrnEnd Sub EndGInt REncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt QMethGrupSnameStrn AcquireToFile CompStrnVsblInt sorcGrupTEncoInt srclStrn8Function AcquireToFile(f As Folderitem = Nil) As BooleansrclStrnDim retVal As Boolean srclStrn$Const thisModule = "- AcquireToFile"srclStrn#If TargetWin32 srclStrnIf Self.Available Then srclStrnqSoft Declare Function TWAIN_AcquireToFilename Lib "EZTW32.dll"(hwndApp As Integer, pszFile As CString) As Integer srclStrnDim i As IntegersrclStrnsrclStrnIf f <> Nil ThensrclStrn fItem = f srclStrnElseif fItem Is Nil ThensrclStrn3fItem = TemporaryFolder.Child("sjgeztwaintemp.bmp") srclStrnEnd If srclStrnIf fItem <> Nil ThensrclStrn1i = TWAIN_AcquireToFilename(0,fItem.AbsolutePath) srclStrn If i = 0 Then srclStrnIf fItem.Exists ThensrclStrnpic = fItem.OpenAsPicture srclStrnIf pic <> Nil Then srclStrn retVal = True srclStrnEnd If srclStrnElsesrclStrn+reportError "File not created" + thisModule srclStrnEnd If srclStrnElsesrclStrn Select Case i srclStrnCase -1 srclStrnLreportError "Acquire failed OR user cancelled File Save dialog" + thisModulesrclStrnCase -2 srclStrnSreportError "file open error (invalid path or name, or access denied)" + thisModule srclStrnCase -3 srclStrnRreportError "(weird) unable to lock DIB - probably an invalid handle" + thisModule srclStrnCase -4 srclStrnRreportError "writing BMP data failed, possibly output device is full" + thisModule srclStrn End Select srclStrnEnd If srclStrnElsesrclStrn)reportError "Nil FolderItem" + thisModule srclStrnEnd If srclStrnIf retVal = False Then srclStrn pic = Nil srclStrnEnd If srclStrnEnd If srclStrn#EndIf srclStrn Return retVal srclStrnsrclStrn End FunctionEndGInt TEncoInt AlasStrnflagInt shrdInt parmStrnf As Folderitem = Nil rsltStrnBoolean EndGInt SMethGrupXUnameStrnAcquireToClipboard CompStrnVsblInt sorcGrupVEncoInt srclStrn(Function AcquireToClipboard() As BooleansrclStrnDim retVal As Boolean srclStrn)Const thisModule = "- AcquireToClipboard" srclStrn#If TargetWin32 srclStrnIf Self.Available Then srclStrntSoft Declare Function TWAIN_AcquireToClipboard Lib "EZTW32.dll"(hwndApp As Integer, wPixTypes As Integer) As IntegersrclStrnDim i As IntegersrclStrnsrclStrn!i = TWAIN_AcquireToClipboard(0,0) srclStrnDim clp As New ClipboardsrclStrnIf clp.PictureAvailable ThensrclStrnpic = clp.Picture srclStrnIf pic <> Nil Then srclStrn retVal = True srclStrnElsesrclStrn3reportError "Nil picture on clipboard" + thisModule srclStrnEnd If srclStrnElsesrclStrn pic = Nil srclStrn2reportError "No picture on clipboard" + thisModule srclStrnEnd If srclStrn clp.Close srclStrnEnd If srclStrn#EndIf srclStrn Return retVal srclStrn End FunctionEndGInt VEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnBoolean EndGInt UMethGrupHWnameStrn SelectSourceCompStrnVsblInt sorcGrupXEncoInt srclStrn"Function SelectSource() As Boolean srclStrnDim retVal As Boolean srclStrn#If TargetWin32 srclStrn$Const thisModule = " - SelectSource"srclStrnIf Self.Available Then srclStrnJIf system.IsFunctionAvailable("TWAIN_SelectImageSource","EZTW32.dll") Then srclStrnWSoft Declare Function TWAIN_SelectImageSource Lib "EZTW32.dll"(x As Integer) As Integer srclStrn&If TWAIN_SelectImageSource(0) = 1 Then srclStrn retVal = True srclStrnEnd If srclStrn9reportError "TWAIN_SelectImageSource failed" + thisModule srclStrnEnd If srclStrnEnd If srclStrn#EndIf srclStrn Return retVal srclStrn End FunctionEndGInt XEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnBoolean EndGInt WMethGrup YnameStrn AcquireNative CompStrnVsblInt sorcGrup xZEncoInt srclStrn#Function AcquireNative() As Boolean srclStrnDim retVal As Boolean srclStrn%Const thisModule = " - AcquireNative" srclStrn#if TargetWin32 srclStrnif self.Available Then srclStrnconst GDI_ERROR = &hFFFFsrclStrn}soft Declare Function SelectPalette Lib "gdi32" (hdc As Integer, hPalette As Integer, bForceBackground As Integer) As Integer srclStrnLsoft Declare Function RealizePalette Lib "gdi32" (hdc As Integer) As IntegersrclStrnLsoft Declare Function GlobalLock Lib "kernel32" (hMem As Integer) As IntegersrclStrnsrclStrnQsoft Declare Function TWAIN_DibDepth Lib "EZTW32.dll"(hdib As Integer) As Integer srclStrnQsoft Declare Function TWAIN_DibWidth Lib "EZTW32.dll"(hdib As Integer) As Integer srclStrnRsoft Declare Function TWAIN_DibHeight Lib "EZTW32.dll"(hdib As Integer) As Integer srclStrnR//Declare Function TWAIN_DibNumColors Lib "EZTW32.dll"(hdib As Integer) As Integer srclStrnoSoft Declare Function TWAIN_AcquireNative Lib "EZTW32.dll"(hwndApp As Integer, wPixTypes As Integer) As Integer srclStrnCSoft Declare Sub TWAIN_FreeNative Lib "EZTW32.dll"(hDib As Integer) srclStrnYsoft Declare Function TWAIN_CreateDibPalette Lib "EZTW32.dll"(hDib As Integer) As Integer srclStrnDSoft Declare Sub TWAIN_DrawDibToDC Lib "EZTW32.dll"(hdc As Integer,_srclStrncdx As Integer,dy As Integer,w As Integer,h As Integer,hdib As Integer, sx As Integer,sy As Integer) srclStrnsrclStrnDim gMem As Integer srclStrnDim DibHandle As IntegersrclStrnDim hPall As IntegersrclStrnsrclStrnDim dpth As Integer srclStrnDim w As IntegersrclStrnDim h As IntegersrclStrnsrclStrngMem = TWAIN_AcquireNative(0,0) srclStrnsrclStrnDibHandle = GlobalLock(gMem)srclStrnif DibHandle = 0 Then srclStrnreportError "GlobalLock failed" srclStrnElsesrclStrn dpth = TWAIN_DibDepth(DibHandle)srclStrnw = TWAIN_DibWidth(DibHandle) srclStrnh = TWAIN_DibHeight(DibHandle) srclStrnsrclStrnpic = New Picture(w,h,dpth) srclStrn Dim g As Graphics = pic.GraphicssrclStrnsrclStrn)hPall = TWAIN_CreateDibPalette(DibHandle) srclStrn' srclStrnDim hdc as Integer srclStrn' srclStrnEif SelectPalette(g.Handle( Graphics.HandleTypeHDC ),hPall,0) = 0 Then srclStrn/reportError "SelectPalette failed" + thisModule srclStrnElsesrclStrnFif RealizePalette(g.Handle( Graphics.HandleTypeHDC )) = GDI_ERROR Then srclStrn0reportError "RealizePalette failed" + thisModulesrclStrnElsesrclStrnKTWAIN_DrawDibToDC(g.Handle( Graphics.HandleTypeHDC ),0,0,w,h,DibHandle,0,0) srclStrn3TWAIN_FreeNative(DibHandle) //This calls GlobalFree srclStrn.retVal = True // Assume success if we get here srclStrnend if srclStrnend if srclStrnend if srclStrnend if srclStrn#endif srclStrn Return retVal srclStrnsrclStrn End FunctionEndGInt ZEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnBoolean EndGInt YMethGrupP[nameStrn reportError CompStrnVsblInt sorcGrup\EncoInt srclStrnSub reportError(txt As String) srclStrndim d as new Date srclStrn0self.lastError = txt + EndOfLine + d.SQLDateTimesrclStrnEnd Sub EndGInt \EncoInt AlasStrnflagInt !shrdInt parmStrn txt As String rsltStrnEndGInt [NoteGrup]nameStrnAbout CompStrnVsblInt sorcGrupd^EncoInt ntlnStrnAbout ntlnStrn'This class was written by Steve Garman ntlnStrn!http://rb.sgarman.net/sjgeztwain/ ntlnStrnntlnStrn:It uses the Public Domain Windows dll EZTW32.dll by Dosadi ntlnStrn1available from http://www.dosadi.com/eztwain1.htm ntlnStrn in REALbasic ntlnStrnntlnStrn>This class requires EZTW32.dll to be either in the same folder ntlnStrn2as the app executable or to be in the Windows path ntlnStrnntlnStrn:%windir%/system32 is a good choice if looking for a folder ntlnStrn2that can be reasonably expected to be in the path. EndGInt ^flagInt EndGInt ]NoteGrup_nameStrnWarning CompStrnVsblInt sorcGrupT`EncoInt ntlnStrnWarning ntlnStrn)There are many limitations to this class. ntlnStrnntlnStrn?One of them is that it may lock your application up if the user ntlnStrn7asks it to acquire when their TWAIN device is unplugged ntlnStrnntlnStrnBThis depends on the driver for your particular scanner/camera etc. EndGInt `flagInt EndGInt _NoteGrupanameStrnUsage CompStrnVsblInt sorcGrup8bEncoInt ntlnStrnUsage ntlnStrnL EZTW32.dll must be available in the Path or in the same folder as the .exentlnStrn (see About note) ntlnStrnntlnStrnSelectSource Method ntlnStrnO Only needs to be called if the user wishes to change the default TWAIN source ntlnStrn% Displays the standard Select dialog ntlnStrn, (Works by calling TWAIN_SelectImageSource)ntlnStrnntlnStrnAll Acquire functions ntlnStrn- Call the currently selected source's dialog ntlnStrnE Attempt to populate the class's public .pic property with a picture ntlnStrn* Return True on success, False on falure. ntlnStrnL Offer the reason for failure as a string in the public .lastError propertyntlnStrnntlnStrnAcquireNative MethodntlnStrn? Populates the .pic picture directly with no intervening steps ntlnStrn( (Works by calling TWAIN_AcquireNative)ntlnStrnntlnStrnAcquireToClipboard Method ntlnStrne Captures the image to the system clipboard so it can be pasted into external applications like Pain ntlnStrn( Also populates .pic from the clipboardntlnStrn- (Works by calling TWAIN_AcquireToClipboard) ntlnStrnntlnStrnAcquireToFile MethodntlnStrn[ Takes an optional parameter which is a FolderItem pointing to the bmp file to be created. ntlnStrn# Captures the image to a .bmp file ntlnStrnP Offers a public property .fItem as a FolderItem pointing to the file created.sntlnStrn/ Also populates .pic using fItem.OpenAsPicture ntlnStrn, (Works by calling TWAIN_AcquireToFilename)EndGInt bflagInt EndGInt aPropGrupTcEncoInt declStrnAvailable As BooleanflagInt CompStrnshrdInt EndGInt cPropGrupXdEncoInt declStrnEZTwainVersion As StringflagInt CompStrnshrdInt EndGInt dPropGrupTeEncoInt declStrnfItem As FolderItem flagInt CompStrnshrdInt EndGInt ePropGrupPfEncoInt declStrnpic As Picture flagInt CompStrnshrdInt EndGInt fPropGrupTgEncoInt declStrnlastError As String flagInt CompStrnshrdInt EndGInt gPropGruphEncoInt declStrnclassVersion As String flagInt CompStrnshrdInt sorcGrup@iEncoInt srclStrnclassVersion As String srclStrnEndGInt iCPrsGrup@jEncoInt srclStrnSet srclStrnsrclStrnEnd Set EndGInt jCPrgGruppkEncoInt srclStrnGet srclStrn-Return "sjgEZTwain for RB2006+ version 1.0.1" srclStrnEnd Get EndGInt kEndGInt hVwBhGrup8lVwPrGrup0mNameStrnNameVsblInt PrGpStrnID EndGInt mVwPrGrupLnNameStrnIndex VsblInt PrGpStrnID PValStrn -2147483648 EndGInt nVwPrGrup4oNameStrnSuper VsblInt PrGpStrnID EndGInt oVwPrGrupDpNameStrnLeftVsblInt PrGpStrnPositionPValStrn0 EndGInt pVwPrGrupDqNameStrnTop VsblInt PrGpStrnPositionPValStrn0 EndGInt qVwPrGrup@rNameStrn Available PrGpStrnBehaviorPValStrn0 EndGInt rVwPrGrup4sNameStrnEZTwainVersion PrGpStrnBehaviorEndGInt sVwPrGrup8tNameStrnpic PrGpStrnBehaviorPValStrn0 EndGInt tVwPrGrup0uNameStrn lastError PrGpStrnBehaviorEndGInt uVwPrGrup0vNameStrn classVersionPrGpStrnBehaviorEndGInt vEndGInt lPadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpUIsWnStGrupwOTabGrupxContInt eSptInt EndGInt xOTabGrupyContInt gEndGInt yOTabGrupzContInt _EndGInt zLsLcStrnsjgEZTwain.UsagerEdtRect 2EndGInt wPadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************EOF!