0% found this document useful (0 votes)
92 views143 pages

One Touch For Windows SDK Com Activex Developer Guide

The document is a Developer Guide for the One Touch® for Windows® SDK, COM/ActiveX® Edition, Version 1.1, published by DigitalPersona, Inc. It includes information on installation, system requirements, and technical support, as well as detailed API references and workflows for fingerprint recognition. The guide is intended for developers and provides essential resources and conventions for using the SDK effectively.

Uploaded by

David Sanchez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views143 pages

One Touch For Windows SDK Com Activex Developer Guide

The document is a Developer Guide for the One Touch® for Windows® SDK, COM/ActiveX® Edition, Version 1.1, published by DigitalPersona, Inc. It includes information on installation, system requirements, and technical support, as well as detailed API references and workflows for fingerprint recognition. The guide is intended for developers and provides essential resources and conventions for using the SDK effectively.

Uploaded by

David Sanchez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

DigitalPersona, Inc.

One Touch® for Windows® SDK


COM/ActiveX® Edition
Version 1.1

Developer Guide
DigitalPersona, Inc.
© 1996–2008 DigitalPersona, Inc. All Rights Reserved.
All intellectual property rights in the DigitalPersona software, firmware, hardware, and documentation included with or
described in this guide are owned by DigitalPersona or its suppliers and are protected by United States copyright laws,
other applicable copyright laws, and international treaty provisions. DigitalPersona and its suppliers retain all rights not
expressly granted.
DigitalPersona, One Touch, and [Link].U are trademarks of DigitalPersona, Inc., registered in the United States and other
countries. Adobe and Adobe Reader are either registered trademarks or trademarks of Adobe Systems Incorporated in the
United States and/or other countries. Citrix is a trademark of Citrix Systems, Inc. and/or one or more of its subsidiaries, and
may be registered in the United States Patent and Trademark Office and in other countries. Microsoft, Visual Basic, Visual
C++, Visual Studio, Vista, Windows, and Windows Server are registered trademarks of Microsoft Corporation in the United
States and other countries. All other trademarks are the property of their respective owners.
This guide and the software it describes are furnished under license as set forth in the “License Agreement” that is shown
during the installation process.
Except as permitted by such license or by the terms of this guide, no part of this document may be reproduced, stored,
transmitted, and translated, in any form and by any means, without the prior written consent of DigitalPersona. The
contents of this guide are furnished for informational use only and are subject to change without notice. Any mention of
third-party companies and products is for demonstration purposes only and constitutes neither an endorsement nor a
recommendation. DigitalPersona assumes no responsibility with regard to the performance or use of these third-party
products. DigitalPersona makes every effort to ensure the accuracy of its documentation and assumes no responsibility or
liability for any errors or inaccuracies that may appear in it.

Technical Support
Maintenance and technical support are available for this product from DigitalPersona, its partners, and resellers. Once you
have paid for maintenance and technical support and agreed to the support terms, you may obtain this support through a
variety of mechanisms, including the online form explained in the next paragraph.
The DigitalPersona Web site provides an online technical support form at [Link]
enterprise/[Link]. Simply describe your issue and include your contact information, and a technical support
representative will contact you shortly by email or by phone.
Phone support is available at (877) 378-2740 in the U.S. only.
Outside the U.S., call +1 650-474-4000.

Feedback
Although the information in this guide has been thoroughly reviewed and tested, we welcome your feedback on any
errors, omissions, or suggestions for future improvements. Please contact us at
TechPubs@[Link]
or
DigitalPersona, Inc.
720 Bay Road, Suite 100
Redwood City, California 94063
USA
(650) 474-4000
(650) 298-8313 Fax

Document Publication Date: January 30, 2008


Table of Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Target Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Notational Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Online Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Supported DigitalPersona Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Fingerprint Template Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Install the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Insert the Fingerprint Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Using the Sample Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Installing the SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Installing the Runtime Environment (RTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Installing and Uninstalling the RTE Silently . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Biometric System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Fingerprint Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Fingerprint Enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Fingerprint Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
False Positives and False Negatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Fingerprint Enrollment Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Fingerprint Enrollment with UI Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Fingerprint Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Fingerprint Verification with UI Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Fingerprint Data Object Serialization/Deserialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide iii
Table of Contents

5 API Reference for Visual Basic Developers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30


Component Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
DPFPCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
StartCapture Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
StopCapture Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Priority Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
ReaderSerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
OnComplete Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
OnFingerGone Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
OnFingerTouch Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
OnReaderConnect Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
OnReaderDisconnect Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
OnSampleQuality Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
DPFPData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Deserialize Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Serialize Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
DPFPEnrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
AddFeatures Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Clear Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
FeaturesNeeded Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Template Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
TemplateStatus Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
DPFPEnrollmentControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
EnrolledFingersMask Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
MaxEnrollFingerCount Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
ReaderSerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
OnDelete Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
OnEnroll Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
DPFPEventHandlerStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Status Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
DPFPFeatureExtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
CreateFeatureSet Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
FeatureSet Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
DPFPFeatureSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
DPFPReaderDescription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
FirmwareRevision Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
HardwareRevision Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Language Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
ImpressionType Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
ProductName Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide iv
Table of Contents

SerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
SerialNumberType Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Technology Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Vendor Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
DPFPReadersCollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Reader Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Count Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Item Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
_NewEnum Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
DPFPSample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
DPFPSampleConversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
ConvertToANSI381 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
ConvertToPicture Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
DPFPTemplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
DPFPVerification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Verify Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
FARRequested Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
DPFPVerificationControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
ReaderSerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
OnComplete Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
DPFPVerificationResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
FARAchieved Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Verified Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
DPFPCaptureFeedbackEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
DPFPCapturePriorityEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
DPFPEventHandlerStatusEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
DPFPDataPurposeEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
DPFPReaderImpressionTypeEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
DPFPReaderTechnologyEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
DPFPSerialNumberTypeEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
DPFPTemplateStatusEnum Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6 API Reference for C++ Developers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65


Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
IDPFPCapture Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
IDPFPCapture::Priority Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
IDPFPCapture::ReaderSerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
IDPFPCapture::StartCapture Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
IDPFPCapture::StopCapture Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide v
Table of Contents

_IDPFPCaptureEvents Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
_IDPFPCaptureEvents::OnComplete Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
_IDPFPCaptureEvents::OnFingerGone Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
_IDPFPCaptureEvents::OnFingerTouch Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
_IDPFPCaptureEvents::OnReaderConnect Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
_IDPFPCaptureEvents::OnReaderDisconnect Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
_IDPFPCaptureEvents::OnSampleQuality Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
IDPFPData Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
IDPFPData::Deserialize Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
IDPFPData::Serialize Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
IDPFPEnrollment Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
IDPFPEnrollment::AddFeatures Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
IDPFPEnrollment::Clear Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
IDPFPEnrollment::FeaturesNeeded Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
IDPFPEnrollment::Template Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
IDPFPEnrollment::TemplateStatus Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
IDPFPEnrollmentControl Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
IDPFPEnrollmentControl::EnrolledFingersMask Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
IDPFPEnrollmentControl::MaxEnrollFingerCount Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
IDPFPEnrollmentControl::ReaderSerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
_IDPFPEnrollmentControlEvents Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
_IDPFPEnrollmentControlEvents::OnDelete Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
_IDPFPEnrollmentControlEvents::OnEnroll Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
IDPFPEventHandlerStatus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
IDPFPEventHandlerStatus::Status Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
IDPFPFeatureExtraction Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
IDPFPFeatureExtraction::CreateFeatureSet Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
IDPFPFeatureExtraction::FeatureSet Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
IDPFPFeatureSet Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
IDPFPReaderDescription Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
IDPFPReaderDescription::FirmwareRevision Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
IDPFPReaderDescription::HardwareRevision Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
IDPFPReaderDescription::Language Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
IDPFPReaderDescription::ImpressionType Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
IDPFPReaderDescription::ProductName Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
IDPFPReaderDescription::SerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
IDPFPReaderDescription::SerialNumberType Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
IDPFPReaderDescription::Technology Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
IDPFPReaderDescription::Vendor Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide vi
Table of Contents

IDPFPReadersCollection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
IDPFPReadersCollection::Reader Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
IDPFPReadersCollection::Count Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
IDPFPReadersCollection::Item Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
IDPFPReadersCollection::_NewEnum Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
IDPFPSample Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
IDPFPSampleConversion Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
IDPFPSample::ConvertToANSI381 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
IDPFPSample::ConvertToPicture Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
IDPFPTemplate Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
IDPFPVerification Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
IDPFPVerification::FARRequested Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
IDPFPVerification::Verify Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
IDPFPVerificationControl Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
IDPFPVerificationControl::ReaderSerialNumber Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
_IDPFPVerificationControlEvents Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
_IDPFPVerificationControlEvents::OnComplete Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
IDPFPVerificationResult Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
IDPFPVerificationResult::FARAchieved Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
IDPFPVerificationResult::Verified Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
DPFPCaptureFeedbackEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
DPFPCapturePriorityEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
DPFPEventHandlerStatusEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
DPFPDataPurposeEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
DPFPReaderImpressionTypeEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
DPFPReaderTechnologyEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
DPFPSerialNumberTypeEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
DPFPTemplateStatusEnum Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

7 User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107


DPFPEnrollmentControl Object User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Enrolling a Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Deleting a Fingerprint Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
DPFPVerificationControl Object User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8 Redistribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
RTE\Install Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Redist Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide vii
Table of Contents

Fingerprint Reader Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119


Hardware Warnings and Regulatory Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Fingerprint Reader Use and Maintenance Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

A Setting the False Accept Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120


False Accept Rate (FAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Representation of Probability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Requested FAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Specifying the FAR in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Specifying the FAR in Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Achieved FAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

B Platinum SDK Registration Template Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123


Platinum SDK Registration Template Conversion for Microsoft Visual C++ Applications . . . . . . . . . . . . 123
Platinum SDK Registration Template Conversion for Visual Basic 6.0 Applications . . . . . . . . . . . . . . . . . 125

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide viii
Introduction 1

The One Touch® for Windows SDK is a software development tool that enables developers to integrate
fingerprint biometrics into a wide set of Microsoft® Windows®-based applications, services, and products. The
tool enables developers to perform basic fingerprint biometric operations: capturing a fingerprint from a
DigitalPersona fingerprint reader, extracting the distinctive features from the captured fingerprint sample, and
storing the resulting data in a template for later comparison of a submitted fingerprint with an existing
fingerprint template.

In addition, the One Touch for Windows SDK enables developers to use a variety of programming languages in
a number of development environments to create their applications. The product includes detailed
documentation and sample code that can be used to guide developers to quickly and efficiently produce
fingerprint biometric additions to their products.

The One Touch for Windows SDK builds on a decade-long legacy of fingerprint biometric technology, being
the most popular set of development tools with the largest set of enrolled users of any biometric product in the
world. Because of its popularity, the DigitalPersona® Fingerprint Recognition Engine software —with its high
level of accuracy—and award-winning [Link].U® Fingerprint Reader hardware have been used with the widest-
age, hardest-to-fingerprint demographic of users in the world.

The One Touch for Windows SDK has been designed to authenticate users on the Microsoft® Windows Vista®
and Microsoft® Windows® XP operating systems running on any of the x86-based platforms. The product is
used with DigitalPersona fingerprint readers in a variety of useful configurations: standalone USB peripherals,
modules that are built into customer platforms, and keyboards. The DigitalPersona One Touch I.D. SDK product
can also be implemented along with the One Touch for Windows SDK product to add fast fingerprint
identification capability to a developer’s design.

Target Audience
This guide is for developers who have a working knowledge of the C++ or Visual Basic programming language
and the RPC paradigm as it applies to COM, or familiarity with OLE Automation model scripting and type
libraries.

Chapter Overview
Chapter 1, Introduction (this chapter), describes the audience for which this guide is written; defines the
typographical, notational, and naming conventions used throughout this guide; cites a number of resources
that may assist you in using the One Touch for Windows SDK: COM/ActiveX Edition; identifies the minimum
system requirements needed to run the One Touch for Windows SDK: COM/ActiveX Edition; and lists the
DigitalPersona products and fingerprint templates supported by the One Touch for Windows SDK: COM/
ActiveX Edition.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 1
Chapter 1: Introduction Document Conventions

Chapter 2, Quick Start, provides a quick introduction to the One Touch for Windows SDK: COM/ActiveX Edition
using one of the sample applications provided as part of the SDK.

Chapter 3, Installation, contains instructions for installing the various components of the product and identifies
the files and folders that are installed on your hard disk.

Chapter 4, Overview, introduces One Touch for Windows SDK: COM/ActiveX Edition terminology and concepts.
This chapter also includes typical workflow diagrams and explanations of the One Touch for Windows: COM/
ActiveX Edition API functions used to perform the tasks in the workflows.

Chapter 5, API Reference for Visual Basic Developers, defines the component objects (including methods,
properties, and events) and the enumerations that are used for developing applications based on the One
Touch for Windows: COM/ActiveX Edition API in Microsoft® Visual Basic®.

Chapter 6, API Reference for C++ Developers, defines the interfaces (including their methods, properties, and
events) and the enumerations that are used for developing applications based on the One Touch for Windows:
COM/ActiveX Edition API in C++.

Chapter 7, User Interface, describes the functionality of the user interfaces included with the
DPFPEnrollmentControl and DPFPVerificationControl controls.

Chapter 8, Redistribution, identifies the files that you may distribute according to the End User License
Agreement (EULA) and lists the functionalities that you need to provide to your end users when you develop
products based on the One Touch for Windows: COM/ActiveX Edition API.

Appendix A, Setting the False Accept Rate, provides information about determining and using specific values for
the FAR and evaluating and testing achieved values.

Appendix B, Platinum SDK Registration Template Conversion, contains sample code for converting Platinum SDK
registration templates for use with the One Touch for Windows SDK: COM/ActiveX Edition.

A glossary and an index are also included for your reference.

Document Conventions
This section defines the notational, typographical, and naming conventions used in this guide.

Notational Conventions
The following notational conventions are used throughout this guide:

NOTE: Notes provide supplemental reminders, tips, or suggestions.

IMPORTANT: Important notations contain significant information about system behavior, including problems
or side effects that can occur in specific situations.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 2
Chapter 1: Introduction Typographical Conventions

Typographical Conventions
The following typographical conventions are used in this guide:

Typeface Purpose Example

Bold Used for keystrokes and window and dialog Click Fingerprint Enrollment.
box elements and to indicate data types
The Fingerprint Enrollment dialog box appears.
String that specifies a fingerprint reader serial
number

Courier Used to indicate computer programming code When SampleQualityGood is returned, the
bold OnComplete event is fired.
Deserializes a data object returned by the
IDPFPData::Serialize method.

Italics Used for emphasis or to introduce new terms This section includes illustrations of typical fingerprint
enrollment and fingerprint verification workflows.
If you are viewing this document online,
(emphasis)
clicking on text in italics may also activate a
hypertext link to other areas in this guide or to A fingerprint is an impression of the ridges on the skin
URLs. of a finger. (new term)
See Installing the SDK on page 8. (link to heading and
page)

Naming Conventions
The DPFP prefix used in API methods, properties, data types, and constants stands for DigitalPersona
Fingerprint, and the IDPFP prefix is used for interfaces.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 3
Chapter 1: Introduction Additional Resources

Additional Resources
You can refer to the resources in this section to assist you in using the One Touch for Windows SDK: COM/
ActiveX Edition.

Related Documentation

Subject Document

Fingerprint recognition, including the history and basics The DigitalPersona White Paper: Guide to Fingerprint
of fingerprint identification and the advantages of Recognition (Fingerprint [Link] located in the Docs
DigitalPersona’s Fingerprint Recognition Algorithm folder on the One Touch for Windows SDK product CD)

Late-breaking news about the product The [Link] files provided in the root directory of the
product CD as well as in some subdirectories

Online Resources

Web Site name URL

DigitalPersona Developer Connection Forum for [Link]


DigitalPersona Developers

Latest updates for DigitalPersona software products [Link]


[Link]

System Requirements
This section lists the minimum software and hardware requirements needed to run the One Touch for
Windows SDK: COM/ActiveX Edition.
„ x86-based processor or better
„ CD-/DVD-ROM drive
„ Microsoft® Windows® 2000 Professional SP4; Microsoft® Windows® XP Home, Professional, or Embedded1;
Microsoft® Windows Server® 2003 SP1; or Microsoft® Windows Vista®; only 32-bit versions supported
„ USB port on the computer where the fingerprint reader is to be connected
„ DigitalPersona [Link].U 4000B Fingerprint Reader

1. A list of DLL dependencies for installation of your application on Microsoft Windows XP Embedded, One Touch for Windows XPE [Link], is
located in the Docs folder on the product CD.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 4
Chapter 1: Introduction Supported DigitalPersona Products

Supported DigitalPersona Products


The One Touch for Windows SDK: COM/ActiveX Edition supports the following DigitalPersona products:
„ DigitalPersona [Link].U 4000B fingerprint readers and modules
„ DigitalPersona [Link].U Fingerprint Keyboard

Fingerprint Template Compatibility


Fingerprint templates produced by the One Touch for Windows SDK are also compatible with the following
DigitalPersona SDKs:
„ Gold SDK
„ Gold CE SDK
„ One Touch for Windows SDK, all editions
„ One Touch for Linux SDK, all distributions

NOTE: Platinum SDK registration templates must be converted to a compatible format to work with these
SDKs. See Appendix B on page 123 for sample code that converts Platinum SDK templates to this
format.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 5
Quick Start 2

This chapter provides a quick introduction to the One Touch for Windows SDK: COM/ActiveX Edition using one
of the sample applications provided as part of the One Touch for Windows SDK. This application is a Microsoft®
Visual Basic® 6 project that demonstrates the functionality of the user interfaces included in the
DPFPEnrollmentControl and DPFPVerificationControl component objects. The user
interfaces are described in more detail in DPFPEnrollmentControl Object User Interface on page 107 and
DPFPVerificationControl Object User Interface on page 116.

Install the Software


Before you can use the sample application, you must install the One Touch for Windows SDK: COM/ActiveX
Edition, which includes the runtime environment (RTE).

To install the One Touch for Windows SDK: COM/ActiveX Edition


1. Insert the One Touch for Windows product CD into your CD/DVD-ROM drive.

2. In the SDK folder, open the [Link] file, and then click Next.

3. Follow the installation instructions as they appear.

4. Restart your computer.

Insert the Fingerprint Reader


Insert the fingerprint reader into the USB connector on the system where you installed the SDK.

Using the Sample Application


By performing the exercises in this section, you will
„ Start the sample application
„ Enroll a fingerprint
„ Verify a fingerprint
„ Unenroll (delete) a fingerprint
„ Exit the sample application

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 6
Chapter 2: Quick Start Using the Sample Application

To start the sample application


„ Open the [Link] file location in the <destination folder>One Touch SDK\COM-ActiveX\Samples\
VB6\UI Support folder.
The VB Demo dialog box appears.

Enrolling a fingerprint consists of scanning your fingerprint four times using the fingerprint reader.

To enroll a fingerprint
1. In the VB Demo dialog box, click Enroll Fingerprints.
The Fingerprint Enrollment dialog box appears.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 7
Chapter 2: Quick Start Using the Sample Application

2. In the right “hand,” click the index finger.


A second Fingerprint Enrollment dialog box appears.

3. Using the fingerprint reader, scan your right index fingerprint.

4. Repeat step 3 until the Enrollment was successful message appears.

5. Click Close.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 8
Chapter 2: Quick Start Using the Sample Application

To verify a fingerprint
1. In the VB Demo dialog box, click Verify Fingerprint.
The Verify Your Identify dialog box appears.

2. Using the fingerprint reader, scan your right index fingerprint.


In the Verify Your Identify dialog box, a green check mark appears over the fingerprint, which indicates
that your fingerprint was verified.

3. Using the fingerprint reader, scan your right middle fingerprint.


In the Verify Your Identify dialog box, a red question mark appears over the fingerprint, which indicates
that your fingerprint was not verified.

4. Click Close.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 9
Chapter 2: Quick Start Using the Sample Application

To unenroll (delete) a fingerprint


1. In the VB Demo dialog box, click Enroll Fingerprints.
The Fingerprint Enrollment dialog box appears, indicating that you have enrolled your right index
fingerprint.

2. On the right “hand,” click the green index finger.


A message box appears, asking you to verify the deletion.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 10
Chapter 2: Quick Start Using the Sample Application

3. In the message box, click Yes.


The right index finger is no longer green, indicating that the fingerprint associated with that finger is not
enrolled, or has been deleted.

To exit the application


„ In the VB Demo dialog box, click Quit.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 11
Installation 3

This chapter contains instructions for installing the various components of the One Touch for Windows SDK:
COM/ActiveX Edition and identifies the files and folders that are installed on your hard disk.

The following two installations are located on the product CD:


„ SDK, which you use in developing your application. This installation is located in the SDK folder.
„ RTE (runtime environment), which you must provide to your end users to implement the One Touch for
Windows SDK: COM/ActiveX Edition interfaces, objects, methods, and properties. This installation is
located in the RTE folder. (The RTE installation is also included in the SDK installation.)

Installing the SDK


To install the One Touch for Windows SDK: COM/ActiveX Edition
1. Insert the One Touch for Windows product CD into your CD/DVD-ROM drive.

2. In the SDK folder, open the [Link] file, and then click Next.

3. Follow the installation instructions as they appear.

4. Restart your computer.

Table 1 describes the files and folders that are installed in the <destination folder> folder on your hard disk. The
RTE files and folders, which are listed in Table 2 on page 13, are also installed on your hard disk.

NOTE: All installations share the DLLs and the [Link] file that are installed with the C/C++ edition.
Additional product-specific files are provided for other editions.

Table 1. One Touch for Windows SDK: COM/ActiveX Edition installed files and folders

Folder File Description

One Touch SDK\COM- One Touch for Windows SDK DigitalPersona One Touch for Windows SDK:
ActiveX\Docs COM-ActiveX Developer COM/ActiveX Edition Developer Guide
[Link]

One Touch SDK\COM- This folder contains a sample Microsoft Visual Basic 6 project that shows how to use
ActiveX\Samples\VB6\ the One Touch for Windows: COM/ActiveX Edition API for performing fingerprint
Enrollment Sample enrollment and fingerprint verification

One Touch SDK\COM- This folder contains a sample Microsoft Visual Basic 6 project that demonstrates the
ActiveX\Samples\VB6\UI functionality of the user interfaces included in the DPFPEnrollmentControl and
Support DPFPVerificationControl component objects of the One Touch for Windows: COM/
ActiveX Edition API

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 12
Chapter 3: Installation Installing the Runtime Environment (RTE)

Installing the Runtime Environment (RTE)


When you develop a product based on the One Touch for Windows SDK: COM/ActiveX Edition, you need to
provide the redistributables to your end users. These files are designed and licensed for use with your
application. You may include the installation files located in the RTE\Install folder in your application or you
may incorporate the redistributables directly into your installer. You may also use the merge modules located
in the Redist folder on the product CD to create your own MSI installer. (See Redistribution on page 117 for
licensing terms.)

If you created an application based on the One Touch for Windows: COM/ActiveX Edition APIs that does not
include an installer, your end users must install the One Touch for Windows: COM/ActiveX Edition Runtime
Environment to run your application. The latest version of the RTE is available from the DigitalPersona Web site
at [Link]

To install the One Touch for Windows: COM/ActiveX Edition Runtime Environment
1. Insert the One Touch for Windows product CD into your CD-/DVD-ROM drive.

2. In the RTE folder, open the [Link] file.

3. Follow the installation instructions as they appear.

Table 2 identifies the files that are installed on your hard disk.

Table 2. One Touch for Windows SDK: COM/ActiveX Edition RTE installed files and folders

Folder File Description

<destination folder>\Bin [Link] DLLs and executable file used by the all of the
One Touch for Windows APIs
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 13
Chapter 3: Installation Installing and Uninstalling the RTE Silently

Table 2. One Touch for Windows SDK: COM/ActiveX Edition RTE installed files and folders (continued)

Folder File Description

<destination folder>\Bin\ [Link] DLLs used by the One Touch for Windows: COM/
COM-ActiveX ActiveX Edition API
[Link]
[Link]
[Link]

<system folder> [Link] DLLs used by all of the One Touch for Windows
SDK APIs
[Link]
[Link]
[Link]
[Link]

Installing and Uninstalling the RTE Silently


The One Touch for Windows project CD contains a batch file, [Link], that you can use to silently install
the RTE. In addition, you can modify the file to selectively install the various features of the RTE. Refer to the file
for instructions.

The product CD also contains a file, [Link], that you can use to silently uninstall the RTE.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 14
Overview 4

This chapter introduces One Touch for Windows SDK: COM/ActiveX Edition concepts and terminology. (For
more details on the subject of fingerprint biometrics, refer to the “DigitalPersona White Paper: Guide to
Fingerprint Recognition” included on the One Touch for Windows product CD.) This chapter also includes
typical workflow diagrams and explanations of the One Touch for Windows: COM/ActiveX Edition API functions
used to perform the tasks in the workflows.

Biometric System
A biometric system is an automatic method of identifying a person based on the person’s unique physical and/
or behavioral traits, such as a fingerprint or an iris pattern, or a handwritten signature or voice. Biometric
identifiers are
„ Universal
„ Distinctive
„ Persistent (sufficiently unchangeable over time)
„ Collectable

Biometric systems have become an essential component of effective person recognition solutions because
biometric identifiers cannot be shared or misplaced and they naturally represent an individual’s bodily identity.
Substitute forms of identity, such as passwords (commonly used in logical access control) and identity cards
(frequently used for physical access control), do not provide this level of authentication that strongly validates
the link to the actual authorized user.

Fingerprint recognition is the most popular and mature biometric system used today. In addition to meeting
the four criteria above, fingerprint recognition systems perform well (that is, they are accurate, fast, and
robust), they are publicly acceptable, and they are hard to circumvent.

Fingerprint
A fingerprint is an impression of the ridges on the skin of a finger. A fingerprint recognition system uses the
distinctive and persistent characteristics from the ridges, also referred to as fingerprint features, to distinguish
one finger (or person) from another. The One Touch for Windows SDK: COM/ActiveX Edition incorporates the
DigitalPersona Fingerprint Recognition Engine (Engine), which uses traditional as well as modern fingerprint
recognition methodologies to convert these fingerprint features into a format that is compact, distinguishing,
and persistent. The Engine then uses the converted, or extracted, fingerprint features in comparison and
decision-making to provide reliable personal recognition.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 15
Chapter 4: Overview Fingerprint Recognition

Fingerprint Recognition
The DigitalPersona fingerprint recognition system uses the processes of fingerprint enrollment and fingerprint
verification, which are illustrated in the block diagram in Figure 1. Some of the tasks in these processes are done
by the fingerprint reader and its driver; some are accomplished using One Touch for Windows: COM/ActiveX
Edition API functions, which use the Engine; and some are provided by your software application and/or
hardware.

)LQJHUSULQW(QUROOPHQW

8VHU,GHQWLILHU

)LQJHUSULQW5HDGHU )HDWXUH([WUDFWLRQ 7HPSODWH&UHDWLRQ 7HPSODWH6WRUDJH

)LQJHUSULQW9HULILFDWLRQ

8VHU,GHQWLILHU

&RPSDULVRQ 6RIWZDUH$SSOLFDWLRQ
)LQJHUSULQW5HDGHU )HDWXUH([WUDFWLRQ
DQG'HFLVLRQ DQGRU+DUGZDUH

/HJHQG
2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;
$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 1. DigitalPersona fingerprint recognition system

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 16
Chapter 4: Overview Fingerprint Enrollment

Fingerprint Enrollment
Fingerprint enrollment is the initial process of collecting fingerprint data from a person by extracting the
fingerprint features (performing fingerprint feature extraction) from the person’s fingerprint image (or fingerprint
sample) for the purpose of enrollment and then storing the resulting data in a template for later comparison.
The following procedure for typical fingerprint enrollment incorporates the One Touch for Windows: COM/
ActiveX Edition API fingerprint enrollment function that computes a fingerprint template from a required
number of fingerprint feature sets. (Steps preceded by an asterisk are not done by the fingerprint reader or are
not part of the One Touch for Windows SDK: COM/ActiveX Edition.)

1. *Obtain the user ID of the person to be enrolled.

2. Capture the person’s fingerprint as a digital image via the fingerprint reader.

3. Extract the fingerprint features from the image and create a fingerprint feature set for the purpose of
enrollment.

4. Create a fingerprint template for the person’s finger from a required number of fingerprint feature sets.

5. *Associate the fingerprint template with the person through an identifier (user ID), such as a PIN, a
password, or a user name.

6. *Store the fingerprint template, along with the user ID, for later comparison.
Fingerprint templates can be stored in any type of repository that you choose, such as a fingerprint
capture device, a smart card or a central database.

Fingerprint Verification
Fingerprint verification is the process of extracting the fingerprint features from a person’s fingerprint image
provided for the purpose of verification, comparing the resulting data to the template generated during
enrollment, and deciding if the two match. The following procedure for typical fingerprint verification
incorporates the One Touch for Windows: COM/ActiveX Edition API fingerprint verification function that
performs a one-to-one comparison and makes a decision of match or non-match. (Steps preceded by an asterisk
are not done by the fingerprint reader or are not part of the One Touch for Windows SDK: COM/ActiveX
Edition.)

1. *Obtain the user ID of the person to be verified.

2. Capture the person’s fingerprint as a digital image via the fingerprint reader.

3. Extract the fingerprint features from the image and create a fingerprint feature set for the purpose of
verification.

4. *Retrieve the fingerprint template associated with the user ID from your repository.

5. Compare the fingerprint feature set and the fingerprint template, and make a decision of match or non-
match.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 17
Chapter 4: Overview False Positives and False Negatives

6. *Act on the decision accordingly, for example, unlock the door to a building for a match, or deny access to
banking records for a non-match.

False Positives and False Negatives


Fingerprint recognition systems provide many security and convenience advantages over traditional methods
of recognition. However, they are essentially pattern recognition systems that inherently occasionally make
certain errors because no two impressions of the same finger are identical. During verification, sometimes a
person who is legitimately enrolled is rejected by the system (a false negative decision), and sometimes a
person who is not enrolled is accepted by the system (a false positive decision).

The proportion of false positive decisions is known as the false accept rate (FAR), and the proportion of false
negative decisions is known as the false reject rate (FRR). In fingerprint recognition systems, the FAR and the FRR
are traded off against each other, that is, the lower the FAR, the higher the FRR, and the higher the FAR, the
lower the FRR.

A One Touch for Windows: COM/ActiveX Edition API function enables you to set the value of the FAR, also
referred to as the security level, to accommodate the needs of your application. In some applications, such as an
access control system to a highly confidential site or database, a lower FAR is required. In other applications,
such as an entry system to an entertainment theme park, security (which reduces ticket fraud committed by a
small fraction of patrons by sharing their entry tickets) may not be as significant as accessibility for all of the
patrons, and it may be preferable to decrease the FRR at the expense of an increased FAR.

It is important to remember that the accuracy of the fingerprint recognition system is largely related to the
quality of the fingerprint. Testing with sizable groups of people over an extended period has shown that a
majority of people have feature-rich, high-quality fingerprints. These fingerprints will almost surely be
recognized accurately by the DigitalPersona Fingerprint Recognition Engine and practically never be falsely
accepted or falsely rejected. The DigitalPersona fingerprint recognition system is optimized to recognize
fingerprints of poor quality. However, a very small number of people may have to try a second or even a third
time to obtain an accurate reading. Their fingerprints may be difficult to verify because they are either worn
from manual labor or have unreadable ridges. Instruction in the proper use of the fingerprint reader will help
these people achieve the desired results.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 18
Chapter 4: Overview Workflows

Workflows
Typical workflows are presented in this section for the following operations:
„ Fingerprint enrollment
„ Fingerprint enrollment with UI support
„ Fingerprint verification
„ Fingerprint verification with UI support
„ Fingerprint data object serialization and deserialization

NOTE: Steps preceded by a double dagger (‡) are done by a fingerprint reader, and steps preceded by an
asterisk (*) are performed by an application. “VB page nn” and “C++ page nn” indicate page references
for the Visual Basic API reference and for the C++ API reference, respectively.

Fingerprint Enrollment Workflow


This section contains a typical workflow for performing fingerprint enrollment. The workflow is illustrated in
Figure 2 and is followed by explanations of the One Touch for Windows: COM/ActiveX Edition API functions
used to perform the tasks in the workflow.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 19
Chapter 4: Overview Fingerprint Enrollment Workflow

)LQJHUSULQW6DPSOH&DSWXUH
,PSOHPHQWHYHQWKDQGOHU
&UHDWH'3)3&DSWXUHREMHFW IRU'3)3&DSWXUH(YHQW 6HW'3)3&DSWXUHSURSHUWLHV
3ULRULW\5HDGHU6HULDO1XPEHU
HYHQWQRWLILFDWLRQV

%HJLQFDSWXULQJILQJHUSULQW 5HFHLYH2Q&RPSOHWH
VDPSOHVIURPILQJHUSULQWUHDGHU &DSWXUHILQJHUSULQWVDPSOH HYHQWZLWK
6WDUW&DSWXUHPHWKRG '3)36DPSOHREMHFW

6WRSFDSWXULQJ
ILQJHUSULQWVDPSOHV
6WRS&DSWXUHPHWKRG

)LQJHUSULQW)HDWXUH([WUDFWLRQ
&UHDWH &UHDWH'3)3)HDWXUH6HWREMHFWXVLQJ
'3)3)HDWXUH([WUDFWLRQ '3)3'DWD3XUSRVH(QUROOPHQW
REMHFW &UHDWH)HDWXUH6HWPHWKRG

