SHAutoCompleteを使うと、テキスト入力部を持つコントロールにURLのオートコンプリート機能を付けることができる。 SHAutoCompleteにオートコンプリート機能を持たせたいコントロールのハンドルと動作を決めるフラグを渡すだけでオートコンプリート機能が有効になる。 ただし、ComboBoxの場合はこの方法ではうまく動作しないので、ここではComboBoxコントロールにURLのオートコンプリート機能を付ける方法を紹介する。
このコードでは、OnHandleCreated()メソッドをオーバーライドし、ハンドルが作成された時点でSHAutoCompleteを呼び出している。 ここで、オートコンプリート機能を適用するためのウィンドウハンドルは直接ComboBox.Handleを使うのではなく、ComboBoxの中にある「EDIT」というクラス名を持つウィンドウハンドルを用いる。
なお、以前に直接入力したアドレスを取得するには、レジストリのHKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLsに格納されている値を参照する。 ここにある「URL?」(?は10進の数字)という名前のキーを順に読んでいくことで以前に直接入力したアドレスを取得できる。