Free Software by Sam Clippinger -- LAFcommon

Author: Sam Clippinger <samc (at) lookandfeel (dot) com>
Copyright: ©1999-2003 lookandfeel new media
License: GNU LGPL
Current version: source binaries
Archived versions: Source packages
Binary packages
Documentation: Change Log
COMCollection (COM interface)
SMTPMail (COM interface)
Javascript form validation library
Microsoft Visual Studio 6.0 Runtime
Download from this site
MSDN article
Microsoft Data Access Components
Download from Microsoft
Build target: In-process Win32 ATL COM Server (DLL)

Source language: Microsoft Visual C++ (ATL COM)
Build environment: Microsoft Visual Studio 6.0 SP5 on Microsoft Windows 2000 Professional SP2
Target platform: Microsoft NT Server 4.0 SP6a or Microsoft Windows 2000
Description: LAFcommon is a container for many useful pieces of code that are commonly used in lookandfeel projects. It is the code equivalent of everyone's kitchen "junk drawer" -- everything is essential but there really isn't any better place to put it. Some of its functionality, especially the SMTP and general-purpose collection objects, may be broken out into an out-of-process COM server sometime in the future.

LAFcommon is usable in three ways: It is an in-process COM server, it contains a number of C++ files that can be directly included in new projects and it contains several ASP and Javascript files that can be used on the web.

Some of the functionality it provides through COM includes:

  • SQL, HTML and Javascript string canonicalization.
  • Serialized authentication.
  • Array sorting functionality.
  • GUID and nonsequential ID generation.
  • MIME 1.0 mail generation and SMTP delivery (does not use CDONTS or rely on Microsoft SMTP/Exchange servers).
  • A general-purpose collection-based object store (much better than ASP's "Session").

Some of the functionality it provides through reusable C++ files includes:

  • General-purpose abstract data types such as a self-growing unbounded array, an AVL tree, a cache, a heap, an object pool, a queue and a stack.
  • Functions for converting COM datatypes to their ANSI C equivalents (e.g. BSTRs to char*s and CStrings, CStrings and char*s to BSTRs, time_ts to DATEs and DATEs to time_ts) and functions for retrieving data from VARIANTs (arrays, booleans, strings, dates, VT_EMPTYs, VT_ERRORs, numbers, number types and objects).
  • GUID and nonsequential ID generation and conversion functions.
  • String sorting functionality.
  • String search and replace functionality.
  • Directory tree searching functionality.
  • A better mutex implementation than CMutex, CSemaphore or critical sections -- fast, efficient and
  • A better semaphore implementation than CSemaphore -- fast and efficient. guarantees first-come-first-served locking.
  • A C++ interface to the MIME 1.0 mail generation and SMTP delivery system exposed through COM.

Some of the functionality it provides through ASP and Javascript files includes:

  • A complete HTML form validation library for nearly every type of data type that can be imagined.
  • ASP files that provide an interface to the MIME 1.0 mail generation and SMTP delivery functionality for both HTML form POSTs and Flash submissions. Perfect for website designers who don't know ASP and don't have time to learn.

This project is mirrored from