DLL access problem from LS Editor

I had the idea to deliver my CardScan application in an XPages framework and place it as a project on OpenNTF. But… as soon as I copied over the CardScanInitialize agent errors appear overal across the agent:

The errors are everywhere of the same type:

Illegal parenthesized reference

It looks that the CardScan library (cssdk32.dll installed in C:WINDOWSsystem32) cannot be addressed from the LS editor. I am using Designer Release 8.5.2 M2 (codedrop 4) . Have you experienced similar problems?

Ps I have not touched the application since Designer 7 so I have no idea if this problem already arises in Designer 8…

XPages and WQO agents – Cardscan app

I would love to rebuild my Cardscan integration application with XPages and make it an OpenNTF project, the only BUT is  that the transfer of the data that comes from Cardscan is done via a WQO agent in LotusScript.

I wonder if there are examples out there that proof it IS possible using WQO agents in XPages? It would save me a hell of a time and probable if it is not possible I would not do the transformation of the app att all (I am not a Java guy).

So hints/demo/code etcetera are welcome…

Demo integration Lotus Notes and CardScan

This action was already for a long long time on my desk but now I found some spare time finally.

In a previous posting I wrote how I created an Notes application that is able to import information collected via a CardScan device into a Lotus Notes aplication.

Well I have prepared a demo and is available for download.

The application is tested on a local machine and I do not inted to give support on questions, but for improvement suggestions I am always open.

How to get started?

  • download and unzip the demo to your Notes data directory
  • if possible sign all design elements
  • install the CardScan software and run through the installation process (including calibaration)
    • 1 Note: depending on which version you are using but in the latest version (I believe they call it version 8) you have to disable the option that it the software should detect cards automatically.
  • after the installation open the designated frameset for web-access in your browser and start testing!

 disable this setting

I have updated the interface to a more modern look, inspired by the first screenshots that where available for Quickr (I believe). Mostly the application is being used on shows so a fancy design was very appreciated.

Yes even the database icon got some attention:

database icon

When opening the frameset you will be presented this screen:

screen number 1

In this screen you have 2 options, collect visitor information with or without use of the CardScan device. The logic behind it is that you can open 2 similar form, one has the webqueryopen event that initiates an agent that synchronize the fields CardScan has found on the business-card and the fields on the form.

This synchronisation can be done on the database profile document in the application. Here you can select which fields should be mapped:

field mapping

Let’s continue with the process. After selecting an input device you will be presented a form, and if you selected to use the CardScan device the mapped fields will be filled in with information found on the business-card:

visitor input form

If a problem occured it will be presented to the screen as displayed in the example in red. There is a button available to scan the business-card again, in case there where problems with the first attempt.

We have noticed that the ‘hard light’ on some shows give problem with the scanning devices…

After filling in the information form a confirmation screen will be presented with a link to return to the startscreen:

confirmation message

So basically that’s it!

Some remarks after experience working with this solution:

  • The hard light at some shows is really a problem, I do not know how to solve it. The only solution I have is not to place the scanner in the most lightest spot.
  • According to CardScan support it is not possible to get the information into a different Notes application rather than the names.nsf file but you will see that it is possible.
  • The code that is being used to make the call to the CardScan device is actually REALLY old. It dates from the period that CardScan was officially called Corex I believe. Allthough the versions (presentation?) for the scanning devices have changed the last period of years, the code is still working solid. Read the developerkit that is available (but cost money).
  • Newer languages as Java probably have much better capabilities to talk with the CardScan device, but I am not a Java developer.
  • The icons used are coming from free icons libraries.

Please let me know if you have found any technical improvement!

One final remark:

I have ‘collected’ some CardScan devices during the years of support, if you would be interested in one I figure we can come to a ‘nice price’.

Integrating CardScan into your Domino applications

product example 

CardScan is very handy scan-device for managing your business-cards on your computer. In order to let Windows recognize the product the software delivered with the product installs a driver and a program to manage your scanned cards.

Via the Intellisync software you can replicate your contacts to your local address book. The support site says that you can ONLY replicate to the names.nsf file. Other database filenames it will not accept.

But what if you want to use the scan-device in your Domino application, for example a database that collects first contact details for your CRM application?

Okej, you COULD rename your real names.nsf database and name your CRM application names.nsf and give the form that collects the user details the name Contact. But you DON’T want this because this would screw up your initial Notes setup.


So what are your other options? The CardScan software did install a DLL file, right? Why not use the same DLL that the CardScan program uses in your Domino application?

CardScan Software Developers Kit

The CardScan Software Developers Kit (SDK) is a product for software developers. It provides programmatic access to CardScan’s business card recognition capabilities. Using the SDK you can control the Corex scanner, acquire card images, process them one at a time or in batch, and retrieve the results sorted into fields like Name, Title, Company, Street Address, City, State, and Zip Code.

Example initialization in LotusScript

Const Cardscan_SUCCESS = 1          

‘ 1 = Operation succeeded

‘ Initialize the dynamic link library and register the client application:

Declare Function Cardscan_Init Lib “cssdk32.dll” ( RTKaddress As Long)  As Long

‘ RTKaddress = address to receive RTK handle

Dim intReturn As Integer

intReturn = Cardscan_Init(RTKaddress)

If intReturn <> Cardscan_SUCCESS Then

  Exit Sub

End If