5HFHLYH
'3)3)HDWXUH6HWREMHFWV

)LQJHUSULQW(QUROOPHQW
3HUIRUPV\VWHPIXQFWLRQRI
&UHDWH ILQJHUSULQWHQUROOPHQWDQG 5HFHLYH
'3)3(QUROOPHQWREMHFW UHWXUQ'3)37HPSODWHREMHFW '3)37HPSODWHREMHFW
$GG)HDWXUHVPHWKRG

&OHDUILQJHUSULQWWHPSODWHDQG
6HULDOL]H'3)37HPSODWHREMHFW VHW7HPSODWH6WDWXVWR
IRUVWRUDJH 7HPSODWH6WDWXV8QNQRZQ
&OHDUPHWKRG

/HJHQG
% 2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;
2SWLRQDOVWHS

$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 2. Typical fingerprint enrollment workflow

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 20
Chapter 4: Overview Fingerprint Enrollment Workflow

Fingerprint Sample Capture


1. *Create an instance of a DPFPCapture object (VB page 32, C++ page 67).

2. *Implement an event handler for DPFPCaptureEvents event notifications (VB page 34, C++
page 69).

3. Optionally, set the Priority and ReaderSerialNumber properties (VB page 32 and page 33; C++
page 67 and page 68).

4. Begin capturing fingerprint samples from the fingerprint reader by calling the StartCapture
method (VB page 32, C++ page 68).

5. ‡Capture a fingerprint sample from a fingerprint reader.

6. *Receive the OnComplete event with a DPFPSample object when the fingerprint sample is
successfully captured by the fingerprint reader (VB page 34 and page 51; C++ page 70 and page 91).

7. Stop capturing fingerprint samples by calling the StopCapture method (VB page 32, C++ page 69).

Fingerprint Feature Extraction


1. *Create an instance of a DPFPFeatureExtraction object (VB page 44, C++ page 82).

2. Create DPFPFeatureSet objects by calling the CreateFeatureSet method using the value
DPFPDataPurposeEnrollment and passing a DPFPSample object (VB page 44, C++ page 82).

3. *Receive the DPFPFeatureSet objects (VB page 45, C++ page 84).

Fingerprint Enrollment
1. *Create an instance of a DPFPEnrollment object (VB page 37, C++ page 73).

2. Perform the system function of fingerprint enrollment by calling the AddFeatures method and
passing the DPFPFeatureSet objects (VB page 37, C++ page 73).
When the TemplateStatus property returns the value DPFPTemplateStatusReady, a
DPFPTemplate object is created (VB page 38, C++ page 75).

3. *Receive the DPFPTemplate object (VB page 52, C++ page 93).

4. Serialize the DPFPTemplate object (see Serializing a Fingerprint Data Object on page 28).

5. *Store the serialized fingerprint template data in a fingerprint storage data subsystem.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 21
Chapter 4: Overview Fingerprint Enrollment with UI Support

Fingerprint Enrollment with UI Support


This section contains two typical workflows for performing fingerprint enrollment: one for enrolling a
fingerprint and one for deleting a fingerprint template. The workflows are illustrated in Figure 3 and Figure 4
and are followed by explanations of the One Touch for Windows: COM/ActiveX Edition API functions used to
perform the tasks in the workflows.

Enrolling a Fingerprint

)LQJHUSULQW(QUROOPHQW&RQWURO (QUROO)LQJHU
,PSOHPHQWHYHQWKDQGOHUIRU
&UHDWH'3)3(QUROOPHQW&RQWURO
'3)3(QUROOPHQW&RQWURO(YHQWV
REMHFW
HYHQWQRWLILFDWLRQV

6HW'3)3(QUROOPHQW&RQWUROSURSHUWLHV
(QUROOHG)LQJHUV0DVN0D[(QUROO)LQJHU&RXQW &DSWXUHILQJHUSULQWVDPSOH
5HDGHU6HULDO1XPEHU

5HFHLYH2Q(QUROOHYHQWZLWK 6HULDOL]H'3)37HPSODWHREMHFW
'3)37HPSODWHREMHFW IRUVWRUDJH

/HJHQG
%
2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;
2SWLRQDOVWHS

$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 3. Typical fingerprint enrollment with UI support workflow: Enrolling a fingerprint

1. *Create an instance of a DPFPEnrollmentControl object (VB page 39, C++ page 76).

2. *Implement an event handler for DPFPEnrollmentControlEvents event notifications (VB


page 42, C++ page 79).

3. Optionally, set the EnrolledFingersMask, MaxEnrollFingerCount, and


ReaderSerialNumber properties (VB page 39, page 40, and page 41; C++ page 76, page 77, and
page 78).

4. ‡Capture a fingerprint sample from a fingerprint reader.

5. *Receive the OnEnroll event and the DPFPTemplate object (VB page 43 and page 52; C++ page 80
and page 93).

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 22
Chapter 4: Overview Fingerprint Verification

6. Serialize the DPFPTemplate object (see Serializing a Fingerprint Data Object on page 28).

7. *Store the serialized fingerprint template data in a fingerprint storage data subsystem.

Deleting a Fingerprint Template

)LQJHUSULQW(QUROOPHQW&RQWURO 'HOHWH)LQJHUSULQW7HPSODWH
,PSOHPHQWHYHQWKDQGOHUIRU
&UHDWH'3)3(QUROOPHQW&RQWURO
'3)3(QUROOPHQW&RQWURO(YHQWV
REMHFW
HYHQWQRWLILFDWLRQV

6HW'3)3(QUROOPHQW&RQWUROSURSHUWLHV 5HFHLYH2Q'HOHWHHYHQW
(QUROOHG)LQJHUV0DVN
0D[(QUROO)LQJHU&RXQW5HDGHU6HULDO1XPEHU
ZLWKLQGH[YDOXH

'HOHWHDSSURSULDWHILQJHUSULQW
WHPSODWHIURPILQJHUSULQWGDWD
VWRUDJHVXEV\VWHP

/HJHQG
2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;
2SWLRQDOVWHS

$SSOLFDWLRQ QRWSDUWRI6'.

Figure 4. Typical fingerprint enrollment with UI support workflow: Deleting a fingerprint template

1. *Create an instance of a DPFPEnrollmentControl object (VB page 39, C++ page 76).

2. *Implement an event handler for DPFPEnrollmentControlEvents event notifications (VB


page 42, C++ page 79).

3. Optionally, set the EnrolledFingersMask, MaxEnrollFingerCount, and


ReaderSerialNumber properties (VB page 39, page 40, and page 41; C++ page 76, page 77, and
page 78).

4. *Receive the OnDelete event and the index value (VB page 42 and page 40; C++ page 79 and page 77).

5. *Delete the appropriate fingerprint template from the fingerprint data storage subsystem.

Fingerprint Verification
This section contains a typical workflow for performing fingerprint verification. The workflow is illustrated in
Figure 5 and is followed by explanations of the One Touch for Windows: COM/ActiveX Edition API functions
used to perform the tasks in the workflow.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 23
Chapter 4: Overview Fingerprint Verification

)LQJHUSULQW6DPSOH&DSWXUH
,PSOHPHQWHYHQWKDQGOHU
&UHDWH'3)3&DSWXUHREMHFW IRU'3)3&DSWXUH(YHQW 6HW'3)3&DSWXUHSURSHUWLHV
3ULRULW\5HDGHU6HULDO1XPEHU
HYHQWQRWLILFDWLRQV

%HJLQFDSWXULQJILQJHUSULQW 5HFHLYH2Q&RPSOHWH
VDPSOHVIURPILQJHUSULQWUHDGHU &DSWXUHILQJHUSULQWVDPSOH HYHQWZLWK
6WDUW&DSWXUHPHWKRG '3)36DPSOHREMHFW

6WRSFDSWXULQJ
ILQJHUSULQWVDPSOHV
6WRS&DSWXUHPHWKRG

)LQJHUSULQW)HDWXUH([WUDFWLRQ

&UHDWH &UHDWH'3)3)HDWXUH6HWREMHFWXVLQJ
'3)3)HDWXUH([WUDFWLRQ '3)3'DWD3XUSRVH9HULILFDWLRQ
REMHFW &UHDWH)HDWXUH6HWPHWKRG

5HFHLYH
'3)3)HDWXUH6HWREMHFW

)LQJHUSULQW9HULILFDWLRQ

&UHDWH 6HW'3)39HULILFDWLRQSURSHUW\
'3)39HULILFDWLRQREMHFW )$55HTXHVWHG

3HUIRUPV\VWHPIXQFWLRQRIILQJHUSULQW
YHULILFDWLRQDQGUHWXUQ 5HFHLYH
'3)39HULILFDWLRQ5HVXOWREMHFW '3)39HULILFDWLRQ5HVXOWREMHFW
9HULI\PHWKRG

5HWULHYHGHVHULDOL]HG
'3)37HPSODWHREMHFW

/HJHQG
$ 2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;
2SWLRQDOVWHS

$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 5. Typical fingerprint verification workflow

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 24
Chapter 4: Overview Fingerprint Verification

Fingerprint Sample Capture


1. *Create an instance of a DPFPCapture object (VB page 32, C++ page 67).

2. *Implement an event handler for DPFPCaptureEvents event notifications (VB page 34, C++
page 69).

3. Optionally, set the Priority and ReaderSerialNumber properties (VB page 32 and page 33; C++
page 67 and page 68).

4. Begin capturing fingerprint samples from the fingerprint reader by calling the StartCapture
method (VB page 32, C++ page 68).

5. ‡Capture a fingerprint sample from a fingerprint reader.

6. *Receive the OnComplete event with a DPFPSample object when the fingerprint sample is
successfully captured by the fingerprint reader (VB page 34 and page 51; C++ page 70 and page 91).

7. Stop capturing fingerprint samples by calling the StopCapture method (VB page 32, C++ page 69).

Fingerprint Feature Extraction


1. *Create an instance of a DPFPFeatureExtraction object (VB page 44, C++ page 82).

2. Create a DPFPFeatureSet object by calling the CreateFeatureSet method using the value
DPFPDataPurposeVerification and passing the DPFPSample object (VB page 44, C++
page 82).

3. *Receive the DPFPFeatureSet object (VB page 45, C++ page 84).

Fingerprint Verification
1. *Create an instance of a DPFPVerification object (VB page 52, C++ page 93).

2. Optionally, set the FARRequested property (VB page 53, C++ page 93).

3. *Retrieve the serialized fingerprint template data from the fingerprint data storage subsystem.

4. Create a DPFPTemplate object from the serialized data (see Deserializing a Serialized Fingerprint Data
Object on page 29).

