Search Library Component

The Witzend Search Library component SDK is a toolkit of fast file searching functions, offering grep-like “find in files” capabilities for Windows and the Web. Drop the Search Library component into your project and instantly your program becomes a file search powerhouse, able to quickly find text strings in disk files and documents such as PDF, Microsoft Word, WordPerfect, and HTML. Available as both a fast dynamic link library and small ActiveX control.


The Witzend Search Library is “canned software” that you can add to your programming project in just minutes. Instantly your applications and Web pages acquire sophisticated search capabilities:

  • File searching
  • Text retrieval
  • Data mining
  • Search and replace
  • Document search: ZIP, PDF, Word, WordPerfect, HTML, etc.   list
  • Scan intranet, desktop, or website
  • And much more...

Built for high speed and small size, the Search Library component provides a simple and elegant API interface with which to work. A wealth of example code provided with the Search Library SDK demonstrates how to use the component whether you work in C++, C#, Visual Basic, VBA, HTML, Java, VBScript, or any ActiveX-capable language.

"Witzend's example code is extremely well-written....
well-commented and thoughtfully crafted...."

— Visual Studio Magazine, December 2001


  • Search files — Specify search parameters, then call a single function. The Search Library does all the work. Boolean and proximity operators AND, OR, NOT, and NEAR let your application search for up to 256 strings at once. Date and size filters can narrow searches to, say, only those files dated within the last month between 10K and 50K in size; other filters limit searches to specific file types.

    The Search Library can create its own thread on which to conduct searches, giving your program freedom to conduct other tasks while the search is underway. It can even automatically replace text in files. A host of features and search options ensures your program retains tight control over the entire search process.

  • Search documents and ZIP archives — The Search Library quickly scans document files in popular formats such as Microsoft Word, PowerPoint, WordPerfect, and Adobe Acrobat PDF. It can also reach into ZIP files and search archived contents. You can experience these features yourself by downloading the WitzSrch demonstration program.

  • Search buffers — Search backward or forward through buffers of any size, searching for ANSI, double-byte, or Unicode strings. Set search options such as case-sensitivity (find Abc but not abc) and whole-word searching (find any but not anywhere). The Search Library can even find misspelled words through its fuzzy-search feature.

  • DLL or ActiveX control — For Windows applications, it doesn’t get any faster than the Search Library’s small and quick dynamic link library. Or if you prefer, choose the Library’s ActiveX control, which accommodates a wide variety of programming scenarios:

    • .NET programming
    • Managed code
    • Scripted Web and ASP pages
    • Distributed client-server applications across a network

  • Simple programming interface — The Search Library handles all search operations through only eight exported functions, and generally an application requires the services of only three functions. For example, to search disk files a program calls only InitFileSearch, SearchFile, and CloseFileSearch.

  • No indexing — Some search products must first index the files they are about to search, but not the Witzend Search Library. The Search Library does not index files before searching them -- it doesn’t need to because it’s so fast. The Library shines when searching files that are frequently updated, because no time is wasted in continually building a new search index.

  • Extensive documentation and example code — The Search Library SDK includes complete on-line documentation and lots of example source code. Sample projects show clearly how to use the Search Library whether you work with C++, C#, Visual Basic, MS Access, VBScript, or Java.

    Examples include a simplified version of the WitzSrch demonstration program, a powerful grep-like utility. Written in C++, the WitzSrch program (described below) shows how an application can query for search parameters through a tabbed dialog. Other interesting projects demonstrate how to add the Search Library to a .NET project or to a Web page using VBScript or JavaScript. All example projects are well-documented and complete.

"The documentation is voluminous, including plenty of tutorial and documentation address C++, VB, and Web venues...."

— Visual Studio Magazine

Try the Search Library Yourself

Download the demonstration program (pictured above) to take the Search Library for a test drive. Written to showcase the Search Library’s speed and flexibility, the WitzSrch program is a very useful (and very free) utility that quickly locates files using the Search Library’s Boolean and proximity operators. If you like the WitzSrch program, please feel free to add it permanently to your utility collection.

The download file Setup1.exe (350K) installs the WitzSrch program and the Search Library modules to the folder of your choice. Once installed, WitzSrch can be run either directly or as a shell extension. Simply right click a folder in any File Explorer window and select Witzend Search from the pop-up menu. The Readme file contains more information about WitzSrch and the Witzend Search Library.

WitzSrch includes an uninstaller. If you wish to remove the program after trying it out, simply run Add/Remove Programs to delete the files from your computer.

Technical Specifications

The Witzend Search Library runs under all versions of the Windows operating systems, including Windows 95 and above. All core functions are written in highly-optimized ssembly language, assuring maximum speed and minimum size. The Search Library is completely thread-safe and can be accessed simultaneously by multiple threads.

Built from the same core set of search routines, the Library’s different executable versions are designed to fulfill the requirements of different application types. Either of the two versions will give your programs fast file search capabilities, but which version best meets your needs depends on your project:

Search Library Form File Size Additional Files Required Threading Number of Functions Scripting Access Runtime License
DLL 23K none multiple 8 no no
ActiveX control 102K C runtime apartment 68 yes yes

Dynamic Link Library. — Less than 23K in size, the Witzend Search Library in its DLL form requires no other auxiliary files. It does not rely on a class library such as MFC and does not link to the C runtime library. The DLL exports only eight functions: three for searching and/or replacing buffer data, three for handling search and replace operations in files, and two service functions. The DLL can be used by any application written in a Windows language such as C, C++, C#, Delphi, Visual Basic, etc.

ActiveX Control. — The Search Library’s ActiveX control edition conforms to standard apartment threading. It does not rely on an external class library such as MFC, but assumes the presence of the C runtime library. Designed for .NET applications, Web-based scripting access, ASP and PHP pages, and server-side programs, the control exposes over 60 properties that govern search parameters and behavior.

"If you're looking for a search toolkit that's fast, powerful, and reasonably priced, I think you'll like this one."

— Visual Studio Magazine


The Search Library is available for a one-time license fee of $199 US, which includes:

  • 30-day warranty
  • Free updates to next version
  • Free technical support throughout the warranty period
  • Both the dynamic link library and ActiveX control executables
  • Complete on-line documentation and extensive example projects, including source code for a simplified version of the WitzSrch demonstration program described above

We notice you don't have JavaScript enabled, but that's okay.
You can still purchase the Witzend Search Library SDK here:     Place Order

Witzend Search Library