================================================================================
 DigitalPersona, Inc. : DigitalPersona Fingerprint UI Demo sample code project
================================================================================
This sample code demonstrates how to use the built-in sample UI for fingerprint 
enrollment and verification.

To build the sample, use VC++ 7.0 or later.

The sample dialog boxes are based on ATL dialogs.


===========
MAIN DIALOG
===========


The main dialog contains buttons for calling the sample Fingerprint Enrollment 
and Verification dialogs. It also provides examples of changing various 
parameters and settings that can be used within the enrollment and verification 
processes.

Fingerprint Mask
----------------

This value is used to display previously enrolled fingerprints on the Enrollment 
dialog that shows the fingerprint map. The number entered her is the sum of all 
fingers to be highlighted where each finger from the left pinky to the right 
pinky is twice the value of the previous finger.

That is: 

Left little finger = 1
Left ring finger = 2
Left middle finger = 4
Left index finger = 8
Left thumb = 16 
...
Right little finger = 512

Entering a Fingerprint Mask of 516 would highlight the left middle finger and 
the right liitle finger.

Max. Enrolled Fingerprint Count
-------------------------------
Defines the maximum number of fingerprints that the user can enroll.

Callback Return Value
---------------------
Illustrates how the return value affects the program workflow.

Enroll Fingerprints
-------------------
This button displays the Fingerprint Enrollment dialogs discussed below.

Custom Caption
--------------
Illustrates the ability to enter a custom titlebar caption for the dialog used 
to verify a fingerprint.

Custom Text
-----------
Illustrates the ability to enter custom text into the text area for the dialog 
used to verify a fingerprint. The default text shown is To verify your 
identity, touch the fingerprint reader with any enrolled finger.

Custom Banner Path\.BMP 
----------------------
Illustrates the ability to use a custom banner for the dialog used to verify a 
fingerprint.

On Error, Callback Return Value
-------------------------------
Indicates how to designate the return value (and behavior) for a callback.

- Retry: Displays a message box with a specified (retry) message. Closing the 
message box returns control to the previous dialog.
- Abort: Displays a message box with a specified (abort) message. Closing the 
message box also closes the previous dialog.

Return Values
-------------
Illustrates a few of the return values generated by the fingerprint verification 
process.

- Feature Set Matched? IDC_CHECK_IS_MATCHED is TRUE if the fingerprint 
verification enrollment set matches the fingerprint enrollment template. In our 
sample UI, a check is placed in the checkbox.

- False Accept Rate - Returns the percentage of probability that non matching 
fingerprints would return a match.

Verify Fingerprints
-------------------
This button displays the Verify Your Fingerprint dialog discussed below.

==============================
Fingerprint Enrollment dialogs
==============================

This series of dialogs and message boxes illustrates 

- selecting a fingerprint to enroll or delete, 
- enrolling and deleting fingerprints
- customizing the enrollment and verification UI and processes.

Enrolling a fingerprint consists of capturing four fingerprint images, 
converting them into fingerprint pre-enrollment feature sets, and then creating 
the Enrollment template from them. 

Clicking the Enroll Fingerprints?button calls the DPEnrollUI function, which 
displays a sample UI for fingerprint enrolment. The UI allows a user to choose 
which fingerprint they want to enroll or delete. 

Upon successful fingerprint enrolment or deletion the callback function provided 
as the fourth parameter in DPEnrollUI will be called. The second parameter passed 
in callback indicates the action chosen by the user, i.e. fingerprint enrollment 
or deletion. The third parameter is the fingerprint index of the fingerprint that 
will be enrolled or deleted. The fourth parameter is an opaque blob containing 
the fingerprint enrollment template.  

===========================
Verify Your Identity dialog
===========================

This dialog verifies a fingerprint, i.e. it captures a fingerprint image, 
converts it into a fingerprint verification feature set, and compares the 
feature set against a fingerprint enrollment template (either one previously 
created in the Enrollment dialog or one read from disk.)

Clicking the Verify Fingerprints?button calls the DPVerifyUI function which 
displays a sample UI for fingerprint verification. 

When the user touches the fingerprint reader, the callback function provided as 
the second parameter in the DPVerifyUI call will be called. 

An opaque blob containing the verification feature set created from the user 
fingerprint image will be passed as the second parameter in this callback function.

This feature set will be matched against the enrollment templates created 
previously during the enrolment operation. If it matches, the function returns 
S_OK and the Verification dialog is closed.