5. Perform the system function of fingerprint verification by calling the Verify method and passing the
DPFPTemplate and DPFPFeatureSet objects (VB page 53, C++ page 94).

6. *Receive the DPFPVerificationResult object, which provides the comparison decision of match
or non-match (VB page 56, C++ page 97).

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 25
Chapter 4: Overview Fingerprint Verification with UI Support

Fingerprint Verification with UI Support


This section contains a typical workflow for performing fingerprint verification with UI support. The workflow is
illustrated in Figure 6 and is followed by explanations of the One Touch for Windows: COM/ActiveX Edition API
functions used to perform the tasks in the workflow.

)LQJHUSULQW9HULILFDWLRQ&RQWURO
,PSOHPHQWHYHQWKDQGOHUIRU
&UHDWH'3)39HULILFDWLRQ&RQWURO
'3)39HULILFDWLRQ&RQWURO(YHQWVHYHQW
REMHFW
QRWLILFDWLRQV

6HW'3)3(QUROOPHQW&RQWURO
SURSHUW\ &DSWXUHILQJHUSULQWVDPSOH
5HDGHU6HULDO1XPEHU

5HFHLYH2Q&RPSOHWH
HYHQWZLWK
'3)3)HDWXUH6HWREMHFW

)LQJHUSULQW9HULILFDWLRQ

&UHDWH 6HW'3)39HULILFDWLRQSURSHUW\
'3)39HULILFDWLRQREMHFW )$55HTXHVWHG

6HWDSSURSULDWHYDOXHIRU
3HUIRUPV\VWHPIXQFWLRQ 5HFHLYH
'3)3(YHQW+DQGOHU6WDWXV
RIILQJHUSULQWYHULILFDWLRQ '3)39HULILFDWLRQ5HVXOWREMHFW
REMHFW
DQGUHWXUQ
'3)39HULILFDWLRQ5HVXOWREMHFW
&UHDWH)HDWXUH6HWPHWKRG

5HWULHYHGHVHULDOL]HG
'3)37HPSODWHREMHFWV

/HJHQG
$ 2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;
2SWLRQDOVWHS

$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 6. Typical fingerprint verification with UI support workflow

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 26
Chapter 4: Overview Fingerprint Verification with UI Support

Fingerprint Verification Control


1. *Create an instance of a DPFPVerificationControl object (VB page 54, C++ page 95).

2. Implement an event handler for DPFPVerificationControlEvents event notifications (VB


page 42, C++ page 97).

3. Optionally, set the ReaderSerialNumber property (VB page 54, C++ page 96).

4. ‡Capture a fingerprint sample from a fingerprint reader.

5. Receive the OnComplete event with the DPFPFeatureSet object (VB page 55 and page 45, C++
page 97 and page 84).

Fingerprint Verification
1. *Create an instance of a DPFPVerification object (VB page 52, C++ page 93).

2. Optionally, set the FARRequested property (VB page 53, C++ page 93).

3. *Retrieve the serialized fingerprint template data from the fingerprint data storage subsystem.

4. Create a DPFPTemplate object from the serialized data (see Deserializing a Serialized Fingerprint Data
Object on page 29).

5. Perform the system function of fingerprint verification by calling the Verify method and passing the
DPFPTemplate and DPFPFeatureSet objects (VB page 53, C++ page 94).

6. *Receive the DPFPVerificationResult object, which provides the comparison decision of match
or non-match (VB page 56, C++ page 97).

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 27
Chapter 4: Overview Fingerprint Data Object Serialization/Deserialization

Fingerprint Data Object Serialization/Deserialization


This section contains two workflows: one for serializing a fingerprint data object and one for deserializing a
serialized fingerprint data object. The workflows are illustrated in Figure 7 and Figure 8 and are followed by
explanations of the One Touch for Windows: COM/ActiveX Edition API functions used to perform the tasks in
the workflows.

Serializing a Fingerprint Data Object

6HULDOL]HGDWDREMHFW

&UHDWHGDWDREMHFW 6HULDOL]HGDWDREMHFW
&UHDWH'3)3'DWDREMHFW '3)36DPSOH'3)3)HDWXUH6HW
6HULDOL]HPHWKRG
'3)37HPSODWH

6WRUHVHULDOL]HGGDWD
LQILQJHUSULQWGDWD
VWRUDJHVXEV\VWHP

/HJHQG
2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;

$SSOLFDWLRQ QRWSDUWRI6'.

Figure 7. Fingerprint data object serialization workflow

1. *Create an instance of a DPFPData object (VB page 36, C++ page 72).

2. Create a fingerprint data object. (See the various methods and properties for creating and returning
DPFPSample, DPFPFeatureSet, and DPFPTemplate objects.)

3. Serialize the data object by calling the Serialize method (VB page 36, C++ page 72).

4. *Store the serialized data in a fingerprint data storage subsystem.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 28
Chapter 4: Overview Fingerprint Data Object Serialization/Deserialization

Deserializing a Serialized Fingerprint Data Object

'HVHULDOL]HGDWDREMHFW

5HWULHYHVHULDOL]HGGDWD &UHDWHGDWDREMHFW
&UHDWH'3)3'DWDREMHFW IURPILQJHUSULQWGDWD '3)36DPSOH'3)3)HDWXUH6HW
VWRUDJHVXEV\VWHP '3)37HPSODWH

'HVHULDOL]HGDWDREMHFW
'HVHULDOL]HPHWKRG

/HJHQG
2QH7RXFKIRU:LQGRZV6'.&20$FWLYH;

$SSOLFDWLRQ QRWSDUWRI6'.

Figure 8. Deserialization of serialized fingerprint data object workflow

1. *Create an instance of a DPFPData object (VB page 36, C++ page 72).

2. *Retrieve the serialized data from a fingerprint data storage subsystem.

3. *Create an instance of a DPFPSample, DPFPFeatureSet, or DPFPTemplate object (VB page 51,


page 45, and page 52; C++ page 91, page 84, and page 93).

4. Deserialize the fingerprint data object by calling the Deserialize method (VB page 36, C++ page 72).

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 29
API Reference for Visual Basic Developers 5

This chapter defines the component objects (including methods, properties, and events) and the enumerations
for developing applications that incorporate the functionality of the One Touch for Windows: COM/ActiveX
Edition API in Visual Basic using the Component Object Model (COM) implementation.

Component Objects
IMPORTANT: All of the read/write properties of the One Touch for Windows SDK API component objects are
optional. If you do not set one of these properties, the default value is automatically used. When
deciding whether to set a parameter, be aware that DigitalPersona may change the default
values at any time without notice. If you want your application’s functionality to remain
consistent, you should set the properties accordingly.

The One Touch for Windows: COM/ActiveX Edition API COM implementation includes the component objects
defined in this section. Use the following list to quickly locate an object by name, by page number, or by
description.

Method Page Description

DPFPCapture 32 Captures a fingerprint sample from a fingerprint reader

DPFPData 36 Represents the data that is common to all fingerprint data objects

DPFPEnrollment 37 Performs the system function of fingerprint enrollment

DPFPEnrollmentControl 39 Contains an ActiveX control for creating and returning a fingerprint


template and for deleting a fingerprint template, and provides a user
interface

DPFPEventHandlerStatus 43 Returns codes that indicate the status of an operation

DPFPFeatureExtraction 44 Performs the system function of fingerprint feature extraction

DPFPFeatureSet 45 Represents a fingerprint feature set

DPFPReaderDescription 46 Provides information about a particular fingerprint reader

DPFPReadersCollection 49 Provides information about all of the fingerprint readers connected to


a system

DPFPSample 51 Represents a fingerprint sample

DPFPSampleConversion 51 Converts a fingerprint sample to an image for display

DPFPTemplate 52 Represents a fingerprint template

DPFPVerification 52 Performs the system function of fingerprint verification

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 30
Chapter 5: API Reference for Visual Basic Developers Component Objects

Method Page Description

DPFPVerificationControl 54 Contains an ActiveX control for creating and returning a fingerprint


feature set created for the purpose of verification, and provides a user
interface

DPFPVerificationResult 56 Represents the results of a fingerprint verification operation

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 31
Chapter 5: API Reference for Visual Basic Developers DPFPCapture

DPFPCapture
The DPFPCapture object captures a fingerprint sample from a fingerprint reader.

Methods

StartCapture Method
Begins capturing a fingerprint sample from a fingerprint reader. A call to this method is asynchronous and
returns immediately. The application continues to receive events until the StopCapture method is called
or when the DPFPCapture object is destroyed.

Syntax
[Link]()

Possible Errors

Error Code Message Description

-2147024809 One or more arguments A capture operation with the specified priority already
are invalid. exists. See DPFPCapturePriorityEnum on
page 59 for more information.

-2147024891 General access denied The application does not have sufficient privileges to
error. start capture operations with the specified priority. See
DPFPCapturePriorityEnum on page 59 for more
information.

StopCapture Method
Stops the fingerprint sample capture operation started with a call to the StartCapture method. This
method is optional.

Syntax
[Link]()

Properties

Priority Property
Gets or sets a value that specifies the priority of a fingerprint sample capture operation.

