Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

IAutoComplete2 (Interfaces)
 
.
Summary
A little bit more advaced autocomplete

C# Definition:

[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("EAC04BC0-3791-11D2-BB95-0060977B464C")]
public interface IAutoComplete2 {
    [PreserveSig] int Init(
        // Handle to the window for the system edit control that is to
        // have autocompletion enabled.
        IntPtr hwndEdit,

        // Pointer to the IUnknown interface of the string list object that
        // is responsible for generating candidates for the completed
        // string. The object must expose an IEnumString interface.
        [MarshalAs(UnmanagedType.IUnknown)] object punkACL,

        // Pointer to an optional null-terminated Unicode string that gives
        // the registry path, including the value name, where the format
        // string is stored as a REG_SZ value. The autocomplete object
        // first looks for the path under HKEY_CURRENT_USER . If it fails,
        // it then tries HKEY_LOCAL_MACHINE . For a discussion of the
        // format string, see the definition of pwszQuickComplete.
        [MarshalAs(UnmanagedType.LPWStr)] string pwszRegKeyPath,

        // Pointer to an optional string that specifies the format to be
        // used if the user enters some text and presses CTRL+ENTER. Set
        // this parameter to NULL to disable quick completion. Otherwise,
        // the autocomplete object treats pwszQuickComplete as a sprintf
        // format string, and the text in the edit box as its associated
        // argument, to produce a new string. For example, set
        // pwszQuickComplete to "http://www. %s.com/". When a user enters
        // "MyURL" into the edit box and presses CTRL+ENTER, the text in
        // the edit box is updated to "http://www.MyURL.com/".
        [MarshalAs(UnmanagedType.LPWStr)] string pwszQuickComplete
    );

    // Enables or disables autocompletion.
    [PreserveSig] int Enable(bool value);

    // Sets the current autocomplete options.
    [PreserveSig] int SetOptions(AUTOCOMPLETEOPTIONS dwFlag);

    // Retrieves the current autocomplete options.
    [PreserveSig] int GetOptions(out AUTOCOMPLETEOPTIONS pdwFlag);
}

User-Defined Types:

[Flags]
public enum AUTOCOMPLETEOPTIONS {
    // No autocomplete.
    ACO_NONE = 0,

    // Enable the autosuggest drop-down list.
    ACO_AUTOSUGGEST = 0x1,

    // Enable autoappend.
    ACO_AUTOAPPEND = 0x2,

    // Add a search item to the list of completed strings. Selecting this item launches a search engine.
    ACO_SEARCH = 0x4,

    // Don't match common prefixes, such as "www.", "http://", and so on.
    ACO_FILTERPREFIXES    = 0x8,        

    // Use the TAB key to select an item from the drop-down list.
    ACO_USETAB = 0x10,

    // Use the UP ARROW and DOWN ARROW keys to display the autosuggest drop-down list.
    ACO_UPDOWNKEYDROPSLIST = 0x20,

    // If ACO_RTLREADING is set, the text reads in the opposite direction from the text in the parent window.
    ACO_RTLREADING = 0x40
}

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

static readonly Guid CLSID_AutoComplete = new Guid("{00BB2763-6A77-11D0-A535-00C04FD7D062}");

private IAutoComplete2 GetAutoComplete() {
    Type CAutoComplete = Type.GetTypeFromCLSID(CLSID_AutoComplete);

    return (IAutoComplete2)Activator.CreateInstance(CAutoComplete);
}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation

Please edit this page!

Do you have...

  • helpful tips?
  • corrections to the existing content?
  • alternate definitions?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing any supporting types needed.

 
Access PInvoke.net directly from VS:
Terms of Use
Find References
Show Printable Version
Revisions