FlashPeak Logo

IntelliComplete Server (ICS)

Notice: IntelliComplete Server is meant for software authors to integrate IntelliComplete technology into their applications. It's NOT for end users. End users please go to the page of IntelliComplete Pro.

IntelliComplete Server (ICS) provides smart autocompletion to any editors running on MS windows through a flexible and simple programming interface. It's esp. ideal to be integrated with programming editors since there are many long and frequently-used identifiers in program source code.

ICS is a FREE for integration with ANY standalone word processors or editors. But I'd appreciate it if you give me a polite notice if you decide to integrate your application with ICS. I'd be glad to help you with any technical problems.

If you are interested in our system-wide autocompleter-IntelliComplete Professional, please click here.

Integration Mechanism

ICS doesn't run as a plug-in dll. Not that I don't want to run ICS in that way. The reason is that ICS is a multiple-threading application for high-efficiency retrieving. If it runs as a plug-in dll, the host program will have to deal with the multiple-threading technicalities and the interface will be much more complex. Instead, ICS runs as an invisible server application. What the host program need do is to initialize, communicate with and terminate the server application. The interface is similar to Microsoft COM technology and our interface is much simpler to use.

Download ICS

  • ICS binary setup file
    Download and install the above file to setup IntelliComplete Server on your system.
  • Interfacing source code
    This package includes interfacing source code and sample applications in VC6, VB6 and Delphi 6.

Running the Sample Application

Please make sure you have installed ICS on your system before testing the interfacing source code and sample applications. You can choose from the available programming language versions at your own preference.

Interfacing Functions

Please notice that the following text is based on the Visual C++ version. The symbol name will be the same in other version. The syntax and notations will be different to a small extent, though.

  • CString GetICSPath()
    Automatically detect the path of ICS, "c:\program files\ics\icserver.exe" by default. If ICS is not detected, it will return a blank string. Even if it returns a valid path string, you may still want to test whether the file actually exists for safety.
  • BOOL AddProcess()
    Add the current process into the client process list of ICS. If ICS is not already loaded, it'll be loaded automatically.
  • BOOL RemoveProcess()
    Remove the current process from the client process list of ICS. When the client process list is empty, ICS will automatically terminate.
  • HWND LoadICS()
    Load ICS if it's not already loaded. It doesn't matter if you call it after ICS is already loaded. ICS ensures a single instance automatically. It returns ICS main window handle if successful. Otherwise, it returns NULL. You are advised to call AddProcess() instead of LoadICS() to initialize ICS at the startup of your application to be friendly with other ICS clients.
  • void QuitICS()
    Terminate ICS. You are advised to call RemoveProcess() instead of QuiteICS() to be friendly with other ICS clients.
  • HWND GetICSWnd()
    Return the handle of ICS main window (an invisible one). If ICS is not installed or not loaded, it will return NULL. You may want to test whether it's a valid handle for safety. 
  • ShowMenu (int x, int y)
    Display ICS configuration menu at screen coordinate (x, y).

Recommended Calling Sequence

  1. Call AddProcess() at startup to establish a connection with ICS. If the connection is successful, ICS will start supplying smart autocompletion to your application at the same time of typing.
  2. Allocate a drop-down button for ICS on the toolbar. When the user clicks the drop-down arrow, call ShowMenu(int x,int y) to display ICS configuration menu.
  3. Call RemoveProcess() to terminate the connection with ICS when your application is exiting.


Run the host application and check that ICS is loaded automatically. You should see icserver.exe in the process list of task manager. Try typing some letters in the host application and you will see matching words prompted. You can press the corresponding digits (1-9) to autocomplete the n-th word. Use ICS configuration menu to play with the different options of ICS.

Feel free to read through the source code to see what it's doing exactly. Everything is simple and easy. If you have more questions, please contact us .

Applications seamlessly integrated with ICS

The Teachers' Pro
ReadPlease (In Progress)
AMF TrayNote Plus
Literary Machine


Copyright© 2014 FlashPeak Inc. All rights reserved.