Syntax
[Link] [ = enumValue ]
[ enumValue = ] [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 32
Chapter 5: API Reference for Visual Basic Developers DPFPCapture

Possible Values

enumValue Enum that specifies or receives one of the DPFPCapturePriorityEnum


enumeration values (page 59)

This optional property is read/write. If you do not set it, the value DPFPCapturePriorityNormal is
used.

Possible Errors

Error Code Message Description

-2147352566 Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

ReaderSerialNumber Property
Gets or sets the serial number of a fingerprint reader that captures a fingerprint sample.

Syntax
[Link] [ = bstrValue ]
[ bstrValue = ] [Link]

Possible Values

strValue String that specifies or receives a fingerprint reader serial number

This optional property is read/write. If you do not set it, the following value is used:
{00000000-0000-0000-0000-000000000000}. This means that the application will receive events
from any of the fingerprint readers attached to the system.

Possible Errors

Error Code Message Description

-2147024809 One or more arguments The format of the string containing the fingerprint
are invalid. reader serial number is incorrect. It should be in GUID
format, for example, {A9EFB3F6-A8C8-4684-841E-
4330973057C6}.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 33
Chapter 5: API Reference for Visual Basic Developers DPFPCapture

Object Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

Events

OnComplete Event
Fires when a fingerprint sample is successfully captured by a fingerprint reader.

Syntax
Private Sub object_OnComplete(
ByVal bstrReaderSerNum As String,
ByVal oFingerprintSample As Object)

Parameters

bstrReaderSerNum String that specifies a fingerprint reader serial number

oFingerprintSample A DPFPSample object (page 51)

OnFingerGone Event
Fires when a user removes a finger from a fingerprint reader.

Syntax
Private Sub object_OnFingerGone(
ByVal bstrReaderSerNum As String)

Parameter

bstrReaderSerNum String that specifies a fingerprint reader serial number

OnFingerTouch Event
Fires when a user touches a fingerprint reader.

Syntax
Private Sub OnFingerTouch(
ByVal bstrReaderSerNum As String)

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 34
Chapter 5: API Reference for Visual Basic Developers DPFPCapture

Parameter

bstrReaderSerNum String that specifies a fingerprint reader serial number

OnReaderConnect Event
Fires when a fingerprint reader is attached to a system.

Syntax
Private Sub object_OnReaderConnect(
ByVal bstrReaderSerNum As String)

Parameter

bstrReaderSerNum String that specifies a fingerprint reader serial number

OnReaderDisconnect Event
Fires when a fingerprint reader is disconnected from a system.

Syntax
Private Sub object_OnReaderDisconnect(
ByVal bstrReaderSerNum As String)

Parameter

bstrReaderSerNum String that specifies a fingerprint reader serial number

OnSampleQuality Event
Fires when the quality of a fingerprint sample is verified. When SampleQualityGood is returned in the
SampleQuality parameter, the OnComplete event is fired (page 34).

Syntax
Private Sub object_OnSampleQuality(
ByVal bstrReaderSerNum As String,
ByVal enumSampleQuality As Enum)

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 35
Chapter 5: API Reference for Visual Basic Developers DPFPData

Parameters

bstrReaderSerNum String that specifies a fingerprint reader serial number

enumSampleQuality Enum that specifies one of the values, which provides feedback about a
fingerprint sample capture operation, from the
DPFPCaptureFeedbackEnum enumeration (page 58)

DPFPData
Represents the data that is common to all fingerprint data objects. The DPFPData object also provides
methods to serialize and deserialize the fingerprint data objects.

Methods

Deserialize Method
Deserializes a data object returned by the Serialize method.

Syntax
[Link](
ByRef aRawData() As Byte)

Parameter

aRawData Array of bytes that specifies a deserialized data object

Possible Errors

Error Code Message Description

-2147024809 One or more arguments The format of the data passed to the Deserialize
are invalid. method is incorrect.

Serialize Method
Serializes a data object and returns it as an array of bytes.

Syntax
Dim aRawData As Byte()
aRawData = [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 36
Chapter 5: API Reference for Visual Basic Developers DPFPEnrollment

Parameter

aRawData Array of bytes that receives a serialized data object

Object Information

Type library DigitalPersona One Touch for Windows Shared components 1.0
Library [Link]

See Also
DPFPFeatureSet on page 45
DPFPSample on page 51
DPFPTemplate on page 52

DPFPEnrollment
The DPFPEnrollment object performs the system function of fingerprint enrollment. This object creates a
fingerprint template from a specified number of fingerprint feature sets created for the purpose of enrollment.

Methods

AddFeatures Method
Adds fingerprint feature sets, one-by-one, to a fingerprint template. The fingerprint template is complete when
the TemplateStatus property is set to the value TemplateStatusReady.

Syntax
[Link](
ByVal oFeatures As Object)

Parameter

oFeatures A DPFPFeatureSet object (page 45)

Clear Method
Clears a fingerprint template and sets the value of the TemplateStatus property to
TemplateStatusUnknown so an application can begin another fingerprint template creation operation.

Syntax
[Link]()

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 37
Chapter 5: API Reference for Visual Basic Developers DPFPEnrollment

Properties

FeaturesNeeded Property
Gets the number of fingerprint feature sets still needed to create a fingerprint template. When the value of
lValue is equal to 0, the fingerprint template is created.

Syntax
[ lValue = ] [Link]

Possible Values

lValue Long that receives the value of the number of fingerprint feature sets

This property is read-only and has no default value.

Template Property
Gets a DPFPTemplate object created during a fingerprint enrollment operation.

Syntax
[ oTemplate = ] [Link]

Possible Values

oTemplate A DPFPTemplate object (page 52)

This property is read-only and has no default value.

Possible Errors

Error Code Message Description

-2147352573 Member not found. A fingerprint template has not been created yet.

TemplateStatus Property
Gets a value that specifies the status of a fingerprint template creation operation.

Syntax
[ enumValue = ] [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 38
Chapter 5: API Reference for Visual Basic Developers DPFPEnrollmentControl

Possible Values

enumValue Enum that receives one of the DPFPCTemplateStatusEnum enumeration


values (page 64)

This property is read-only and has no default value.

Object Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DPFPEnrollmentControl
The DPFPEnrollmentControl object contains an ActiveX control that implements a user interface
(described in DPFPEnrollmentControl Object User Interface on page 107) and provides the following
functionality:
„ Captures a fingerprint sample from a fingerprint reader
„ Creates a specified number of fingerprint feature sets for the purpose of enrollment
„ Creates a fingerprint template
„ Deletes a fingerprint template
„ Fires events

Properties

EnrolledFingersMask Property
Gets or sets the mask representing the user’s enrolled fingerprints. The enrollment mask is a combination of
the values representing a user’s enrolled fingerprints. For example, if a user’s right index fingerprint and right
middle fingerprint are enrolled, the value of this property is 00000000 011000000, or 192.

Syntax
[Link] [ = lValue ]
[ lValue = ] [Link]

Possible Values

lValue Long that specifies or receives the value of the fingerprint mask. All possible
values are listed in Table 3.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 39
Chapter 5: API Reference for Visual Basic Developers DPFPEnrollmentControl

Table 3. Values for the enrollment mask

Finger Binary Representation Integer Representation

Left little finger 000000000 000000001 1

Left ring finger 000000000 000000010 2

Left middle finger 000000000 000000100 4

Left index finger 000000000 000001000 8

Left thumb 000000000 000010000 16

Right thumb 000000000 000100000 32

Right index finger 000000000 001000000 64

Right middle finger 000000000 010000000 128

Right ring finger 000000000 100000000 256

Right little finger 000000001 000000000 512

This optional property is read/write. If you do not set it, the value 0 is used, which means that no
fingerprints have been enrolled.

Possible Errors

Error Code Message Description


-2147352566 Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

MaxEnrollFingerCount Property
Gets or sets the value for the maximum number of fingerprints that can be enrolled.

Syntax
[Link] [ = lValue ]
[ lValue = ] [Link]

Possible Values

lValue Long that specifies or receives the value for the maximum number of fingerprints
that can be enrolled. Possible values are 1 through 10.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 40
Chapter 5: API Reference for Visual Basic Developers DPFPEnrollmentControl

This optional property is read/write. If you do not set it, the value 10 is used, which means the user can
enroll all ten fingerprints.

Possible Errors

Error Code Message Description

-2147352566 Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

ReaderSerialNumber Property
Gets or sets the serial number of the fingerprint reader from which a fingerprint sample is captured.

Syntax
[Link] [ = bstrValue ]
[ bstrValue = ] [Link]

Possible Values

bstrValue String that specifies or receives the fingerprint reader serial number

This optional property is read/write. If you do not set it, the following value is used:
{00000000-0000-0000-0000-000000000000}. This means that the application will receive events
from any of the fingerprint readers attached to the system.

Possible Errors

Error Code Message Description

-2147024809 One or more arguments The format of the string containing the fingerprint
are invalid. reader serial number is incorrect. It should be in GUID
format, for example, {A9EFB3F6-A8C8-4684-841E-
4330973057C6}.

Object Information

Type library DigitalPersona One Touch for Windows Control 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 41
Chapter 5: API Reference for Visual Basic Developers DPFPEnrollmentControl

Events

OnDelete Event
Fires when a user deletes a finger. The application handles the deletion of the fingerprint template from a
fingerprint data storage subsystem and can display its own success or error messages.

Syntax
Private Sub object_OnDelete(
ByVal l1FingerMask As Long,
ByVal oStatus As Object)

Parameters

l1FingerMask Long that specifies the index value of the (enrolled) fingerprint to be deleted.
For possible values, see Table 4.

oStatus A DPFPEventHandlerStatus object (page 43)

The l1FingerprintMask parameter is the index value of the finger associated with a fingerprint to be
enrolled or a fingerprint template to be deleted, as defined in ANSI/NIST-ITL 1. The index values are assigned
to the graphical representation of the fingers on the hands in the user interface. All possible values are listed
in Table 4.

Table 4. Finger index values in ANSI/NIST-ITL 1

Finger Index Value Finger Index Value

Right thumb 1 Left thumb 6

Right index finger 2 Left index finger 7

Right middle finger 3 Left middle finger 8

Right index finger 4 Left ring finger 9

Right little finger 5 Left little finger 10

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 42
Chapter 5: API Reference for Visual Basic Developers DPFPEventHandlerStatus

OnEnroll Event
Fires when a user enrolls a fingerprint and returns a fingerprint template. The application handles the storage
of the fingerprint template in a fingerprint data storage subsystem and can display its own success or error
messages.

Syntax
Private Sub object_OnEnroll(
ByVal l1FingerMask As Long,
ByVal oFingerprintTemplate As Object,
ByVal oStatus As Object)

Parameters

l1FingerMask Long that specifies the index value for the enrolled fingerprint. For
possible values, see Table 4 on page 42.

oFingerprintTemplate A DPFPTemplate object (page 52)

oStatus A DPFPEventHandlerStatus object (page 43)

DPFPEventHandlerStatus
The DPFPEventHandlerStatus object returns codes that indicate the status of an operation.

Properties

Status Property
Gets or sets the status of an operation performed by a DPFPEnrollmentControl object (page 39) or by a
DPFPVerificationControl object (page 54).

Syntax
[Link] [ = enumValue ]
[ enumValue = ] [Link]

Possible Values

enumValue Enum that specifies or receives one of the values from the
DPFPEventHandlerStatusEnum enumeration (page 60)

This optional property is read/write. If you do not set it, the value DPFPEventHandlerStatusSuccess
is used.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 43
Chapter 5: API Reference for Visual Basic Developers DPFPFeatureExtraction

Possible Errors

Error Code Message Description

-2147352566 Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

Object Information

Type library DigitalPersona One Touch for Windows Control 1.0

Library [Link]

DPFPFeatureExtraction
The DPFPFeatureExtraction object performs fingerprint feature extraction. This object creates a
fingerprint feature set for the purpose of enrollment or verification by applying fingerprint feature extraction to
a fingerprint sample.

Method

CreateFeatureSet Method
Applies fingerprint feature extraction to a fingerprint sample and then creates a fingerprint feature set for the
specified purpose.

Syntax
Dim enumSampleQuality As DPFPCaptureFeedbackEnum
enumSampleQuality = [Link](
ByVal oFingerprintSample As Object,
ByVal enumPurpose As Enum)

Parameters

oFingerprintSample A DPFPSample object (page 51)

enumPurpose Enum that specifies one of the values, which is for the specified purpose,
from the DPFPDataPurposeEnum enumeration (page 61)

enumSampleQuality Enum the receives one of the values, which provides feedback about a
fingerprint sample capture operation, from the
DPFPCaptureFeedbackEnum enumeration (page 58)

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 44
Chapter 5: API Reference for Visual Basic Developers DPFPFeatureSet

Property

FeatureSet Property
Retrieves a DPFPFeatureSet object created during a fingerprint feature extraction operation.

Syntax
[ oFeatureSet = ] [Link]

Possible Values

oFeatureSet A DPFPFeatureSet object (page 45)

This property is read-only and has no default value.

Possible Errors

Error Code Message Description

-2147352573 Member not found. A fingerprint feature set has not been created yet.

Object Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DPFPFeatureSet
The DPFPFeatureSet object represents a fingerprint feature set.

Methods and Properties


None.

Object Information

Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 45
Chapter 5: API Reference for Visual Basic Developers DPFPReaderDescription

DPFPReaderDescription
The DPFPReaderDescription object provides information about a particular fingerprint reader, such as
its technology or serial number.

Properties

FirmwareRevision Property
Gets the firmware revision number of a fingerprint reader.

Syntax
[ bstrValue = ] [Link]

Possible Values

bstrValue String the receives the fingerprint reader firmware revision number

This property is read-only and has no default value.

HardwareRevision Property
Gets the hardware revision number of a fingerprint reader.

Syntax
[ bstrValue = ] [Link]

Possible Values

bstrValue String the receives the fingerprint reader hardware revision number

This property is read-only and has no default value.

Language Property
Gets the fingerprint reader language.

Syntax
[ bstrValue = ] DPFPReaderDescription.get_Language

Possible Values

bstrValue String the receives the fingerprint reader language. The value of bstrValue is
always 0x409, which is English.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 46
Chapter 5: API Reference for Visual Basic Developers DPFPReaderDescription

This property is read-only and has no default value.

ImpressionType Property
Gets a value that specifies the fingerprint reader impression type, for example, swipe reader or touch (area)
reader.

Syntax
[ enumValue = ] [Link]

Possible Values

enumValue Enum that receives one of the values from the


DPFPReaderImpressionTypeEnum enumeration (page 62)

This property is read-only and has no default value.

ProductName Property
Gets the product name of a fingerprint reader, for example, “[Link].U.”

Syntax
[ bstrValue = ] [Link]

Possible Values

bstrValue String that receives the fingerprint reader product name

This property is read-only and has no default value.

SerialNumber Property
Gets the serial number of a fingerprint reader. This property is read-only and has no default value.

Syntax
[ bstrValue = ] [Link]

Possible Values

bstrValue String the receives the fingerprint reader serial number

This property is read-only and has no default value.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 47
Chapter 5: API Reference for Visual Basic Developers DPFPReaderDescription

SerialNumberType Property
Gets a value that specifies the type of fingerprint reader serial number.

Syntax
[ enumValue = ] [Link]

Possible Values

enumValue Enum that receives one of the values from the DPFPSerialNumberTypeEnum
enumeration (page 63)

This property is read-only and has no default value.

Technology Property
Gets a value that specifies the fingerprint reader technology.

Syntax
[ enumValue = ] [Link]

Possible Values

enumValue Enum that receives one of the values from the DPFPReaderTechnologyEnum
enumeration (page 62)

This property is read-only and has no default value.

Vendor Property
Gets the vendor name for a fingerprint reader, for example, “DigitalPersona, Inc.”

Syntax
[ bstrValue = ] [Link]

Possible Values

bstrValue String the receives the fingerprint reader vendor name

This property is read-only and has no default value.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 48
Chapter 5: API Reference for Visual Basic Developers DPFPReadersCollection

Object Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPReadersCollection
The DPFPReadersCollection object provides information about all of the fingerprint readers connected
to a system.

Method

Reader Method
Returns a DPFPReaderDescription object for a particular fingerprint reader using its serial number.

Syntax
Dim oReader As DPFPReaderDescription
Set oReader = [Link](
ByVal bstrReaderSerialNum As String)

Parameters

bstrReaderSerialNumber String that specifies a fingerprint reader serial number

oReader A DPFPReaderDescription object (page 46)

Possible Errors

Error Code Message Description

-2147024894 The system cannot find the The fingerprint reader with the specified serial
specified file. number cannot be found in the system.

Properties

Count Property
Gets the total number of DPFPReaderDescription objects (items) connected to a system (a collection).

Syntax
[ lCount = ] [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 49
Chapter 5: API Reference for Visual Basic Developers DPFPReadersCollection

Possible Values

lCount Long that receives the total number of DPFPReaderDescription objects

This property is read-only and has no default value.

Item Property
Gets or sets a DPFPReaderDescription object (an item) from the fingerprint readers connected to a
system (a collection) using its index.

Syntax
[ lReader = ] [Link]

Possible Values

lReader Long that specifies the index of the DPFPReaderDescription object to


retrieve from the collection. The value of lReader starts with 1.

This property is read-only and has no default value.

Possible Errors

Error Code Message Description

-2147352565 Invalid index. The specified index is not in the valid range from 1 to Count.

_NewEnum Property
Gets a ReaderEnum object (enumeration object), which is an array of DPFPReaderDescription
objects.

Syntax
[ aReaderEnum = ] DPFPReadersCollection._NewEnum

Possible Values

aReaderEnum IUnknown that receives the array of DPFPReaderDescription objects

This property is read-only and has no default value.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 50
Chapter 5: API Reference for Visual Basic Developers DPFPSample

Object Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPSample
The DPFPSample object represents a fingerprint sample captured from a fingerprint reader.

Methods and Properties


None.

Object Information

Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

See Also
DPFPData on page 36

DPFPSampleConversion
The SampleConversion object provides methods for returning a fingerprint sample as an IPicture
object and as an image in ANSI 381 format that can be used for display.

Methods

ConvertToANSI381 Method
Converts a fingerprint sample to an image in ANSI 381 format.

Dim aAnsi As Byte()


aAnsi = object.ConvertToANSI381(
ByVal oSample As Object)

Parameters

oSample A DPFPSample object (page 51)

vAnsi Variant that receives an image in ANSI 381 format

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 51
Chapter 5: API Reference for Visual Basic Developers DPFPTemplate

ConvertToPicture Method
Converts a fingerprint sample to an IPicture object.

Syntax
Dim oPicture As IPictureDisp
Set oPicture = [Link](
ByVal oSample As Object)

Parameters

oSample A DPFPSample object (page 51)

oPicture An IPicture object

Object Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPTemplate
The DPFPTemplate object represents a fingerprint template.

Methods and Properties


None.l

Object Information

Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

DPFPVerification
The DPFPVerification object performs the system function of fingerprint verification, which is a one-to-
one comparison of a fingerprint feature set with a fingerprint template produced at enrollment that returns a
decision of match or non-match.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 52
Chapter 5: API Reference for Visual Basic Developers DPFPVerification

Method

Verify Method
Performs the system function of fingerprint verification and specifies a comparison decision based on the
requested FAR set by the FARRequested property.

Syntax
Dim oVerificationResult As DPFPVerificationResult
Set oVerificationResult = [Link](
ByVal oVerificationFeatureSet As Object,
ByVal oFingerprintTemplate As Object)

Parameters

oFeatureSet A DPFPFeatureSet object, where the enumPurpose parameter of


the CreateFeatureSet method of the
DPFPFeatureExtraction object was set to the value
FeatureSetPurposeVerification (page 44)

oTemplate A DPFPTemplate object (page 52)

oVerificationResult A DPFPVerificationResult object (page 56)

Properties

FARRequested Property
Gets or sets the requested false accept rate (FAR). For more information about FAR, see False Positives and False
Negatives on page 18.

IMPORTANT: Although the default value is adequate for most applications, you might require a lower or
higher value to meet your needs. If you decide to use a value other than the default, be sure that
you understand the consequences of doing so. Refer to Appendix A on page 120 for more
information about setting the value of the FAR.

Syntax
[Link] [ = lValue ]
[ lValue = ] [Link]

Possible Values

lValue Long that receives the value of the requested FAR

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 53
Chapter 5: API Reference for Visual Basic Developers DPFPVerificationControl

This optional property is read/write. If you do not set it, the default value is used. You can use the
FARRequested property accessor function to determine the current default value.

Possible Errors

Error Code Message Description

-2147352566 Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

Object Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

See Also
DPFPVerificationResult on page 56

DPFPVerificationControl
The DPFPVerificationControl object is an ActiveX control that implements a user interface (described
in DPFPEnrollmentControl Object User Interface on page 107) and provides the following functionality:
„ Receives fingerprint reader connect and disconnect event notifications
„ Captures a fingerprint sample from a fingerprint reader
„ Creates a fingerprint feature set for the purpose of verification
„ Fires an event

Property

ReaderSerialNumber Property
Gets or sets the serial number of the fingerprint reader from which a fingerprint sample is captured.

Syntax
[Link] [ = bstrValue ]
[ bstrValue = ] [Link]

Possible Values

bstrValue String that receives the fingerprint reader serial number

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 54
Chapter 5: API Reference for Visual Basic Developers DPFPVerificationControl

This optional value is read/write. If you do not set it, the following value is used:
{00000000-0000-0000-0000-000000000000}. This means that the application will receive events
from any of the fingerprint readers attached to the system.

Possible Errors

Error Code Message Description

-2147024809 One or more arguments The format of the string containing the fingerprint
are invalid. reader serial number is incorrect. It should be in GUID
format, for example, {A9EFB3F6-A8C8-4684-841E-
4330973057C6}.

Object Information

Type library DigitalPersona One Touch for Windows Control 1.0


Library [Link]

Event

OnComplete Event
Fires when a fingerprint feature set created for the purpose of verification is ready for comparison and returns
the fingerprint feature set. The application handles the comparison of the fingerprint feature set with a
fingerprint template(s).

Syntax
Private Sub object_OnComplete(
ByVal oVerificationFeatureSet As Object,
ByVal oStatus As Object)

Parameters

oVerificationFeatureSet A DPFPFeatureSet object, which represents a fingerprint


feature set created for the purpose of verification (page 45)

oStatus A DPFPEventHandlerStatus object (page 43)

Object Information

Type library

Library

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 55
Chapter 5: API Reference for Visual Basic Developers DPFPVerificationResult

DPFPVerificationResult
The DPFPVerificationResult object represents the results of a fingerprint verification operation.

Properties

FARAchieved Property
Gets the value of the achieved FAR for a comparison operation.

Syntax
[ lValue = ] [Link]

Possible Values

lValue Long that receives the value of the FAR that was achieved for the comparison

This property is read-only and has no default value. See Achieved FAR on page 122 for more information
about this property.

Verified Property
Gets the comparison decision, which indicates whether the comparison of a fingerprint feature set and a
fingerprint template resulted in a decision of match or non-match. This decision is based on the value of the
FARRequested property of the DPFPVerification object (page 53).

Syntax
[ vbValue = ] [Link]

Possible Values

vbValue Variant of type boolean that receives the comparison decision. Possible values
are true for a decision of match or false for a decision of non-match.

This property is read-only and has no default value.

Object Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 56
Chapter 5: API Reference for Visual Basic Developers Enumerations

Enumerations
The One Touch for Windows: COM/ActiveX Edition API COM implementation includes the enumerations
defined in this section. Use the following list to quickly locate an enumeration by name, by page number, or by
description.

Method Page Description

DPFPCaptureFeedbackEnum 58 Events returned by a fingerprint reader that provide feedback


about a fingerprint sample capture operation

DPFPCapturePriorityEnum 59 Priority of a fingerprint sample capture operation

DPFPEventHandlerStatusEnum 60 Codes that are returned by the DPFPEventHandlerStatus


object to indicate the status of an operation

DPFPDataPurposeEnum 61 Purpose for which a fingerprint feature set is to be used

DPFPReaderImpressionTypeEnum 62 Modality that a fingerprint reader uses to capture fingerprint


samples

DPFPReaderTechnologyEnum 62 Fingerprint reader technology

DPFPSerialNumberTypeEnum 63 Fingerprint reader serial number persistence after reboot

DPFPTemplateStatusEnum 64 Status of a fingerprint template creation operation

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 57
Chapter 5: API Reference for Visual Basic Developers DPFPCaptureFeedbackEnum Enumeration

DPFPCaptureFeedbackEnum Enumeration
The DPFPCaptureFeedbackEnum enumeration defines the events returned by a fingerprint reader that
provide feedback about a fingerprint sample capture operation.

Syntax
Enum DPFPCaptureFeedbackEnum{
CaptureFeedbackGood = 0,
CaptureFeedbackNone = 1,
CaptureFeedbackTooLight = 2,
CaptureFeedbackTooDark = 3,
CaptureFeedbackTooNoisy = 4,
CaptureFeedbackLowContrast = 5,
CaptureFeedbackNotEnoughFtrs = 6,
CaptureFeedbackNoCentralRgn = 7,
CaptureFeedbackNoFinger = 8,
CaptureFeedbackTooHigh = 9,
CaptureFeedbackTooLow = 10,
CaptureFeedbackTooLeft = 11,
CaptureFeedbackTooRight = 12,
CaptureFeedbackTooStrange = 13,
CaptureFeedbackTooFast = 14,
CaptureFeedbackTooSkewed = 15,
CaptureFeedbackTooShort = 16,
CaptureFeedbackTooSlow = 17,
End Enum

Constants

CaptureFeedbackGood The fingerprint sample is of good quality.

CaptureFeedbackNone There is no fingerprint sample.


CaptureFeedbackTooLight The fingerprint sample is too light.

CaptureFeedbackTooDark The fingerprint sample is too dark

CaptureFeedbackTooNoisy The fingerprint sample is too noisy.

CaptureFeedbackLowContrast The fingerprint sample contrast is too low.

CaptureFeedbackNotEnoughFtrs The fingerprint sample does not contain enough


information.

CaptureFeedbackNoCentralRgn The fingerprint sample is not centered.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 58
Chapter 5: API Reference for Visual Basic Developers DPFPCapturePriorityEnum Enumeration

CaptureFeedbackNoFinger The scanned object is not a finger.

CaptureFeedbackTooHigh The finger was too high on the swipe sensor.

CaptureFeedbackTooLow The finger was too low on the swipe sensor.

CaptureFeedbackTooLeft The finger was too close to the left border of the swipe
sensor.
CaptureFeedbackTooRight The finger was too close to the right border of the swipe
sensor.

CaptureFeedbackTooStrange The scan looks strange.

CaptureFeedbackTooFast The finger was swiped too quickly.

CaptureFeedbackTooSkewed The fingerprint sample is too skewed.

CaptureFeedbackTooShort The fingerprint sample is too short.

CaptureFeedbackTooSlow The finger was swiped too slowly.

Remarks
The members of this enumeration are called by the CreateFeatureSet method of the
DPFPFeatureExtraction object (page 44) and by the OnSampleQuality event of the
DPFPCapture object (page 35).

Enumeration Information

Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

DPFPCapturePriorityEnum Enumeration
The DPFPCapturePriorityEnum enumeration defines the priority of a fingerprint sample capture
operation performed by a fingerprint reader.

Syntax
Enum DPFPCapturePriorityEnum{
CapturePriorityLow = 0,
CapturePriorityNormal = 1,
CapturePriorityHigh = 2,
End Enum

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 59
Chapter 5: API Reference for Visual Basic Developers DPFPEventHandlerStatusEnum Enumeration

Constants

CapturePriorityLow Low priority. An application uses this priority to acquire events from
the fingerprint reader only if there are no subscribers with high or
normal priority. Only one subscriber with this priority is allowed.

CapturePriorityNormal Normal priority. An application uses this priority to acquire events


from the fingerprint reader only if the operation runs in a foreground
process. Multiple subscribers with this priority are allowed.

CapturePriorityHigh High priority. A subscriber uses this priority to acquire events from the
fingerprint reader exclusively. Only one subscriber with this priority is
allowed.

Remarks
The members of this enumeration are called by the Priority property of the DPFPCapture object
(page 32).

Enumeration Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPEventHandlerStatusEnum Enumeration
The DPFPEventHandlerStatusEnum enumeration defines the codes that are returned by the
DPFPEventHandlerStatus object to indicate the status of an operation.

Syntax
Enum DPFPEventHandlerStatusEnum{
EventHandlerStatusSuccess = 0,
EventHandlerStatusFailure = 1,
End Enum

Constants

EventHandlerStatusSuccess An operation was performed successfully.

EventHandlerStatusFailure An operation failed.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 60
Chapter 5: API Reference for Visual Basic Developers DPFPDataPurposeEnum Enumeration

Remarks
The members of this enumeration are called by the Status property of the
DPFPEventHandlerStatus object (page 43).

Enumeration Information

Type library DigitalPersona One Touch for Windows Control 1.0

Library [Link]

DPFPDataPurposeEnum Enumeration
The DPFPDataPurposeEnum enumeration defines the purpose for which a fingerprint feature set is to be
used.

Syntax
Enum DPFPDataPurposeEnum{
DataPurposeUnknown = 0,
DataPurposeVerification = 1,
DataPurposeEnrollment = 2,
End Enum

Constants

DataPurposeUnknown The purpose is not known.

DataPurposeVerification A fingerprint feature set to be used for the purpose of verification.


DataPurposeEnrollment A fingerprint feature set to be used for the purpose of enrollment.

Remarks
The members of this enumeration are called by the CreateFeatureSet method of the
DPFPFeatureExtraction object (page 44).

Enumeration Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 61
Chapter 5: API Reference for Visual Basic Developers DPFPReaderImpressionTypeEnum Enumeration

DPFPReaderImpressionTypeEnum Enumeration
The DPFPReaderImpressionTypeEnum enumeration defines the modality that a fingerprint reader uses
to capture fingerprint samples.

Syntax
Enum DPFPReaderImpressionTypeEnum{
ReaderImpressionTypeUnknown = 0,
ReaderImpressionTypeSwipe = 1,
ReaderImpressionTypeArea = 2,
End Enum

Constants

ReaderImpressionTypeUnknown A fingerprint reader for which the modality is not known.

ReaderImpressionTypeSwipe A swipe fingerprint reader.

ReaderImpressionTypeArea An area (touch) sensor fingerprint reader.

Remarks
The members of this enumeration are called by the ImpressionType property of the
DPFPReaderDescription object (page 47).

Enumeration Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPReaderTechnologyEnum Enumeration
The DPFPReaderTechnologyEnum enumeration defines the fingerprint reader technology.

Syntax
Enum DPFPReaderTechnologyEnum{
ReaderTechnologyUnknown = 0,
ReaderTechnologyOptical = 1,
ReaderTechnologyCapacitive = 2,
ReaderTechnologyThermal = 3,
ReaderTechnologyPressure = 4,
End Enum

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 62
Chapter 5: API Reference for Visual Basic Developers DPFPSerialNumberTypeEnum Enumeration

Constants

ReaderTechnologyUnknown A fingerprint reader for which the technology is not known.


ReaderTechnologyOptical An optical fingerprint reader.

ReaderTechnologyCapacitive A capacitive fingerprint reader.

ReaderTechnologyThermal A thermal fingerprint reader.

ReaderTechnologyPressure A pressure fingerprint reader.

Remarks
The members of this enumeration are called by the Technology property of the
DPFPReaderDescription object (page 48).

Enumeration Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPSerialNumberTypeEnum Enumeration
The DPFPSerialNumberTypeEnum enumeration defines whether a fingerprint reader serial number
persists after reboot.

Syntax
Enum DPFPSerialNumberTypeEnum{
SerialNumberTypePersistent = 0,
SerialNumberTypeVolatile = 1,
End Enum

Constants

SerialNumberTypePersistent A persistent serial number.

SerialNumberTypeVolatile A volatile serial number.

Remarks
The members of this enumeration are called by the SerialNumberType property of the
DPFPReaderDescription object (page 48).

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 63
Chapter 5: API Reference for Visual Basic Developers DPFPTemplateStatusEnum Enumeration

Enumeration Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPTemplateStatusEnum Enumeration
The DPFPTemplateStatusEnum enumeration defines the status of a fingerprint template creation
operation.

Syntax
Enum DPFPTemplateStatusEnum{
TemplateStatusUnknown = 0,
TemplateStatusInsufficient = 1,
TemplateStatusFailed = 2,
TemplateStatusReady = 3,
End Enum

Constants

TemplateStatusUnknown The status of a template creation operation is not know,


probably because a fingerprint template does not exist yet.
TemplateStatusInsufficient A fingerprint template exists, but more fingerprint feature sets
are required to complete it.

TemplateStatusFailed A fingerprint template creation operation failed.


TemplateStatusReady A fingerprint template was created and is ready for use.

Remarks
The members of this enumeration are called by the TemplateStatus property of the
DPFPEnrollment object (page 38).

Enumeration Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 64
API Reference for C++ Developers 6

This chapter defines the interfaces (including methods, properties, and events) and the enumerations that are
used for developing applications that incorporate the functionality of the One Touch for Windows: COM/
ActiveX Edition API in C++ using the Component Object Model (COM) implementation.

Interfaces
The One Touch for Windows: COM/ActiveX Edition API COM implementation includes the dual, nonextensible
interfaces defined in this section. Use the following list to quickly locate an interface by name, by page number,
or by description.

IMPORTANT: All of the read/write properties of the One Touch for Windows SDK API interfaces are optional. If
you do not set one of these properties, the default value is automatically used. When deciding
whether to set a property, be aware that DigitalPersona may change the default values at any
time without notice. If you want your application’s functionality to remain consistent, you
should set the properties accordingly.

Interface Page Description

IDPFPCapture 67 Used by an application to capture a fingerprint sample from


a fingerprint reader

_IDPFPCaptureEvents 69 Designates an event sink interface that an application must


implement to receive event notifications from a
DPFPCapture object

IDPFPData 72 Represents the functionality of the data that is common to


all fingerprint data objects

IDPFPEnrollment 73 Used by an application to perform the system function of


fingerprint enrollment

IDPFPEnrollmentControl 76 Represents the functionality of an ActiveX control for


creating and returning a fingerprint template or for deleting
a fingerprint template, and provides a user interface

_IDPFPEnrollmentControlEvents 79 Designates an event sink interface that an application must


implement to receive event notifications from a
DPFPEnrollmentControl object

IDPFPEventHandlerStatus 81 Used by an application to retrieve codes that indicate the


status of an operation

IDPFPFeatureExtraction 82 Used by an application to perform the system function of


fingerprint feature extraction

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 65
Chapter 6: API Reference for C++ Developers Interfaces

Interface Page Description

IDPFPFeatureSet 84 Represents the functionality of a fingerprint feature set

IDPFPReaderDescription 84 Used by an application to obtain information about a


particular fingerprint reader connected to a system

IDPFPReadersCollection 88 Represents a collection of fingerprint readers connected to


a system

IDPFPSample 91 Represents the functionality of a fingerprint sample

IDPFPSampleConversion 91 Used by an application to convert a fingerprint sample to an


image for display

IDPFPTemplate 93 Represents the functionality of a fingerprint template

IDPFPVerification 93 Used by an application to perform fingerprint verification

IDPFPVerificationControl 95 Represents the functionality of an ActiveX control for


creating and returning a fingerprint feature set, and
provides a user interface

_IDPFPVerificationControlEvents 97 Designates an event sink interface that an application must


implement to receive event notifications from a
DPFPVerificationControl object

IDPFPVerificationResult 97 Represents the functionality of the results of a fingerprint


verification operation

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 66
Chapter 6: API Reference for C++ Developers IDPFPCapture Interface

IDPFPCapture Interface
Used by an application to capture a fingerprint sample from a fingerprint reader. The IDPFPCapture
interface provides methods and properties for capturing a fingerprint sample from a fingerprint reader.

IDPFPCapture Members

IDPFPCapture::Priority Property
Retrieves or returns a value that specifies the priority of a fingerprint sample capture operation.

This property is optional. If you do not set it, the value DPFPCapturePriorityNormal is used.

Syntax
HRESULT IDPFPCapture::get_Priority(
[out, retval] DPFPCapturePriorityEnum* pVal
);
HRESULT IDPFPCapture::put_Priority(
[in] DPFPCapturePriorityEnum newVal
);

Parameters

pVal [out, retval] Pointer to a variable that receives a value that specifies the priority of a
fingerprint reader sample capture operation. For possible values, see
DPFPCapturePriorityEnum Enumerated Type on page 101.

newVal [in] Variable that contains the value that specifies the priority of a fingerprint
reader sample capture operation

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

DISP_E_OVERFLOW Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 67
Chapter 6: API Reference for C++ Developers IDPFPCapture Interface

IDPFPCapture::ReaderSerialNumber Property
Retrieves or returns the serial number of a fingerprint reader that captures a fingerprint sample.

This property is optional. If you do not set it, the following value is used:
{00000000-0000-0000-0000-000000000000}. This means that the application will receive events
from any of the fingerprint readers attached to the system.

Syntax
HRESULT IDPFPCapture::get_ReaderSerialNumber(
[out, retval] BSTR* pVal
);
HRESULT IDPFPCapture::put_ReaderSerialNumber(
[in] BSTR newVal
);

Parameters

pVal [out, retval] Pointer to a variable of type BSTR that receives a fingerprint reader
serial number

newVal [in] Variable of type BSTR that contains the fingerprint reader serial number

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

E_INVALIDARG One or more arguments The format of the string containing the fingerprint
are invalid. reader serial number is incorrect. It should be in
GUID format, for example, {A9EFB3F6-A8C8-4684-
841E-4330973057C6}.

IDPFPCapture::StartCapture Method
Begins capturing a fingerprint sample from a fingerprint reader. A call to this method is asynchronous and
returns immediately. The application continues to receive events until the
IDPFPCapture::StopCapture method is called or when the DPFPCapture object is destroyed.

Syntax
HRESULT StartCapture(void);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 68
Chapter 6: API Reference for C++ Developers _IDPFPCaptureEvents Interface

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

E_INVALIDARG One or more arguments A capture operation with the specified priority
are invalid. already exists. See
DPFPCapturePriorityEnum on page 101 for
more information.
E_ACCESSDENIED General access denied The application does not have sufficient privileges
error. to start capture operations with the specified
priority. See DPFPCapturePriorityEnum on
page 101 for more information.

IDPFPCapture::StopCapture Method
Stops the fingerprint sample capture operation started with a call to the IDPFPCapture::StartCapture
method.

Syntax
HRESULT StopCapture(void);

Return Value
Returns S_OK if successful.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

_IDPFPCaptureEvents Interface
Designates an event sink interface that an application must implement to receive event notifications from a
DPFPCapture object, which implements the IDPFPCapture interface (page 67).

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 69
Chapter 6: API Reference for C++ Developers _IDPFPCaptureEvents Interface

_IDPFPCaptureEvents Members

_IDPFPCaptureEvents::OnComplete Event
Fires when a fingerprint sample is successfully captured by a fingerprint reader.

Syntax
HRESULT OnComplete(
[in] BSTR ReaderSerNum,
[in] IDispatch* pFingerprintSample
);

Parameters

ReaderSerNum [in] Variable of type BSTR that contains a fingerprint reader serial
number

pFingerprintSample [in] A DPFPSample object

_IDPFPCaptureEvents::OnFingerGone Event
Fires when a user removes a finger from a fingerprint reader.

Syntax
HRESULT OnFingerGone(
[in] BSTR ReaderSerNum
);

Parameter

ReaderSerNum [in] Variable of type BSTR that contains a fingerprint reader serial number

_IDPFPCaptureEvents::OnFingerTouch Event
Fires when a user touches a fingerprint reader.

Syntax
HRESULT OnFingerTouch(
[in] BSTR ReaderSerNum
);

Parameter

ReaderSerNum [in] Variable of type BSTR that contains a fingerprint reader serial number

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 70
Chapter 6: API Reference for C++ Developers _IDPFPCaptureEvents Interface

_IDPFPCaptureEvents::OnReaderConnect Event
Fires when a fingerprint reader is attached to a system.

Syntax
HRESULT OnReaderConnect(
[in] BSTR ReaderSerNum
);

Parameter

ReaderSerNum [in] Variable of type BSTR that contains a fingerprint reader serial number

_IDPFPCaptureEvents::OnReaderDisconnect Event
Fires when a fingerprint reader is disconnected from a system.

Syntax
HRESULT OnReaderDisconnect(
[in] BSTR ReaderSerNum
);

Parameter

ReaderSerNum [in] Variable of type BSTR that contains a fingerprint reader serial number

_IDPFPCaptureEvents::OnSampleQuality Event
Fires when the quality of a fingerprint sample is verified. When SampleQualityGood is returned by this
event, the _IDPFPCaptureEvents::OnComplete event is fired (page 70).

Syntax
HRESULT OnSampleQuality(
[in] BSTR ReaderSerNum,
[in] DPFPCaptureFeedbackEnum SampleQuality
);

Parameters

ReaderSerNum [in] Variable of type BSTR that contains a fingerprint reader serial number

SampleQuality [in] Variable that contains a value that provides feedback about a fingerprint
sample capture operation. For possible values, see
DPFPCaptureFeedbackEnum Enumerated Type on page 100.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 71
Chapter 6: API Reference for C++ Developers IDPFPData Interface

IDPFPData Interface
Represents the functionality of the data that is common to all fingerprint data objects. The IDPFPData
interface also provides methods to serialize and deserialize the fingerprint data objects.

IDPFPData Members

IDPFPData::Deserialize Method
Deserializes a fingerprint data object returned by the IDPFPData::Serialize method.

Syntax
HRESULT Deserialize(
[in] VARIANT RawData
);

Parameter

RawData [in] Variant array of bytes (VT_U1 or VT_ARRAY) that contains a


deserialized fingerprint data object

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

E_INVALIDARG One or more arguments The format of the data passed to the
are invalid. Deserialize method is incorrect.

S_FALSE Feature sets cannot be added because the


fingerprint template has already been created.

IDPFPData::Serialize Method
Serializes a fingerprint data object and returns it as an array of bytes.

Syntax
HRESULT Serialize(
[out, retval] VARIANT* pRawData
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 72
Chapter 6: API Reference for C++ Developers IDPFPEnrollment Interface

Parameter

pRawData [out, retval] Pointer to a variant array of bytes (VT_U1 or VT_ARRAY) that
receives a serialized fingerprint data object

Return Value
Returns S_OK if successful.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

See Also
IDPFPFeatureSet Interface on page 84
IDPFPSample Interface on page 91
IDPFPTemplate Interface on page 93

IDPFPEnrollment Interface
Used by an application to perform the system function of fingerprint enrollment. The IDPFPEnrollment
interface provides methods and properties for creating a fingerprint template from a specified number of
fingerprint feature sets created for the purpose of enrollment.

IDPFPEnrollment Members

IDPFPEnrollment::AddFeatures Method
Adds fingerprint feature sets, one-by-one, to a fingerprint template. A call to this method creates an instance of
DPFPTemplate, which represents a fingerprint template. The DPFPTemplate object implements the
IDPFPTemplate interface (page 93). The fingerprint template is complete when the TemplateStatus
property is set to the value TemplateStatusReady.

Syntax
HRESULT AddFeatures(
[in] IDispatch* pVal
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 73
Chapter 6: API Reference for C++ Developers IDPFPEnrollment Interface

Parameter

pVal [in] A DPFPFeatureSet object

Return Value
Returns S_OK if successful.

IDPFPEnrollment::Clear Method
Clears a fingerprint template and sets the value of the TemplateStatus property to
TemplateStatusUnknown so an application can begin another fingerprint template creation operation.

Syntax
HRESULT Clear(void);

Return Value
Returns S_OK if successful.

IDPFPEnrollment::FeaturesNeeded Property
Retrieves the number of fingerprint feature sets still needed to create a fingerprint template. When the value of
the pVal parameter is equal to 0, the fingerprint template is created. This property is read-only and has no
default value.

Syntax
HRESULT IDPFPEnrollment::get_FeaturesNeeded(
[out, retval] LONG* pVal
);

Parameter

pVal [out, retval] Pointer to a variable of type long that receives the value of the
number of fingerprint feature sets

Return Value
Returns S_OK if successful.

IDPFPEnrollment::Template Property
Retrieves a DPFPTemplate object created during a fingerprint enrollment operation. This property is read-
only and has no default value.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 74
Chapter 6: API Reference for C++ Developers IDPFPEnrollment Interface

Syntax
HRESULT IDPFPEnrollment::get_Template(
[out, retval] IDispatch** pVal
);

Parameter

pVal [out, retval] A DPFPTemplate object

Return Value
Returns S_OK if successful.

IDPFPEnrollment::TemplateStatus Property
Retrieves a value that specifies the status of a fingerprint template creation operation. This property is read-
only and has no default value.

Syntax
HRESULT IDPFPEnrollment::get_TemplateStatus(
[out, retval] DPFPTemplateStatusEnum* pVal
);

Parameter

pVal [out, retval] Pointer to a variable that receives a value that specifies the status of
the fingerprint template creation operation. For possible values, see
DPFPTemplateStatusEnum Enumerated Type on page 106.

Return Value
Returns S_OK if successful.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 75
Chapter 6: API Reference for C++ Developers IDPFPEnrollmentControl Interface

IDPFPEnrollmentControl Interface
Represents the functionality of an ActiveX control, which implements a user interface (described in
DPFPEnrollmentControl Object User Interface on page 107). The IDPFPEnrollmentControl interface
provides the following functionality:
„ Captures a fingerprint sample from a fingerprint reader
„ Creates a specified number of fingerprint feature sets for the purpose of enrollment
„ Creates a fingerprint template
„ Deletes a fingerprint template
„ Fires events

IDPFPEnrollmentControl Members

IDPFPEnrollmentControl::EnrolledFingersMask Property
Retrieves or returns the mask representing the user’s enrolled fingerprints. The enrollment mask is a
combination of the values representing a user’s enrolled fingerprints. For example, if a user’s right index
fingerprint and right middle fingerprint are enrolled, the value of this property is 00000000 011000000, or 192.

This property is optional. If you do not set it, the value 0 is used, which means that no fingerprints have been
enrolled.

Syntax
HRESULT IDPFPEnrollmentControl::get_EnrolledFingersMask(
[out, retval] LONG* pVal
);
HRESULT IDPFPEnrollmentControl::put_EnrolledFingersMask(
[in] LONG newVal
);

Parameters

pVal [out, retval] Pointer to a variable of type long that receives the value of the
fingerprint mask

newVal [in] Variable of type long that contains the value of the fingerprint mask

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 76
Chapter 6: API Reference for C++ Developers IDPFPEnrollmentControl Interface

Possible Values
All possible values for the enrollment mask are listed in Table 5.

Table 5. Values for the enrollment mask

Finger Binary Representation Integer Representation

Left little finger 000000000 000000001 1

Left ring finger 000000000 000000010 2

Left middle finger 000000000 000000100 4

Left index finger 000000000 000001000 8

Left thumb 000000000 000010000 16

Right thumb 000000000 000100000 32

Right index finger 000000000 001000000 64

Right middle finger 000000000 010000000 128

Right ring finger 000000000 100000000 256

Right little finger 000000001 000000000 512

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description


DISP_E_OVERFLOW Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

IDPFPEnrollmentControl::MaxEnrollFingerCount Property
Retrieves or returns the value for the maximum number of fingerprints that can be enrolled. Possible values for
this parameter are 1 through 10.

This property is optional. If you do not set it, the value 10 is used, which means the user can enroll all ten
fingerprints.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 77
Chapter 6: API Reference for C++ Developers IDPFPEnrollmentControl Interface

Syntax
HRESULT IDPFPEnrollmentControl::get_MaxEnrollFingerCount(
[out, retval] LONG* pVal
);
HRESULT IDPFPEnrollmentControl::put_MaxEnrollFingerCount(
[in] LONG newVal
);

Parameters

pVal [out, retval] Pointer to a variable of type long that receives the value for the
maximum number of fingerprints that can be enrolled
newVal [in] Variable of type long that contains the value for the maximum number of
fingerprints that can be enrolled

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

DISP_E_OVERFLOW Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

IDPFPEnrollmentControl::ReaderSerialNumber Property
Retrieves or returns the serial number of the fingerprint reader from which a fingerprint sample is captured.

This property is optional. If you do not set it, the following value is used:
{00000000-0000-0000-0000-000000000000}. This means that the application will receive events
from any of the fingerprint readers attached to the system.

Syntax
HRESULT IDPFPEnrollmentControl::get_ReaderSerialNumber(
[out, retval] BSTR* pVal
);
HRESULT IDPFPEnrollmentControl::put_ReaderSerialNumber(
[in] BSTR newVal
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 78
Chapter 6: API Reference for C++ Developers _IDPFPEnrollmentControlEvents Interface

Parameters

pVal [out, retval] Pointer to a variable of type BSTR that receives the fingerprint reader
serial number

newVal [in] Variable of type BSTR that contains the fingerprint reader serial number

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

E_INVALIDARG One or more arguments The format of the string containing the fingerprint
are invalid. reader serial number is incorrect. It should be in
GUID format, for example, {A9EFB3F6-A8C8-4684-
841E-4330973057C6}.

Interface Information

Custom implementation Yes

Inherits from IDispatch


Type library DigitalPersona One Touch for Windows Control 1.0

Library [Link]

_IDPFPEnrollmentControlEvents Interface
Designates an event sink interface that an application must implement to receive event notifications from a
DPFPEnrollmentControl object, which implements the IDPFPEnrollmentControl interface
(page 76).

_IDPFPEnrollmentControlEvents Members

_IDPFPEnrollmentControlEvents::OnDelete Event
Fires when a user deletes a finger. The application handles the deletion of the fingerprint template from a
fingerprint data storage subsystem and can display its own success or error messages.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 79
Chapter 6: API Reference for C++ Developers _IDPFPEnrollmentControlEvents Interface

Syntax
HRESULT OnDelete(
[in] LONG 1FingerMask,
[in] IDispatch* pStatus
);

Parameters

1FingerMask [in] Pointer to a variable of type long that contains the index value of the
(enrolled) fingerprint to be deleted. For possible values, see Table 6.

pStatus [in] A DPFPEventHandlerStatus object

The uFingerprintMask parameter is the index value of the finger associated with a fingerprint to be
enrolled or a fingerprint template to be deleted, as defined in ANSI/NIST-ITL 1. The index values are assigned
to the graphical representation of the fingers on the hands in the user interface. All possible values are listed
in Table 6.

Table 6. Finger index values in ANSI/NIST-ITL 1

Finger Index Value Finger Index Value

Right thumb 1 Left thumb 6

Right index finger 2 Left index finger 7

Right middle finger 3 Left middle finger 8

Right index finger 4 Left ring finger 9

Right little finger 5 Left little finger 10

_IDPFPEnrollmentControlEvents::OnEnroll Event
Fires when a user enrolls a fingerprint and returns a fingerprint template. The application handles the storage
of the fingerprint template in a fingerprint data storage subsystem and can display its own success or error
messages.

Syntax
HRESULT OnEnroll(
[in] LONG 1FingerMask,
[in] IDispatch* pFingerprintTemplate,
[in] IDispatch* pStatus
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 80
Chapter 6: API Reference for C++ Developers IDPFPEventHandlerStatus Interface

Parameters

1FingerMask [in] Variable of type long that contains the index value for the enrolled
fingerprint. For possible values, see Table 6 on page 80.

pFingerprintTemplate [in] A DPFPTemplate object

pStatus [in] A DPFPEventHandlerStatus object

IDPFPEventHandlerStatus Interface
Used by an application to retrieve codes that indicate the status of an operation.

IDPFPEventHandlerStatus Member

IDPFPEventHandlerStatus::Status Property
Retrieves or returns the status of an operation performed by a DPFPEnrollmentControl object, which
implements the IDPFPEnrollmentControl interface (page 76), or a DPFPVerificationControl
object, which implements the IDPFPVerificationControl interface (page 95).

This property is optional. If you do not set it, the value DPFPEventHandlerStatusSuccess is used.

Syntax
HRESULT IDPFPEventHandlerStatus::get_Status(
[out, retval] DPFPEventHandlerStatusEnum* pVal
);
HRESULT IDPFPEventHandlerStatus::put_Status(
[in] DPFPEventHandlerStatusEnum newVal
);

Parameters

pVal [out, retval] Pointer to a variable that receives a value that indicates the status of
an operation. For possible values, see DPFPEventHandlerStatusEnum
Enumerated Type on page 102.

newVal [in] Variable that contains the value that indicates the status of an operation

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 81
Chapter 6: API Reference for C++ Developers IDPFPFeatureExtraction Interface

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

DISP_E_OVERFLOW Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Control 1.0

Library [Link]

IDPFPFeatureExtraction Interface
Used by an application to perform fingerprint feature extraction. The IDPFPFeatureExtraction interface
provides a method and a property for creating a fingerprint feature set for the purpose of enrollment or
verification by applying fingerprint feature extraction to a fingerprint sample.

IDPFPFeatureExtraction Members

IDPFPFeatureExtraction::CreateFeatureSet Method
Applies fingerprint feature extraction to a fingerprint sample and then creates a fingerprint feature set for the
specified purpose. A call to this method creates an instance of DPFPFeatureSet, which represents a
fingerprint feature set. The DPFPFeatureSet object implements the IDPFPFeatureSet interface
(page 84).

Syntax
HRESULT CreateFeatureSet(
[in] IDispatch* pFingerprintSample,
[in] DPFPDataPurposeEnum Purpose,
[out, retval] DPFPCaptureFeedbackEnum* pSampleQuality
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 82
Chapter 6: API Reference for C++ Developers IDPFPFeatureExtraction Interface

Parameters

pFingerprintSample [in] A DPFPSample object

Purpose [in] Variable that contains a value for the specified purpose. For possible
values, see DPFPDataPurposeEnum Enumerated Type on
page 103.

pSampleQuality [out, retval] Pointer to a variable that receives a value that provides
feedback about a fingerprint sample capture operation. For possible
values, see DPFPCaptureFeedbackEnum Enumerated Type on
page 100.

Return Value
Returns S_OK if successful.

IDPFPFeatureExtraction::FeatureSet Property
Retrieves a DPFPFeatureSet object created during a fingerprint feature extraction operation. This
property is read-only and has no default value.

Syntax
HRESULT IDPFPFeatureExtraction::get_FeatureSet(
[out, retval] IDispatch** pVal
);

Parameter

pVal [out, retval] A DPFPFeatureSet object

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

DISP_E_MEMBERNOTFOUND Member not found. A fingerprint feature set has not been created
yet.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 83
Chapter 6: API Reference for C++ Developers IDPFPFeatureSet Interface

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

IDPFPFeatureSet Interface
Represents the functionality of a fingerprint feature set. A DPFPFeatureSet object, which represents a
fingerprint feature set, implements the IDPFPFeatureSet interface.

IDPFPFeatureSet Members
None.

Interface Information

Custom implementation Yes

Inherits from IDPFPData


Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

IDPFPReaderDescription Interface
Used by an application to obtain information about a particular fingerprint reader connected to a system, such
as its technology or serial number.

IDPFPReaderDescription Members

IDPFPReaderDescription::FirmwareRevision Property
Retrieves the firmware revision number of a fingerprint reader. This property is read-only and has no default
value.

Syntax
HRESULT IDPFPReaderDescription::get_FirmwareRevision(
[out, retval] BSTR* pVal
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 84
Chapter 6: API Reference for C++ Developers IDPFPReaderDescription Interface

Parameter

pVal [in] Pointer to a variable of type BSTR the receives the fingerprint reader firmware
revision number

Return Value
Returns S_OK if successful.

IDPFPReaderDescription::HardwareRevision Property
Retrieves the hardware revision number of a fingerprint reader. This property is read-only and has no default
value.

Syntax
HRESULT IDPFPReaderDescription::get_HardwareRevision(
[out, retval] BSTR* pVal
);

Parameter

pVal [in] Pointer to a variable of type BSTR that receives the fingerprint reader
hardware revision number

IDPFPReaderDescription::Language Property
Retrieves the fingerprint reader language. The value of the pVal parameter is always 0x409, which is English.
This property is read-only and has no default value.

Syntax
HRESULT IDPFPReaderDescription::get_Language(
[out, retval] LONG* pVal
);

Parameter

pVal [in] Pointer to a variable of type BSTR that receives the fingerprint reader language

Return Value
Returns S_OK if successful.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 85
Chapter 6: API Reference for C++ Developers IDPFPReaderDescription Interface

IDPFPReaderDescription::ImpressionType Property
Retrieves a value that specifies the fingerprint reader impression type, for example, swipe reader or touch
(area) reader. This property is read-only and has no default value.

Syntax
HRESULT IDPFPReaderDescription::get_ImpressionType(
[out, retval] DPFPReaderImpressionTypeEnum* pVal
);

Parameter

pVal [in] Pointer to a variable that receives a value that specifies the fingerprint reader
modality. For possible values, see DPFPReaderImpressionTypeEnum
Enumerated Type on page 104.

Return Value
Returns S_OK if successful.

IDPFPReaderDescription::ProductName Property
Retrieves the product name of a fingerprint reader, for example, “[Link].U.” This property is read-only and has no
default value.

Syntax
HRESULT IDPFPReaderDescription::get_ProductName(
[out, retval] BSTR* pVal
);

Parameter

pVal [in] Pointer to a variable of type BSTR that receives the fingerprint reader product
name

Return Value
Returns S_OK if successful.

IDPFPReaderDescription::SerialNumber Property
Retrieves the serial number of a fingerprint reader. This property is read-only and has no default value.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 86
Chapter 6: API Reference for C++ Developers IDPFPReaderDescription Interface

Syntax
HRESULT IDPFPReaderDescription::get_SerialNumber(
[out, retval] BSTR* pVal
);

Parameter

pVal [in] Pointer to a variable of type BSTR the receives the fingerprint reader serial
number

Return Value
Returns S_OK if successful.

IDPFPReaderDescription::SerialNumberType Property
Retrieves a value that specifies the type of fingerprint reader serial number. This property is read-only and has
no default value.

Syntax
HRESULT IDPFPReaderDescription::get_SerialNumberType(
[out, retval] DPFPSerialNumberTypeEnum* pVal
);

Parameter

pVal [in] Pointer to a variable that receives a value that specifies the fingerprint reader
serial number type. For possible values, see DPFPSerialNumberTypeEnum
Enumerated Type on page 105.

Return Value
Returns S_OK if successful.

IDPFPReaderDescription::Technology Property
Retrieves a value that specifies the fingerprint reader technology. This property is read-only and has no default
value.

Syntax
HRESULT IDPFPReaderDescription::get_Technology(
[out, retval] DPFPReaderTechnologyEnum* pVal
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 87
Chapter 6: API Reference for C++ Developers IDPFPReadersCollection Interface

Parameter

pVal [in] Pointer to a variable that receives a value that specifies the fingerprint reader
technology. For possible values, see DPFPReaderTechnologyEnum
Enumerated Type on page 104.

Return Value
Returns S_OK if successful.

IDPFPReaderDescription::Vendor Property
Retrieves the vendor name for a fingerprint reader, for example, “DigitalPersona, Inc.” This property is read-only
and has no default value.

Syntax
HRESULT IDPFPReaderDescription::get_Vendor(
[out, retval] BSTR* pVal
);

Parameter

pVal [in] Pointer to a variable of type BSTR the receives the fingerprint reader vendor
name

Return Value
Returns S_OK if successful.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

IDPFPReadersCollection Interface
Represents a collection of fingerprint readers connected to a system. The IDPFPReadersCollection
interface provides a method and properties for enumerating the fingerprint readers, for retrieving a particular
fingerprint reader using its index value or its serial number, and for reporting the total number of fingerprint
readers.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 88
Chapter 6: API Reference for C++ Developers IDPFPReadersCollection Interface

IDPFPReadersCollection Members

IDPFPReadersCollection::Reader Method
Creates an instance of DPFPReaderDescription for a particular fingerprint reader using its serial
number. The DPFPReaderDescription object implements the IDPFPReaderDescription
interface (page 84).

Syntax
HRESULT Reader(
[in] BSTR ReaderSerialNum,
[out,retval] IDispatch** ppReader
);

Parameters

ReaderSerialNumber [in] Variable of type BSTR that contains a fingerprint reader serial number

ppReader [out, retval] A DPFPReaderDescription object

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

_HRESULT_FROM_WIN32 The system cannot find The fingerprint reader with the
(ERROR_FILE_NOT_FOUND) the specified file. specified serial number cannot be
found in the system.

IDPFPReadersCollection::Count Property
Retrieves the total number of DPFPReaderDescription objects (items) connected to a system (a
collection). This property is read-only and has no default value.

Syntax
HRESULT IDPFPReadersCollection::get_Count(
[out,retval] LONG* pVal
);

Parameter

pVal [in] Pointer to a variable of type long that receives the total number of
DPFPReaderDescription objects

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 89
Chapter 6: API Reference for C++ Developers IDPFPReadersCollection Interface

Return Value
Returns S_OK if successful.

IDPFPReadersCollection::Item Property
Retrieves a DPFPReaderDescription object (an item) from the fingerprint readers connected to a
system (a collection) using its index. The value of the pVal parameter starts with 1.

Syntax
HRESULT IDPFPReadersCollection::get_Item(
[out,retval] IDispatch** pVal
);

Parameter

pVal [out, retval] A DPFPReaderDescription object

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

DISP_E_BADINDEX Invalid index. The specified index is not in the valid range from 1 to
Count.

IDPFPReadersCollection::_NewEnum Property
Retrieves an IUnknown pointer to the ReaderEnum object (enumeration object), which is an array of
DPFPReaderDescription objects. This property is read-only and has no default value.

Syntax
HRESULT IDPFPReadersCollection::get__NewEnum(
[out,retval] IUnknown** pVal
);

Parameter

pVal [in] Pointer to a variable of type IUnknown that receives the array of
DPFPReaderDescription objects

Return Value
Returns S_OK if successful.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 90
Chapter 6: API Reference for C++ Developers IDPFPSample Interface

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

IDPFPSample Interface
Represents the functionality of a fingerprint sample captured from a fingerprint reader.

IDPFPSample Members
None.

Interface Information

Custom implementation Yes

Inherits from IDPFPData

Type library DigitalPersona One Touch for Windows Shared components 1.0
Library [Link]

See Also
IDPFPData Interface on page 72

IDPFPSampleConversion Interface
Used by an application to convert a fingerprint sample to an image for display. The
IDPFPSampleConversion interface provides methods for returning a fingerprint sample as an
IPicture object and as an image in ANSI 381 format that can be used for display.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 91
Chapter 6: API Reference for C++ Developers IDPFPSampleConversion Interface

IDPFPSampleConversion Members

IDPFPSample::ConvertToANSI381 Method
Converts a fingerprint sample to an image in ANSI 381 format that can be used by an application for display.

HRESULT ConvertToANSI381(
[in] IDispatch* pSample,
[out,retval] VARIANT* pAnsi
);

Parameters

pSample [in] A DPFPSample object


pAnsi [out, retval] Pointer to a variant array of bytes (VT_U1 or VT_ARRAY) that
receives an image in ANSI 381 format

Return Value
Returns S_OK if successful.

IDPFPSample::ConvertToPicture Method
Converts a fingerprint sample to an IPicture object that can be used by an application as an image for
display.

Syntax
HRESULT ConvertToPicture(
[in] IDispatch* pSample,
[out,retval] IDispatch** ppPicture
);

Parameters

pSample [in] A DPFPSample object

ppPicture [out, retval] An IPicture object

Return Value
Returns S_OK if successful.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 92
Chapter 6: API Reference for C++ Developers IDPFPTemplate Interface

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

IDPFPTemplate Interface
Represents the functionality of a fingerprint template. A DPFPTemplate object, which represents a
fingerprint template, implements the IDPFPTemplate interface.

IDPFPTemplate Members
None.

Interface Information

Custom implementation Yes

Inherits from IDPFPData


Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

IDPFPVerification Interface
Used by an application to perform the system function of fingerprint verification. The IDPFPVerification
interface provides a method and a property for performing fingerprint verification, which is a one-to-one
comparison of a fingerprint feature set with a fingerprint template produced at enrollment that returns a
decision of match or non-match.

IDPFPVerification Members

IDPFPVerification::FARRequested Property
Retrieves or returns the requested false accept rate (FAR). For a general explanation of FAR, see False Positives
and False Negatives on page 18.

This property is optional. If you do not set it, the default value is used. You can use the get_FARRequested
property to determine the current value.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 93
Chapter 6: API Reference for C++ Developers IDPFPVerification Interface

IMPORTANT: Although the default value is adequate for most applications, you might require a lower or
higher value to meet your needs. If you decide to use a value other than the default, be sure that
you understand the consequences of doing so. Refer to Appendix A on page 120 for more
information about setting the value of the FAR.

Syntax
HRESULT IDPFPVerification::get_FARRequested(
[out, retval] LONG* pVal
);
HRESULT IDPFPVerification::put_FARRequested(
[in] LONG newVal
);

Parameters

pVal [out, retval] Pointer to a variable of type long that receives the value of the
requested FAR

newVal [in] Variable of type long that contains the value of the requested FAR

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

DISP_E_OVERFLOW Out of present range. The data pointed to by the output parameter is
outside the range of possible values.

IDPFPVerification::Verify Method
Performs the system function of fingerprint verification and returns a comparison decision based on the
requested FAR set by the IDPFPVerification::FARRequested property.

Syntax
HRESULT Verify(
[in] IDispatch* pVerificationFeatureSet,
[in] IDispatch* pFingerprintTemplate,
[out, retval] IDispatch** ppVerificationResult
);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 94
Chapter 6: API Reference for C++ Developers IDPFPVerificationControl Interface

Parameters

pFeatureSet [in] A DPFPFeatureSet object, where the Purpose parameter of


the IDPFPFeatureExtraction::CreateFeatureSet method
was set to the value FeatureSetPurposeVerification (page 82)

pTemplate [in] A DPFPTemplate object

ppVerificationResult [out, retval] A DPFPVerificationResult object

Return Value
Returns S_OK if successful.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

See Also
IDPFPVerificationResult Interface on page 97

IDPFPVerificationControl Interface
Represents the functionality of an ActiveX control, which implements a user interface (described in
DPFPEnrollmentControl Object User Interface on page 107). The IDPFPVerificationControl interface
provides the following functionality:
„ Receives fingerprint reader connect and disconnect event notifications
„ Captures a fingerprint sample from a fingerprint reader
„ Creates a fingerprint feature set for the purpose of verification
„ Fires an event

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 95
Chapter 6: API Reference for C++ Developers IDPFPVerificationControl Interface

IDPFPVerificationControl Members

IDPFPVerificationControl::ReaderSerialNumber Property
Retrieves or returns the serial number of the fingerprint reader from which a fingerprint sample is captured.

This property is optional. If you do not set it, the following value is used:
{00000000-0000-0000-0000-000000000000}. This means that the application will receive events
from any of the fingerprint readers attached to the system.

Syntax
HRESULT IDPFPVerificationControl::get_ReaderSerialNumber(
[out, retval] BSTR* pVal
);
HRESULT IDPFPVerificationControl::put_ReaderSerialNumber(
[in] BSTR newVal
);

Parameters

pVal [out, retval] Pointer to a variable of type BSTR that receives the fingerprint reader
serial number

newVal [in] Variable of type BSTR that contains the fingerprint reader serial number

Return Values
Returns S_OK if successful, or the following error value otherwise:

Return Value Message Description

E_INVALIDARG One or more arguments The format of the string containing the fingerprint
are invalid. reader serial number is incorrect. It should be in
GUID format, for example, {A9EFB3F6-A8C8-4684-
841E-4330973057C6}.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Control 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 96
Chapter 6: API Reference for C++ Developers _IDPFPVerificationControlEvents Interface

_IDPFPVerificationControlEvents Interface
Designates an event sink interface that an application must implement to receive event notifications from a
DPFPVerificationControl object, which implements the IDPFPVerificationControl interface
(page 95).

_IDPFPVerificationControlEvents Members

_IDPFPVerificationControlEvents::OnComplete Event
Fires when a fingerprint feature set created for the purpose of verification is ready for comparison and returns
the fingerprint feature set. The application handles the comparison of the fingerprint feature set with a
fingerprint template(s).

Syntax
HRESULT OnComplete(
[in] IDispatch* pVerificationFeatureSet,
[in] IDispatch* pStatus
);

Parameters

pVerificationFeatureSet [in] A DPFPFeatureSet object


pStatus [in] A DPFPEventHandlerStatus object

Return Value
Returns S_OK if successful.

IDPFPVerificationResult Interface
Represents the functionality of the results of a fingerprint verification operation. A
DPFPVerificationResult object, which represents the results of a fingerprint verification operation,
implements the IDPFPVerificationResult interface. The IDPFPVerificationResult interface
provides properties for retrieving the results of a fingerprint verification operation.

IDPFPVerificationResult Members

IDPFPVerificationResult::FARAchieved Property
Retrieves the value of the achieved FAR for a comparison operation. This property is read-only and has no
default value. See Achieved FAR on page 122 for more information about this property.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 97
Chapter 6: API Reference for C++ Developers IDPFPVerificationResult Interface

Syntax
HRESULT IDPFPVerificationResult::get_FARAchieved(
[out, retval] LONG* pVal
);

Parameter

pVal [out, retval] Pointer to a variable of type long that receives the value of the FAR
that was achieved for the comparison

Return Value
Returns S_OK if successful.

IDPFPVerificationResult::Verified Property
Retrieves the comparison decision, which indicates whether the comparison of a fingerprint feature set and a
fingerprint template resulted in a decision of match or non-match. This decision is based on the value set by
the IDPFPVerification::FARRequested property (page 93). The
IDPFPVerificationResult::Verified Property property is read-only and has no default value.

Syntax
HRESULT IDPFPVerificationResult::get_Verified(
[out, retval] VARIANT_BOOL* pVal
);

Parameter

pVal [out, retval] Pointer to a variant of type boolean that receives the comparison
decision. Possible values are true for a decision of match or false for a decision of
non-match.

Return Value
Returns S_OK if successful.

Interface Information

Custom implementation Yes

Inherits from IDispatch

Type library DigitalPersona One Touch for Windows Engine components 1.0
Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 98
Chapter 6: API Reference for C++ Developers Enumerations

Enumerations
The One Touch for Windows: COM/ActiveX Edition API COM implementation includes the enumerated types
defined in this section. Use the following list to quickly locate an enumerated type by name, by page number,
or by description.

Method Page Description

DPFPCaptureFeedbackEnum 100 Events returned by a fingerprint reader that provide feedback


about a fingerprint sample capture operation

DPFPCapturePriorityEnum 101 Priority of a fingerprint sample capture operation

DPFPEventHandlerStatusEnum 102 Codes that are returned by the DPFPEventHandlerStatus


object to indicate the status of an operation

DPFPDataPurposeEnum 103 Purpose for which a fingerprint feature set is to be used

DPFPReaderImpressionTypeEnum 104 Modality that a fingerprint reader uses to capture fingerprint


samples

DPFPReaderTechnologyEnum 104 Fingerprint reader technology

DPFPSerialNumberTypeEnum 105 Fingerprint reader serial number persistence after reboot

DPFPTemplateStatusEnum 106 Status of a fingerprint template creation operation

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 99
Chapter 6: API Reference for C++ Developers DPFPCaptureFeedbackEnum Enumerated Type

DPFPCaptureFeedbackEnum Enumerated Type


The DPFPCaptureFeedbackEnum enumerated type defines the events returned by a fingerprint reader
that provide feedback about a fingerprint sample capture operation.

Syntax
typedef enum DPFPCaptureFeedbackEnum{
CaptureFeedbackGood = 0,
CaptureFeedbackNone = 1,
CaptureFeedbackTooLight = 2,
CaptureFeedbackTooDark = 3,
CaptureFeedbackTooNoisy = 4,
CaptureFeedbackLowContrast = 5,
CaptureFeedbackNotEnoughFtrs = 6,
CaptureFeedbackNoCentralRgn = 7,
CaptureFeedbackNoFinger = 8,
CaptureFeedbackTooHigh = 9,
CaptureFeedbackTooLow = 10,
CaptureFeedbackTooLeft = 11,
CaptureFeedbackTooRight = 12,
CaptureFeedbackTooStrange = 13,
CaptureFeedbackTooFast = 14,
CaptureFeedbackTooSkewed = 15,
CaptureFeedbackTooShort = 16,
CaptureFeedbackTooSlow = 17,
} DPFPCaptureFeedbackEnum;

Constants

CaptureFeedbackGood The fingerprint sample is of good quality.

CaptureFeedbackNone There is no fingerprint sample.


CaptureFeedbackTooLight The fingerprint sample is too light.

CaptureFeedbackTooDark The fingerprint sample is too dark

CaptureFeedbackTooNoisy The fingerprint sample is too noisy.

CaptureFeedbackLowContrast The fingerprint sample contrast is too low.

CaptureFeedbackNotEnoughFtrs The fingerprint sample does not contain enough


information.

CaptureFeedbackNoCentralRgn The fingerprint sample is not centered.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 100
Chapter 6: API Reference for C++ Developers DPFPCapturePriorityEnum Enumerated Type

CaptureFeedbackNoFinger The scanned object is not a finger.

CaptureFeedbackTooHigh The finger was too high on the swipe sensor.

CaptureFeedbackTooLow The finger was too low on the swipe sensor.

CaptureFeedbackTooLeft The finger was too close to the left border of the swipe
sensor.
CaptureFeedbackTooRight The finger was too close to the right border of the swipe
sensor.

CaptureFeedbackTooStrange The scan looks strange.

CaptureFeedbackTooFast The finger was swiped too quickly.

CaptureFeedbackTooSkewed The fingerprint sample is too skewed.

CaptureFeedbackTooShort The fingerprint sample is too short.

CaptureFeedbackTooSlow The finger was swiped too slowly.

Remarks
The members of this enumerated type are called by the
IDPFPFeatureExtraction::CreateFeatureSet method (page 82) and by the
_IDPFPCaptureEvents::OnSampleQuality event (page 71).

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Shared components 1.0

Library [Link]

DPFPCapturePriorityEnum Enumerated Type


The DPFPCapturePriorityEnum enumerated type defines the priority of a fingerprint sample capture
operation performed by a fingerprint reader.

Syntax
typedef enum DPFPCapturePriorityEnum{
CapturePriorityLow = 0,
CapturePriorityNormal = 1,
CapturePriorityHigh = 2,
} DPFPCapturePriorityEnum;

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 101
Chapter 6: API Reference for C++ Developers DPFPEventHandlerStatusEnum Enumerated Type

Constants

CapturePriorityLow Low priority. An application uses this priority to acquire events from
the fingerprint reader only if there are no subscribers with high or
normal priority. Only one subscriber with this priority is allowed.

CapturePriorityNormal Normal priority. An application uses this priority to acquire events


from the fingerprint reader only if the operation runs in a foreground
process. Multiple subscribers with this priority are allowed.

CapturePriorityHigh High priority. A subscriber uses this priority to acquire events from the
fingerprint reader exclusively. Only one subscriber with this priority is
allowed.

Remarks
The members of this enumerated type are called by the IDPFPCapture::Priority property
(page 67).

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPEventHandlerStatusEnum Enumerated Type


The DPFPEventHandlerStatusEnum enumerated type defines the codes that are returned by the
DPFPEventHandlerStatus object to indicate the status of an operation.

Syntax
typedef enum DPFPEventHandlerStatusEnum{
EventHandlerStatusSuccess = 0,
EventHandlerStatusFailure = 1,
} DPFPEventHandlerStatusEnum;

Constants

EventHandlerStatusSuccess An operation was performed successfully.

EventHandlerStatusFailure An operation failed.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 102
Chapter 6: API Reference for C++ Developers DPFPDataPurposeEnum Enumerated Type

Remarks
The members of this enumerated type are called by the IDPFPEventHandlerStatus::Status
property (page 81).

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Control 1.0

Library [Link]

DPFPDataPurposeEnum Enumerated Type


The DPFPDataPurposeEnum enumerated type defines the purpose for which a fingerprint feature set is to
be used.

Syntax
typedef enum DPFPDataPurposeEnum{
DataPurposeUnknown = 0,
DataPurposeVerification = 1,
DataPurposeEnrollment = 2,
} DPFPDataPurposeEnum;

Constants

DataPurposeUnknown The purpose is not known.

DataPurposeVerification A fingerprint feature set to be used for the purpose of verification.


DataPurposeEnrollment A fingerprint feature set to be used for the purpose of enrollment.

Remarks
The members of this enumerated type are called by the
IDPFPFeatureExtraction::CreateFeatureSet method (page 82).

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 103
Chapter 6: API Reference for C++ Developers DPFPReaderImpressionTypeEnum Enumerated Type

DPFPReaderImpressionTypeEnum Enumerated Type


The DPFPReaderImpressionTypeEnum enumerated type defines the modality that a fingerprint reader
uses to capture fingerprint samples.

Syntax
typedef enum DPFPReaderImpressionTypeEnum{
ReaderImpressionTypeUnknown = 0,
ReaderImpressionTypeSwipe = 1,
ReaderImpressionTypeArea = 2,
} DPFPReaderImpressionTypeEnum;

Constants

ReaderImpressionTypeUnknown A fingerprint reader for which the modality is not known.

ReaderImpressionTypeSwipe A swipe fingerprint reader.

ReaderImpressionTypeArea An area (touch) sensor fingerprint reader.

Remarks
The members of this enumerated type are called by the
IDPFPReaderDescription::ImpressionType property (page 86).

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPReaderTechnologyEnum Enumerated Type


The DPFPReaderTechnologyEnum enumerated type defines the fingerprint reader technology.

Syntax
typedef enum DPFPReaderTechnologyEnum{
ReaderTechnologyUnknown = 0,
ReaderTechnologyOptical = 1,
ReaderTechnologyCapacitive = 2,
ReaderTechnologyThermal = 3,
ReaderTechnologyPressure = 4,
} DPFPReaderTechnologyEnum;

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 104
Chapter 6: API Reference for C++ Developers DPFPSerialNumberTypeEnum Enumerated Type

Constants

ReaderTechnologyUnknown A fingerprint reader for which the technology is not known.


ReaderTechnologyOptical An optical fingerprint reader.

ReaderTechnologyCapacitive A capacitive fingerprint reader.

ReaderTechnologyThermal A thermal fingerprint reader.

ReaderTechnologyPressure A pressure fingerprint reader.

Remarks
The members of this enumerated type are called by the IDPFPReaderDescription::Technology
property (page 87).

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPSerialNumberTypeEnum Enumerated Type


The DPFPSerialNumberTypeEnum enumerated type defines whether a fingerprint reader serial number
persists after reboot.

Syntax
typedef enum DPFPSerialNumberTypeEnum{
SerialNumberTypePersistent = 0,
SerialNumberTypeVolatile = 1,
} DPFPSerialNumberTypeEnum;

Constants

SerialNumberTypePersistent A persistent serial number.

SerialNumberTypeVolatile A volatile serial number.

Remarks
The members of this enumerated type are called by the
IDPFPReaderDescription::SerialNumberType property (page 87).

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 105
Chapter 6: API Reference for C++ Developers DPFPTemplateStatusEnum Enumerated Type

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Device components 1.0

Library [Link]

DPFPTemplateStatusEnum Enumerated Type


The DPFPTemplateStatusEnum enumerated type defines the status of a fingerprint template creation
operation.

Syntax
typedef enum DPFPTemplateStatusEnum{
TemplateStatusUnknown = 0,
TemplateStatusInsufficient = 1,
TemplateStatusFailed = 2,
TemplateStatusReady = 3,
} DPFPTemplateStatusEnum;

Constants

TemplateStatusUnknown The status of a template creation operation is not know,


probably because a fingerprint template does not exist yet.
TemplateStatusInsufficient A fingerprint template exists, but more fingerprint feature sets
are required to complete it.

TemplateStatusFailed A fingerprint template creation operation failed.


TemplateStatusReady A fingerprint template was created and is ready for use.

Remarks
The members of this enumerated type are called by the IDPFPEnrollment::TemplateStatus
property (page 75).

Enumerated Type Information

Type library DigitalPersona One Touch for Windows Engine components 1.0

Library [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 106
User Interface 7

This chapter describes the functionality of the user interfaces included in the following component objects:
„ DPFPEnrollmentControl
This object includes the user interface described in the next section. The methods and properties for this
object are described on page 39 for Visual Basic and on page 73 and page 79 for C++.
„ DPFPVerificationControl
This object includes the user interface described on page 116. The methods and properties for this object
are described on page 54 for Visual Basic and page 95 and page 97 for C++.

DPFPEnrollmentControl Object User Interface


The user interface included with the DPFPEnrollmentControl object consists of two elements. The first
element is used to provide instructions for selecting a fingerprint to enroll and for selecting a fingerprint
template to delete, and is used to indicate already-enrolled fingerprints. The second element is used to provide
instructions and feedback, both graphically and textually, about the enrollment process.

The tables and figure in this section describe the interaction between the user and the user interface during
fingerprint enrollment and fingerprint template deletion.

NOTE: In the tables, the elements are referred to as the hands element and the numbers element.

Enrolling a Fingerprint
Figure 9 illustrates the fingerprint enrollment process using the DPFPEnrollmentControl object
interface. Picture numbers in the figure correspond to the pictures in Table 7 on page 109. Table 7 illustrates
and describes the interaction between the user and the user interface during fingerprint enrollment.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 107
Chapter 7: User Interface Enrolling a Fingerprint

6WDUW

3LFWXUH

8VHUFOLFNVILQJHU
8VHUFOLFNVXQHQUROOHGILQJHU

3LFWXUH
<HV
0D[LPXPWHPSODWHVFUHDWHG 0D[LPXP"

1R

1R
IHDWXUHVHWFUHDWHG

3LFWXUH 3LFWXUH
)LUVWILQJHUSULQW

8VHUFOLFNVKHUH &DQFHO <HV


:DLWLQJIRUXVHU *RWRVWDUW
HQUROOPHQW"

3LFWXUH$RU%
1R )HDWXUH
%DOORRQPHVVDJH
6HW2."
<HV
1R
3LFWXUH
6HFRQGILQJHUSULQW

3LFWXUH
IHDWXUHVHWFUHDWHG

8VHUFOLFNVKHUH &DQFHO <HV


:DLWLQJIRUXVHU *RWRVWDUW
HQUROOPHQW"

%DOORRQPHVVDJHDV 1R )HDWXUH
LQ3LFWXUH$RU% 6HW2."
<HV
1R
3LFWXUH 3LFWXUH
IHDWXUHVHWFUHDWHG
7KLUGILQJHUSULQW

8VHUFOLFNVKHUH &DQFHO <HV


:DLWLQJIRUXVHU *RWRVWDUW
HQUROOPHQW"

%DOORRQPHVVDJHDV 1R )HDWXUH
LQ3LFWXUH$RU% 6HW2."
<HV
1R
3LFWXUH 3LFWXUH
IHDWXUHVHWFUHDWHG
)RXUWKILQJHUSULQW

8VHUFOLFNVKHUH &DQFHO <HV


:DLWLQJIRUXVHU *RWRVWDUW
HQUROOPHQW"

%DOORRQPHVVDJHDV 1R )HDWXUH
LQ3LFWXUH$RU% 6HW2."
<HV
1R
)LQJHUSULQWWHPSODWHFUHDWHGDQGILQJHUSULQWHQUROOHG

3LFWXUH 3LFWXUH
8VHUFOLFNVKHUH &DQFHO <HV
:DLWLQJIRUXVHU *RWRVWDUW
HQUROOPHQW"

<HV
3LFWXUH
1R
%DOORRQPHVVDJH 7HPSODWH
2."
<HV

3LFWXUH

7HPSODWHFUHDWHG

3LFWXUH

%DOORRQPHVVDJH

(QG

Figure 9. Enrolling a fingerprint using the DPFPControlEnrollment object user interface

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 108
Chapter 7: User Interface Enrolling a Fingerprint

Table 7. DPFPEnrollmentControl object user interface: Enrolling a fingerprint

User interface User actions and user interface feedback

Picture 1 This image indicates that no fingerprints have been


enrolled, because the fingers associated with any enrolled
fingerprints would be green.
The user clicked the right index finger, and control was
passed from the hands element to the numbers element.

Picture 2 The hands element is ready to enroll the user’s right index
fingerprint, as indicated by the green finger on the hand
in the bottom left corner.

Picture 3 The user touched the fingerprint reader, and a fingerprint


feature set was created.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 109
Chapter 7: User Interface Enrolling a Fingerprint

Table 7. DPFPEnrollmentControl object user interface: Enrolling a fingerprint (continued)

User interface User actions and user interface feedback

Picture 4A The user touched the fingerprint reader, but a fingerprint


feature set was not created. The message that is displayed
depends on the quality of the fingerprint sample, as
shown in Pictures 4A and 4B.

Picture 4B

Picture 5 The user touched the fingerprint reader, and a second


fingerprint feature set was created.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 110
Chapter 7: User Interface Enrolling a Fingerprint

Table 7. DPFPEnrollmentControl object user interface: Enrolling a fingerprint (continued)

User interface User actions and user interface feedback

Picture 6 The user touched the fingerprint reader, and a third


fingerprint feature set was created.

Picture 7 The user touched the fingerprint reader, and a fourth


fingerprint feature set was created.
Although the instructions to scan the finger again still
appear, control is passed to the hands element almost
immediately (see the next figure).

Picture 8 A fingerprint template was created for the selected finger.


This image appears when the OnEnroll event of the
DPFPEnrollmentControl object is fired and returns
a status of EventHandlerStatusSuccess.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 111
Chapter 7: User Interface Enrolling a Fingerprint

Table 7. DPFPEnrollmentControl object user interface: Enrolling a fingerprint (continued)

User interface User actions and user interface feedback

Picture 9 The hands element indicates that the right index


fingerprint is enrolled, that is, the finger is green.
The value of the EnrolledFingersMask property is
000000000 001000000, or 64.

Picture 10 A fingerprint template was not created for the selected


finger.
The user is instructed to try again, and control remains
with the numbers element.

Picture 11 This message appears when the user clicks here in Click
here to cancel enrollment. When the user clicks No, this
message is dismissed and control is returned to the
numbers element. When the user clicks Yes, this message
is dismissed and control is passed to the hands element.
The user can cancel enrollment at any time by clicking
here.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 112
Chapter 7: User Interface Enrolling a Fingerprint

Table 7. DPFPEnrollmentControl object user interface: Enrolling a fingerprint (continued)

User interface User actions and user interface feedback

Picture 12 This message is displayed when a user who has already


enrolled the maximum allowed number of fingerprints
(set by the MaxEnrollFingerCount property) clicks
a finger associated with an unenrolled finger in the hands
element. When the user clicks OK, control is returned to
the hands element.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 113
Chapter 7: User Interface Deleting a Fingerprint Template

Deleting a Fingerprint Template


Table 8 on page 114 illustrates and describes the interaction between the user and the user interface during
fingerprint template deletion.

Table 8. DPFPEnrollmentControl object user interface: Deleting a fingerprint template

User interface User actions and user interface feedback

The hands element indicates that the right index


fingerprint is enrolled, that is, the finger is green.
The value of the EnrolledFingersMask property is
000000000 001000000, or 64.

This message appears when the user clicks the right index
fingerprint (which was previously enrolled) to delete its
associated fingerprint template.
When the user clicks No, this message is dismissed and
control is returned to the hands element, which remains
unchanged.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 114
Chapter 7: User Interface Deleting a Fingerprint Template

Table 8. DPFPEnrollmentControl object user interface: Deleting a fingerprint template (continued)

User interface User actions and user interface feedback

When the user clicks Yes, this message is dismissed and


control is returned to the hands element, where the green
color is removed from the right index finger (the
fingerprint template was deleted).
The value of the EnrolledFingersMask property is
now set to 000000000 000000000, or 0.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 115
Chapter 7: User Interface DPFPVerificationControl Object User Interface

DPFPVerificationControl Object User Interface


The user interface included with the DPFPVerificationControl object consists of one element. This
element is used to indicate the connection status of the fingerprint reader and to provide feedback about the
fingerprint verification process. Table 9 illustrates and describes the interaction between the user and the user
interface.

Table 9. DPFPVerificationControl object user interface

User interface User actions and user interface feedback

Indicates that the fingerprint reader is disconnected and ready for the user to scan a
finger.

Indicates that the fingerprint reader is disconnected.

Indicates a comparison decision of match from a fingerprint verification operation.


This image appears when the OnComplete event of the
DPFPVerificationControl object is fired and returns a status of
EventHandlerStatusSuccess, and the value of the Verified property of
the DPFPVerificationResult object is true.

Indicates a comparison decision of non-match from a fingerprint verification


operation.
This image appears when the OnComplete event of the
DPFPVerificationControl object is fired and returns a status of
EventHandlerStatusSuccess, and the value of the Verified property of
the DPFPVerificationResult object is false.

Indicates that the fingerprint verification operation failed.


This image appears when the OnComplete event of the
DPFPVerificationControl object is fired and returns a status of
EventHandlerStatusFailure.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 116
Redistribution 8

You may redistribute the files in the RTE\Install and the Redist folders of the One Touch for Windows SDK
product CD to your end users pursuant to the terms of the end user license agreement (EULA), attendant to the
software and located in the Docs folder on the product CD.

When you develop a product based on the One Touch for Windows SDK, you need to provide the
redistributables to your end users. These files are designed and licensed for use with your application. You may
include the installation files located in the RTE\Install folder in your application, or you may incorporate the
redistributables directly into your installer. You may also use the merge modules located in the Redist folder on
the product CD to create your own MSI installer.

Per the terms of the EULA, DigitalPersona grants you a non-transferable, non-exclusive, worldwide license to
redistribute, either directly or via the respective merge modules, the following files contained in the RTE\Install
and Redist folders of the One Touch for Windows SDK product CD to your end users and to incorporate these
files into derivative works for sale and distribution:

RTE\Install Folder
„ [Link]
„ [Link]
„ [Link]
„ [Link]

Redist Folder
„ [Link]
This merge module contains the following files:
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 117
Chapter 8: Redistribution Redist Folder

„ [Link]
This merge module contains the following files:
„ [Link]
„ [Link]
„ [Link]
„ Dpersona_x64.cat
„ Dpersona_x64.inf
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]
„ [Link]

„ [Link]
This merge module contains the following files:
„ [Link]
„ [Link]

„ [Link]
This merge module contains the following file:
„ [Link]

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 118
Chapter 8: Redistribution Fingerprint Reader Documentation

„ [Link]
This merge module contains the following files:
„ [Link]
„ [Link]
„ [Link]

„ COM/ActiveX libraries
„ [Link]
„ [Link]
„ [Link]
„ [Link]

Fingerprint Reader Documentation


You may redistribute the documentation included in the Redist folder on the One Touch for Windows SDK
product CD to your end users pursuant to the terms of this section and of the EULA, attendant to the software
and located in the Docs folder on the product CD.

Hardware Warnings and Regulatory Information


If you distribute DigitalPersona [Link].U fingerprint readers to your end users, you are responsible for advising
them of the warnings and regulatory information included in the Warnings and Regulatory [Link] file
in the Redist folder on the One Touch for Windows SDK product CD. You may copy and redistribute the
language, including the copyright and trademark notices, set forth in the Warnings and Regulatory
[Link] file.

Fingerprint Reader Use and Maintenance Guide


The DigitalPersona [Link].U Fingerprint Reader Use and Maintenance Guide, DigitalPersona Reader
[Link], is located in the Redist folder on the One Touch for Windows SDK product CD. You may copy
and redistribute the DigitalPersona Reader [Link] file, including the copyright and trademark
notices, to those who purchase a [Link].U module or fingerprint reader from you.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 119
Setting the False Accept Rate A

This appendix is for developers who want to specify a false accept rate (FAR) other than the default used by the
DigitalPersona Fingerprint Recognition Engine.

False Accept Rate (FAR)


The false accept rate (FAR), also known as the security level, is the proportion of fingerprint verification
operations by authorized users that incorrectly returns a comparison decision of match. The FAR is typically
stated as the ratio of the expected number of false accept errors divided by the total number of verification
attempts, or the probability that a biometric system will falsely accept an unauthorized user. For example, a
probability of 0.001 (or 0.1%) means that out of 1,000 verification operations by authorized users, a system is
expected to return 1 incorrect match decision. Increasing the probability to, say, 0.0001 (or 0.01%) changes this
ratio from 1 in 1,000 to 1 in 10,000.

Increasing or decreasing the FAR has the opposite effect on the false reject rate (FRR), that is, decreasing the
rate of false accepts increases the rate of false rejects and vice versa. Therefore, a high security level may be
appropriate for an access system to a secured area, but may not be acceptable for a system where convenience
or easy access is more significant than security.

Representation of Probability
The DigitalPersona Fingerprint Recognition Engine supports the representation for the FAR probability that
fully conforms to the BIOAPI 1.1, BioAPI 2.0, and UPOS standard specifications. In this representation, the
probability is represented as a positive 32-bit integer, or zero. (Negative values are reserved for special uses.)

The definition PROBABILITY_ONE provides a convenient way of using this representation. PROBABILITY_ONE
has the value 0x7FFFFFFF (where the prefix 0x denotes base 16 notation), which is 2147483647 in decimal
notation. If the probability (P) is encoded by the value (INT_N), then

INT_N = P x PROBABILITY_ONE

INT_N
P=
PROBABILITY_ONE

Probability P should always be in the range from 0 to 1. Some common representations of probability are listed
in column one of Table 2. The value in the third row represents the current default value used by the
DigitalPersona Fingerprint Recognition Engine, which offers a mid-range security level. The value in the second
row represents a typical high FAR/low security level, and the value in the fourth row represents a typical low
FAR/high security level.
The resultant value of INT_N is represented in column two, in decimal notation.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 120
Appendix A: Setting the False Accept Rate

Table 2. Common values of probability and resultant INT_N values

Probability (P) Value of INT_N in decimal notation

0.001 = 0.1% = 1/1000 2147483

0.0001 = 0.01% = 1/10000 214748

0.00001 = 0.001% = 1/100000 21475

0.000001 = 0.0001% = 1/1000000 2147

Requested FAR
You specify the value of the FAR, which is INT_N from the previous equation, using the FARRequested
property. While you can request any value from 0 to the value PROBABILITY_ONE, it is not guaranteed that the
Engine will fulfill the request exactly. The Engine implementation makes the best effort to accommodate the
request by internally setting the value closest to that requested within the restrictions it imposes for security.

Specifying the FAR in C++


If you are developing your application in C++, you specify the value of the FAR (INT_N) in the pVal parameter
of the IDPFPVerification::FARRequested property. The following sample code sets the FAR to a
value of 0.000001, or 0.0001%.

#define PROBABILITY_ONE (0x7FFFFFFF)

IDPFPVerification* verification;
...

//Sets the FAR to 0.0001%


rc = verification -> put_FARRequested (PROBABILITY_ONE / 1000000);

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 121
Appendix A: Setting the False Accept Rate

Specifying the FAR in Visual Basic


If you are developing your application in Visual Basic, you specify the value of the FAR (INT_N) in the lValue
parameter in the FARRequested property of the DPFPVerification object. The following sample
code sets the FAR to a value of 0.0001, or 0.01%.

Const PROBABILITY_ONE as Long = &H7FFFFFFF

Dim verification as DPFPVerification


...

' Sets the FAR to 0.01%


[Link] = PROBABILITY_ONE / 10000

Achieved FAR
The actual value of the FAR achieved for a particular verification operation is returned in the pVal parameter
of IDPFPVerificationResult::FARAchieved property in C++ or in the lValue parameter of the
FARAchieved property of the DPFPVerificationResult object in Visual Basic. This value is typically
much smaller than the requested FAR due to the accuracy of the DigitalPersona Fingerprint Recognition
Engine. The requested FAR specifies the maximum value of the FAR to be used by the Engine in making the
verification decision. The actual FAR achieved by the Engine when conducting a legitimate comparison is
usually a much lower value. The Engine implementation may choose the range and granularity for the
achieved FAR. If you make use of this value in your application, for example, by combining it with other
achieved FARs, you should use it with caution, as the granularity and range may change between versions of
DigitalPersona SDKs without notice.

Testing
Although you may achieve the desired values of the FAR in your development environment, it is not
guaranteed that your application will achieve the required security level in real-world situations. Even though
the Engine is designed to make its best effort to accurately implement the probability estimates, it is
recommended that you conduct system-level testing to determine the actual operating point and accuracy in a
given scenario. This is even more important in systems where multiple biometric factors are used for
identification.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 122
Platinum SDK Registration Template Conversion B

This appendix is for Platinum SDK users who need to convert their Platinum SDK registration templates to a
format that is compatible with the SDKs that are listed in Fingerprint Template Compatibility on page 5. You can
use the following sample codes for this purpose.

Platinum SDK Registration Template Conversion for Microsoft


Visual C++ Applications
Use Code Sample 1 in applications developed in Microsoft Visual C++ to convert DigitalPersona Platinum SDK
registration templates.

Code Sample 1. Platinum SDK Template Conversion for Microsoft Visual C++ Applications
#import "[Link]" no_namespace, named_guids, raw_interfaces_only
#include <atlbase.h>

bool PlatinumTOGold(unsigned char* platinumBlob, int platinumBlobSize,


unsigned char* goldBlob, int goldBufferSize,
int* goldTemplateSize)
{
// Load the byte array into FPTemplate Object
// to create Platinum template object
SAFEARRAYBOUND rgsabound;
[Link] = 0;
[Link] = platinumBlobSize;

CComVariant varVal;
[Link] = VT_ARRAY | VT_UI1;
[Link] = SafeArrayCreate(VT_UI1, 1, &rgsabound);

unsigned char* data;


if (FAILED(SafeArrayAccessData([Link], (void**)&data)))
return false;

memcpy(data, platinumBlob, platinumBlobSize);


SafeArrayUnaccessData([Link]);

IFPTemplatePtr pIFPTemplate(__uuidof(FPTemplate));

if (pIFPTemplate == NULL)
return false;

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 123
Appendix B: Platinum SDK Registration Template Conversion

Code Sample 1. Platinum SDK Template Conversion for Microsoft Visual C++ Applications (continued)
AIErrors error;
if (FAILED(pIFPTemplate->Import(varVal, &error)))
return false;

if (error != Er_OK)
return false;

// Now pIFPTemplate contains the Platinum template.


// Use TemplData property to get the Gold Template out.
CComVariant varValGold;

if (FAILED(pIFPTemplate->get_TemplData(&varValGold)))
return false;

unsigned char* dataGold;


if (FAILED(SafeArrayAccessData([Link], (void**)&dataGold)))
return false;

int blobSizeRequired = [Link]->rgsabound->cElements *


[Link]->cbElements;
*goldTemplateSize = blobSizeRequired;

if (goldBufferSize < blobSizeRequired) {


SafeArrayUnaccessData([Link]);
return false;
}

memcpy(goldBlob, dataGold, blobSizeRequired);

SafeArrayUnaccessData([Link]);

return true;

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 124
Appendix B: Platinum SDK Registration Template Conversion

Platinum SDK Registration Template Conversion for Visual


Basic 6.0 Applications
Use Code Sample 2 in applications developed in Microsoft Visual Basic 6.0 to convert DigitalPersona Platinum
SDK registration templates.

Code Sample 2. Platinum SDK Template Conversion for Visual Basic 6.0 Applications
Public Function PlatinumToGold(platinumTemplate As Variant) As Byte()
Dim pTemplate As New FPTemplate
Dim vGold As Variant
Dim bGold() As Byte

Dim er As [Link]
er = [Link](platinumTemplate)
If er <> Er_OK Then PlatinumToGold = "": Exit Function
vGold = [Link]
bGold = vGold
PlatinumToGold = bGold
End Function

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 125
Glossary

biometric system fingerprint


An automatic method of identifying a person An impression of the ridges on the skin of a finger.
based on the person’s unique physical and/or
behavioral traits, such as a fingerprint or an iris fingerprint capture device
pattern, or a handwritten signature or a voice. A device that collects a signal of a fingerprint data
subject’s fingerprint characteristics and converts it to a
comparison fingerprint sample. A device can be any piece of
The estimation, calculation, or measurement of hardware (and supporting software and firmware). In
similarity or dissimilarity between fingerprint some systems, converting a signal from fingerprint
feature set(s) and fingerprint template(s). characteristics to a fingerprint sample may include
multiple components such as a camera, photographic
comparison score paper, printer, digital scanner, or ink and paper.
The numerical value resulting from a comparison of
fingerprint feature set(s) with fingerprint fingerprint characteristic
template(s). Comparison scores can be of two Biological finger surface details that can be detected
types: similarity scores or dissimilarity scores. and from which distinguishing and repeatable
fingerprint feature set(s) can be extracted for the
DigitalPersona Fingerprint Recognition Engine purpose of fingerprint verification or fingerprint
A set of mathematical algorithms formalized to enrollment.
determine whether a fingerprint feature set
matches a fingerprint template according to a fingerprint data
specified security level in terms of the false accept Either the fingerprint feature set, the fingerprint
rate (FAR). template, or the fingerprint sample.

enrollment fingerprint data object


See fingerprint enrollment. An object that inherits the properties of a DPFPData
object. Fingerprint data objects include DPFPSample
false accept rate (FAR) (represents a fingerprint sample), DPFPFeatureSet
The proportion of fingerprint verification (represents a fingerprint feature set), and
transactions by fingerprint data subjects not DPFPTemplate (represents a fingerprint template).
enrolled in the system where an incorrect decision
of match is returned. fingerprint data storage subsystem
A storage medium where fingerprint templates are
false reject rate (FRR) stored for reference. Each fingerprint template is
The proportion of fingerprint verification associated with a fingerprint enrollment subject.
transactions by fingerprint enrollment subjects Fingerprint templates can be stored within a
against their own fingerprint template(s) where an fingerprint capture device; on a portable medium such
incorrect decision of non-match is returned. as a smart card; locally, such as on a personal computer
or a local server; or in a central database.
features
See fingerprint features.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 126
Glossary

fingerprint data subject fingerprint image


A person whose fingerprint sample(s), fingerprint A digital representation of fingerprint features prior
feature set(s), or fingerprint template(s) are present to extraction that are obtained from a fingerprint
within the fingerprint recognition system at any reader. See also fingerprint sample.
time. Fingerprint data can be either from a person
being recognized or from a fingerprint enrollment fingerprint reader
subject. A device that collects data from a person’s fingerprint
features and converts it to a fingerprint sample.
fingerprint enrollment
a. In a fingerprint recognition system, the initial fingerprint recognition system
process of collecting fingerprint data from a person A biometric system that uses the distinctive and
by extracting the fingerprint features from the persistent characteristics from the ridges of a finger,
person’s fingerprint image for the purpose of also referred to as fingerprint features, to distinguish
enrollment and then storing the resulting data in a one finger (or person) from another.
template for later comparison.
fingerprint sample
b. The system function that computes a fingerprint
The analog or digital representation of fingerprint
template from a fingerprint feature set(s).
characteristics prior to fingerprint feature extraction
fingerprint enrollment subject that are obtained from a fingerprint capture device. A
fingerprint sample may be raw (as captured),
The fingerprint data subject whose fingerprint
intermediate (after some processing), or processed.
template(s) are held in the fingerprint data storage
subsystem. fingerprint template
fingerprint feature extraction The output of a completed fingerprint enrollment
process that is stored in a fingerprint data storage
The system function that is applied to a fingerprint
subsystem. Fingerprint templates are stored for later
sample to compute repeatable and distinctive
comparison with a fingerprint feature set(s).
information to be used for fingerprint verification
or fingerprint enrollment. The output of the fingerprint verification
fingerprint feature extraction function is a
a. In a fingerprint recognition system, the process of
fingerprint feature set.
extracting the fingerprint features from a person’s
fingerprint features fingerprint image provided for the purpose of
verification, comparing the resulting data to the
The distinctive and persistent characteristics from
template generated during enrollment, and deciding
the ridges on the skin of a finger. See also
if the two match.
fingerprint characteristics.
b. The system function that performs a one-to-one
fingerprint feature set comparison and makes a decision of match or non-
The output of a completed fingerprint feature match.
extraction process applied to a fingerprint sample.
A fingerprint feature set(s) can be produced for the match
purpose of fingerprint verification or for the The decision that the fingerprint feature set(s) and
purpose of fingerprint enrollment. the fingerprint template(s) being compared are from
the same fingerprint data subject.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 127
Glossary

non-match
The decision that the fingerprint feature set(s) and
the fingerprint template(s) being compared are not
from the same fingerprint data subject.

one-to-one comparison
The process in which recognition fingerprint
feature set(s) from one or more fingers of one
fingerprint data subject are compared with
fingerprint template(s) from one or more fingers of
one fingerprint data subject.

repository
See fingerprint data storage subsystem.

security level
The target false accept rate for a comparison
context. See also FAR.

verification
See fingerprint verification.

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 128
Index

Symbols Count property


_IDPFPCaptureEvents interface for C++ 69 DPFPReadersCollection object for Visual Basic 49
_IDPFPEnrollmentControlEvents interface for C++ 79 IDPFPReadersCollection interface for C++ 89
_IDPFPVerificationControlEvents interface for C++ 97 Courier bold typeface, use of 3
_NewEnum property CreateFeatureSet method
DPFPReadersCollection object for Visual Basic 50 calling
IDPFPReadersCollection interface for C++ 90 in typical fingerprint enrollment workflow 21
in typical fingerprint verification workflow 25
A DPFPFeatureExtraction object for Visual Basic 44
AddFeatures method IDPFPFeatureExtraction interface for C++ 82
calling in typical fingerprint enrollment workflow 21
DPFPEnrollment object for Visual Basic 37 D
IDPFPEnrollment interface for C++ 73 data object
additional resources 4 See fingerprint data object
online resources 4 Deserialize method
related documentation 4 calling in fingerprint data object deserialization
API reference workflow 29
C++ 65–106 DPFPData object for Visual Basic 36
Visual Basic 30–64 IDPFPData interface for C++ 72
audience for this guide 1 deserializing fingerprint data object workflow 29
illustrated 29
B developer guide
biometric system overview of chapters 1
defined 126 overview of concepts and terminology 15
explained 15 DigitalPersona Developer Connection Forum, URL to 4
bold typeface, uses of 3 DigitalPersona Fingerprint Recognition Engine 15
C DigitalPersona fingerprint recognition system 16
chapters, overview of 1 illustrated 16
Clear method DigitalPersona products, supported 5
DPFPEnrollment object for Visual Basic 37 document conventions 2
IDPFPEnrollment interface for C++ 74 naming 3
comparison, defined 126 notational 2
compatible fingerprint templates typographical 3
See fingerprint template compatibility matrix documentation, related 4
component objects (Visual Basic) 30–56 DPFPCapture object for Visual Basic 32
See also individual components objects by name DPFPCapture object, creating
conventions, document in typical fingerprint enrollment workflow 21
See document conventions in typical fingerprint verification workflow 25
converting Platinum SDK registration templates DPFPCaptureEvents event handler, implementing
for Microsoft Visual Basic 6.0 applications 125 in typical fingerprint enrollment workflow 21
for Microsoft Visual C++ applications 123 in typical fingerprint verification workflow 25
ConvertToANSI381 method DPFPCaptureFeedbackEnum
DPFPSampleConversion object for Visual Basic 51 enumerated type for C++ 100
IDPFPSampleConversion interface for C++ 92 enumeration for Visual Basic 58
ConvertToPicture method DPFPCapturePriorityEnum
DPFPSampleConversion object for Visual Basic 52 enumerated type for C++ 101
IDPFPSampleConversion interface for C++ 92 enumeration for Visual Basic 59

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 129
Index

DPFPData object for Visual Basic 36 DPFPSampleConversion object for Visual Basic 51
DPFPData object, creating DPFPSerialNumberTypeEnum
in fingerprint data object deserialization workflow 29 enumerated type for C++ 105
in fingerprint data object serialization workflow 28 enumeration for Visual Basic 63
DPFPDataPurposeEnum DPFPTemplate object
enumerated type for C++ 103 creating
enumeration for Visual Basic 61 from serialized data
DPFPEnrollment object for Visual Basic 37 in typical fingerprint verification with UI support
DPFPEnrollment object, creating, in typical fingerprint workflow 27
enrollment workflow 21 in typical fingerprint verification workflow 25
DPFPEnrollmentControl Events event handler, in fingerprint data object deserialization
implementing, in typical fingerprint template workflow 29
deletion with UI support workflow 23 in typical fingerprint enrollment workflow 21
DPFPEnrollmentControl object for Visual Basic 39 serializing
DPFPEnrollmentControl object, creating in typical fingerprint enrollment with UI support
in typical fingerprint enrollment with UI support workflow 23
workflow 22 in typical fingerprint enrollment workflow 21
in typical fingerprint template deletion with UI storing
support workflow 23 in typical fingerprint enrollment with UI support
DPFPEnrollmentControlEvents event handler, workflow 23
implementing, in typical fingerprint enrollment in typical fingerprint enrollment workflow 21
with UI support workflow 22 DPFPTemplate object for Visual Basic 52
DPFPEventHandlerStatus object for Visual Basic 43 DPFPTemplateStatusEnum
DPFPEventHandlerStatusEnum enumerated type for C++ 106
enumerated type for C++ 102 enumeration for Visual Basic 64
enumeration for Visual Basic 60 DPFPVerification object for Visual Basic 52
DPFPFeatureExtraction object for Visual Basic 44 DPFPVerification object, creating
DPFPFeatureExtraction object, creating in typical fingerprint verification with UI support
in typical fingerprint enrollment workflow 21 workflow 27
in typical fingerprint verification workflow 25 in typical fingerprint verification workflow 25
DPFPFeatureSet object DPFPVerificationControl object for Visual Basic 54
creating DPFPVerificationControl object, creating, in typical
in fingerprint data object deserialization fingerprint verification with UI support workflow 27
workflow 29 DPFPVerificationControlEvents event handler,
in typical fingerprint enrollment workflow 21 implementing, in typical fingerprint verification
in typical fingerprint verification workflow 25 with UI support workflow 27
receiving, in typical fingerprint verification DPFPVerificationResult object for Visual Basic 56
workflow 27 DPFPVerificationResult object, receiving
DPFPFeatureSet object for Visual Basic 45 in typical fingerprint verification with UI support
DPFPReaderDescription object for Visual Basic 46 workflow 27
DPFPReaderImpressionTypeEnum in typical fingerprint verification workflow 25
enumerated type for C++ 104
enumeration for Visual Basic 62
E
DPFPReadersCollection object for Visual Basic 49 Engine
DPFPReaderTechnologyEnum See DigitalPersona Fingerprint Recognition Engine
enumerated type for C++ 104 EnrolledFingersMask property
enumeration for Visual Basic 62 DPFPEnrollmentControl object for Visual Basic 39
DPFPSample object for Visual Basic 51 IDPFPEnrollmentControl interface for C++ 76
DPFPSample object, creating, in fingerprint data object
deserialization workflow 29

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 130
Index

setting FeaturesNeeded property


in typical fingerprint enrollment with UI support DPFPEnrollment object for Visual Basic 38
workflow 22 IDPFPEnrollment interface for C++ 74
in typical fingerprint template deletion with UI files and folders
support workflow 23 installed for RTE 13
enrollment installed for SDK 12
See fingerprint enrollment fingerprint 15
enrollment mask, possible values for defined 126
C++ 77 fingerprint capture device 17
Visual Basic 40, 77 defined 126
enumerations See fingerprint reader
C++ 99–106 fingerprint characteristics, defined 126
See also individual enumerated types by name fingerprint data 17
Visual Basic 57–64 defined 126
See also individual enumerations by name fingerprint data object 36, 72
creating, in fingerprint data object serialization
F workflow 28
false accept rate 18 defined 126
defined 126 retrieving serialized data from storage 29
setting to value other than the default 120 serialization/deserialization workflow 28
false negative decision 18 storing serialized data, in fingerprint data object
false negative decision, proportion of 18 serialization workflow 28
See also false accept rate fingerprint data storage subsystem, defined 126
false positive decision 18 fingerprint enrollment 17
false positive decision, proportion of 18 defined 127
See also false accept rate with UI support workflows 22
false positives and false negatives 18 workflow 19
false reject rate 18 illustration of typical 20
defined 126 fingerprint feature extraction 17
FAR defined 127
See false accept rate fingerprint feature set 17
FARAchieved property defined 127
DPFPVerificationResult object for Visual Basic 56 See also DPFPFeatureSet object
explanation of 122 fingerprint features, defined 127
IDPFPVerificationResult interface for C++ 97 fingerprint image 17
FARRequested property defined 127
DPFPVerification object for Visual Basic 53 See also fingerprint sample
IDPFPVerification interface for C++ 93 fingerprint mask, possible values for
important notice to read Appendix A before C++ 80
setting 53, 94 Visual Basic 42
setting fingerprint reader 16
in typical verification with UI support workflow 27 defined 127
in typical verification workflow 25 driver 16
setting to other than the default 121 redistributing documentation for 119
features use and maintenance guide
See fingerprint features redistributing 119
FeatureSet property fingerprint recognition 16
DPFPFeatureExtraction object for Visual Basic 45 fingerprint recognition system 15
IDPFPFeatureExtraction interface for C++ 83 defined 127
See also DigitalPersona fingerprint recognition system

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 131
Index

fingerprint recognition, guide to 4 H


fingerprint sample hardware warnings and regulatory information
capturing redistributing 119
in typical fingerprint enrollment with UI support HardwareRevision property
workflow 22 DPFPReaderDescription object for Visual Basic 46
in typical fingerprint enrollment workflow 21 IDPFPReaderDescription interface for C++ 85
in typical fingerprint verification with UI support
workflow 27 I
in typical fingerprint verification workflow 25 IDPFPCapture interface for C++ 67
defined 127 IDPFPData interface for C++ 72
See also DPFPSample object IDPFPEnrollment interface for C++ 73
See also fingerprint image IDPFPEnrollmentControl interface for C++ 76
fingerprint template 17 IDPFPEventHandlerStatus interface for C++ 81
defined 127 IDPFPFeatureExtraction interface for C++ 82
deleting from storage, in typical fingerprint template IDPFPFeatureSet interface for C++ 84
deletion workflow 23 IDPFPReaderDescription interface for C++ 84
retrieving serialized data from storage IDPFPReadersCollection interface for C++ 88
in typical fingerprint verification with UI support IDPFPSample interface for C++ 91
workflow 27 IDPFPSampleConversion interface for C++ 91
in typical fingerprint verification workflow 25 IDPFPTemplate interface for C++ 93
See also DPFPTemplate object IDPFPVerification interface for C++ 93
serializing, in typical fingerprint enrollment IDPFPVerificationControl interface for C++ 95
workflow 21 IDPFPVerificationResult interface for C++ 97
storing image
in typical fingerprint enrollment with UI support See fingerprint image
workflow 23 important notation, defined 2
in typical fingerprint enrollment workflow 21 important notice
workflow for deleting with UI support 23 read Appendix A before setting FARRequested 53
illustrated 23 read Appendix A before setting FARRequested
workflow for enrolling 19 property 94
illustrated 20 ImpressionType property
workflow for enrolling with UI support 22 DPFPReaderDescription object for Visual Basic 47
illustrated 22 IDPFPReaderDescription interface for C++ 86
fingerprint template compatibility matrix 5 installation 12
fingerprint verification 17 installation files for redistributables
defined 127 contents of RTE\Install folder 117
fingerprint verification with UI support workflow 26 redistributing 117
illustrated 26 installing
fingerprint verification workflow 23 RTE 13
illustrated 24 RTE silently 14
FirmwareRevision property SDK 12
DPFPReaderDescription object for Visual Basic 46 interfaces (C++) 65–98
IDPFPReaderDescription interface for C++ 84 See also individual interfaces by name
folders and files italics typeface, uses of 3
installed for RTE 13 Item property
installed for SDK 12 DPFPReadersCollection object for Visual Basic 50
FRR IDPFPReadersCollection interface for C++ 90
See false reject rate

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 132
Index

L one-to-one comparison 17
Language property defined 128
DPFPReaderDescription object for Visual Basic 46 OnFingerGone event
IDPFPReaderDescription interface for C++ 85 _IDPFPCaptureEvents interface for C++ 70
DPFPCapture object for Visual Basic 34
M OnFingerTouch event
match 17 _IDPFPCaptureEvents interface for C++ 70
defined 127 DPFPCapture for Visual Basic 34
MaxEnrollFingerCount property online resources 4
DPFPEnrollmentControl object for Visual Basic 40 OnReaderConnect event
IDPFPEnrollmentControl interface for C++ 77 _IDPFPCaptureEvents interface for C++ 71
setting DPFPCapture object for Visual Basic 35
in typical fingerprint enrollment with UI support OnReaderDisconnect event
workflow 22 _IDPFPCaptureEvents interface for C++ 71
in typical fingerprint template deletion with UI DPFPCapture object for Visual Basic 35
support workflow 23 OnSampleQuality event
merge modules _IDPFPCaptureEvents interface for C++ 71
contents of 117 DPFPCapture object for Visual Basic 35
redistributing 117 overview
N of chapters 1
naming conventions 3 of concepts and terminology 15
non-match 17 P
defined 128 Platinum SDK registration template conversion 123
notational conventions 2 Priority property
note notation, defined 2 DPFPCapture object for Visual Basic 32
O IDPFPCapture interface for C++ 67
OnComplete event setting
_IDPFPCaptureEvents interface for C++ 70 in typical fingerprint enrollment workflow 21
_IDPFPVerificationControlEvents interface for C++ 97 in typical fingerprint verification workflow 25
DPFPCapture object for Visual Basic 34 product compatibility
DPFPVerificationControl object for Visual Basic 55 See fingerprint template compatibility matrix
of DPFPCaptureEvents, receiving ProductName property
in typical fingerprint enrollment workflow 21 DPFPReaderDescription object for Visual Basic 47
in typical fingerprint verification workflow 25 IDPFPReaderDescription interface for C++ 86
of DPFPVerificationControlEvents, receiving, in typical Q
fingerprint verification with UI support quick start, introduction to SDK 6
workflow 27
OnDelete event R
_IDPFPEnrollmentControlEvents interface for C++ 79 Reader method
DPFPEnrollmentControl object for Visual Basic 42 DPFPReadersCollection object for Visual Basic 49
of DPFPEnrollmentControlEvents, receiving, in typical IDPFPReadersCollection interface for C++ 89
fingerprint template with UI support ReaderSerialNumber property
workflow 23 DPFPCapture object for Visual Basic 33
OnEnroll event DPFPEnrollmentControl object for Visual Basic 41
_IDPFPEnrollmentControlEvents interface for C++ 80 DPFPVerificationControl object for Visual Basic 54
DPFPEnrollmentControl object for Visual Basic 43 IDPFPCapture interface for C++ 68
of DPFPEnrollmentControlEvents, receiving, in typical IDPFPEnrollmentControl interface for C++ 78
fingerprint template with UI support IDPFPVerificationControl interface for C++ 96
workflow 22

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 133
Index

of DPFPCapture, setting SerialNumber property


in typical fingerprint enrollment workflow 21 DPFPReaderDescription object for Visual Basic 47
in typical fingerprint verification workflow 25 IDPFPReaderDescription interface for C++ 86
of DPFPEnrollmentControl SerialNumberType property
setting DPFPReaderDescription object for Visual Basic 48
in typical fingerprint enrollment with UI support IDPFPReaderDescription interface for C++ 87
workflow 22 silently installing RTE 14
in typical fingerprint template deletion with UI StartCapture method
support workflow 23 calling
of DPFPVerificationControl, setting, in typical in typical fingerprint enrollment workflow 21
fingerprint verification with UI support in typical fingerprint verification workflow 25
workflow 27 DPFPCapture object for Visual Basic 32
redistributable files IDPFPCapture interface for C++ 68
contents of 117 Status property
redistributing 117 DPFPEventHandlerStatus object for Visual Basic 43
redistributables, redistributing 117 IDPFPEventHandlerStatus interface for C++ 81
redistribution of files 117 StopCapture method
regulatory information, requirement to advise end users calling
of 119 in typical fingerprint enrollment workflow 21
repository 17 in typical fingerprint verification workflow 25
requirements, system DPFPCapture object for Visual Basic 32
See system requirements IDPFPCapture interface for C++ 69
resources, additional supported DigitalPersona products 5
See additional resources system requirements 4
resources, online
See online resources
T
RTE target audience for this guide 1
installing 13 Technology property
installing/uninstalling silently 14 DPFPReaderDescription object for Visual Basic 48
redistributing 117 IDPFPReaderDescription interface for C++ 87
runtime environment template compatibility matrix
See RTE See fingerprint template compatibility matrix
Template property
S DPFPEnrollment object for Visual Basic 38
sample code for converting Platinum SDK registration IDPFPEnrollment interface for C++ 74
templates TemplateStatus property
for Microsoft Visual Basic 6.0 applications 125 DPFPEnrollment object for Visual Basic 38
for Microsoft Visual C++ applications 123 IDPFPEnrollment interface for C++ 75
SDK typefaces, uses of
files and folders installed 12 bold 3
installing 12 Courier bold 3
quick start 6 italics 3
security level 18 typographical conventions 3
Serialize method
calling in fingerprint data object serialization
U
workflow 28 uninstalling RTE silently 14
DPFPData object for Visual Basic 36 updates for DigitalPersona software products, URL for
IDPFPData interface for C++ 72 downloading 4
serializing fingerprint data object workflow 28 URL
illustrated 28 DigitalPersona Developer Connection Forum 4
Updates for DigitalPersona Software Products 4

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 134
Index

use and maintenance guide for fingerprint reader


redistributing 119
V
Vendor property
DPFPReaderDescription object for Visual Basic 48
IDPFPReaderDescription interface for C++ 88
verification
See fingerprint verification
Verified property
DPFPVerificationResult object for Visual Basic 56
IDPFPVerificationResult interface for C++ 98
Verify method
calling
in typical fingerprint verification with UI support
workflow 27
in typical fingerprint verification workflow 25
DPFPVerification object for Visual Basic 53
IDPFPVerification interface for C++ 94
W
Web site
DigitalPersona Developer Connection Forum 4
Updates for DigitalPersona Software Products 4
workflows 19–29

DigitalPersona One Touch for Windows SDK: COM/ActiveX Edition | Developer Guide 135

You might also like