Author: gadamopoulos
Date: Thu Feb 26 18:44:34 2015
New Revision: 66473

URL: http://svn.reactos.org/svn/reactos?rev=66473&view=rev
Log:
[BROWSEUI]
- Moce CAutoComplete from shell32 to browseui where it belongs

Added:
    trunk/reactos/dll/win32/browseui/CAutoComplete.cpp
      - copied, changed from r66418, 
trunk/reactos/dll/win32/shell32/CAutoComplete.cpp
    trunk/reactos/dll/win32/browseui/CAutoComplete.h
      - copied unchanged from r66418, 
trunk/reactos/dll/win32/shell32/CAutoComplete.h
    trunk/reactos/dll/win32/browseui/res/autocomplete.rgs
      - copied unchanged from r66418, 
trunk/reactos/dll/win32/shell32/res/rgs/autocomplete.rgs
Removed:
    trunk/reactos/dll/win32/shell32/CAutoComplete.cpp
    trunk/reactos/dll/win32/shell32/CAutoComplete.h
    trunk/reactos/dll/win32/shell32/res/rgs/autocomplete.rgs
Modified:
    trunk/reactos/dll/win32/browseui/CMakeLists.txt
    trunk/reactos/dll/win32/browseui/browseui.cpp
    trunk/reactos/dll/win32/browseui/browseui.rc
    trunk/reactos/dll/win32/browseui/precomp.h
    trunk/reactos/dll/win32/browseui/resource.h
    trunk/reactos/dll/win32/shell32/CMakeLists.txt
    trunk/reactos/dll/win32/shell32/precomp.h
    trunk/reactos/dll/win32/shell32/rgs_res.rc
    trunk/reactos/dll/win32/shell32/shell32.cpp
    trunk/reactos/dll/win32/shell32/shresdef.h

Copied: trunk/reactos/dll/win32/browseui/CAutoComplete.cpp (from r66418, 
trunk/reactos/dll/win32/shell32/CAutoComplete.cpp)
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/CAutoComplete.cpp?p2=trunk/reactos/dll/win32/browseui/CAutoComplete.cpp&p1=trunk/reactos/dll/win32/shell32/CAutoComplete.cpp&r1=66418&r2=66473&rev=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/CAutoComplete.cpp   [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/CAutoComplete.cpp  [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -37,8 +37,6 @@
 
 #include "precomp.h"
 
-WINE_DEFAULT_DEBUG_CHANNEL(shell);
-
 static const WCHAR autocomplete_propertyW[] = {'W','i','n','e',' 
','A','u','t','o',
                                                
'c','o','m','p','l','e','t','e',' ',
                                                'c','o','n','t','r','o','l',0};
@@ -169,7 +167,7 @@
         if (key)
         {
             wcscpy(key, pwzsRegKeyPath);
-            value = const_cast<WCHAR *>(strrchrW(key, '\\'));
+            value = const_cast<WCHAR *>(wcsrchr(key, '\\'));
 
             if (value)
             {
@@ -435,7 +433,7 @@
                 if (hr != S_OK)
                     break;
 
-                if ((LPWSTR)strstrW(strs, hwndText) == strs)
+                if ((LPWSTR)wcsstr(strs, hwndText) == strs)
                 {
 
                     if (pThis->options & ACO_AUTOAPPEND)

Modified: trunk/reactos/dll/win32/browseui/CMakeLists.txt
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/CMakeLists.txt?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/browseui/CMakeLists.txt     [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/CMakeLists.txt     [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -17,6 +17,7 @@
     brandband.cpp
     browseui.cpp
     browseuiord.cpp
+    CAutoComplete.cpp
     commonbrowser.cpp
     desktopipc.cpp
     explorerband.cpp

Modified: trunk/reactos/dll/win32/browseui/browseui.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/browseui.cpp?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/browseui/browseui.cpp       [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/browseui.cpp       [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -27,6 +27,7 @@
 
 
 BEGIN_OBJECT_MAP(ObjectMap)
+OBJECT_ENTRY(CLSID_AutoComplete, CAutoComplete)
 OBJECT_ENTRY(CLSID_ACLMulti, CACLMulti)
 OBJECT_ENTRY(CLSID_SH_AddressBand, CAddressBand)
 OBJECT_ENTRY(CLSID_AddressEditBox, CAddressEditBox)

Modified: trunk/reactos/dll/win32/browseui/browseui.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/browseui.rc?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/browseui/browseui.rc        [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/browseui.rc        [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -43,6 +43,7 @@
 IDR_REGTREEOPTIONS REGISTRY "res/regtreeoptions.rgs"
 IDR_EXPLORERBAND REGISTRY "res/explorerband.rgs"
 IDR_PROGRESSDIALOG REGISTRY "res/progressdialog.rgs"
+IDR_AUTOCOMPLETE REGISTRY "res/autocomplete.rgs"
 
 /*
  * Everything specific to any language goes

Modified: trunk/reactos/dll/win32/browseui/precomp.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/precomp.h?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/browseui/precomp.h  [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/precomp.h  [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -20,6 +20,7 @@
 #include <atlbase.h>
 #include <atlcom.h>
 #include <atlwin.h>
+#include <undocuser.h>
 #include <perhist.h>
 #include <exdispid.h>
 #include <strsafe.h>
@@ -35,6 +36,7 @@
 #include "aclmulti.h"
 #include "addressband.h"
 #include "addresseditbox.h"
+#include "CAutoComplete.h"
 #include "bandproxy.h"
 #include "bandsite.h"
 #include "bandsitemenu.h"

Modified: trunk/reactos/dll/win32/browseui/resource.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/resource.h?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/browseui/resource.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/resource.h [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -84,6 +84,7 @@
 #define IDR_REGTREEOPTIONS       138
 #define IDR_EXPLORERBAND         139
 #define IDR_PROGRESSDIALOG       140
+#define IDR_AUTOCOMPLETE         141
 
 #define IDS_SMALLICONS           12301
 #define IDS_LARGEICONS           12302

Removed: trunk/reactos/dll/win32/shell32/CAutoComplete.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CAutoComplete.cpp?rev=66472
==============================================================================
--- trunk/reactos/dll/win32/shell32/CAutoComplete.cpp   [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/CAutoComplete.cpp   (removed)
@@ -1,533 +0,0 @@
-/*
- *    AutoComplete interfaces implementation.
- *
- *    Copyright 2004    Maxime Bellengé <maxime.belle...@laposte.net>
- *    Copyright 2009  Andrew Hill
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-/*
-  Implemented:
-  - ACO_AUTOAPPEND style
-  - ACO_AUTOSUGGEST style
-  - ACO_UPDOWNKEYDROPSLIST style
-
-  - Handle pwzsRegKeyPath and pwszQuickComplete in Init
-
-  TODO:
-  - implement ACO_SEARCH style
-  - implement ACO_FILTERPREFIXES style
-  - implement ACO_USETAB style
-  - implement ACO_RTLREADING style
-
- */
-
-#include "precomp.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(shell);
-
-static const WCHAR autocomplete_propertyW[] = {'W','i','n','e',' 
','A','u','t','o',
-                                               
'c','o','m','p','l','e','t','e',' ',
-                                               'c','o','n','t','r','o','l',0};
-
-/**************************************************************************
- *  IAutoComplete_Constructor
- */
-CAutoComplete::CAutoComplete()
-{
-    enabled = TRUE;
-    initialized = FALSE;
-    options = ACO_AUTOAPPEND;
-    wpOrigEditProc = NULL;
-    hwndListBox = NULL;
-    txtbackup = NULL;
-    quickComplete = NULL;
-    hwndEdit = NULL;
-    wpOrigLBoxProc = NULL;
-}
-
-/**************************************************************************
- *  IAutoComplete_Destructor
- */
-CAutoComplete::~CAutoComplete()
-{
-    TRACE(" destroying IAutoComplete(%p)\n", this);
-    HeapFree(GetProcessHeap(), 0, quickComplete);
-    HeapFree(GetProcessHeap(), 0, txtbackup);
-    RemovePropW(hwndEdit, autocomplete_propertyW);
-    SetWindowLongPtrW(hwndEdit, GWLP_WNDPROC, (LONG_PTR)wpOrigEditProc);
-    if (hwndListBox)
-        DestroyWindow(hwndListBox);
-}
-
-/******************************************************************************
- * IAutoComplete_fnEnable
- */
-HRESULT WINAPI CAutoComplete::Enable(BOOL fEnable)
-{
-    HRESULT hr = S_OK;
-
-    TRACE("(%p)->(%s)\n", this, (fEnable) ? "true" : "false");
-
-    enabled = fEnable;
-
-    return hr;
-}
-
-/******************************************************************************
- * IAutoComplete_fnInit
- */
-HRESULT WINAPI CAutoComplete::Init(HWND hwndEdit, IUnknown *punkACL, LPCOLESTR 
pwzsRegKeyPath, LPCOLESTR pwszQuickComplete)
-{
-    static const WCHAR lbName[] = {'L','i','s','t','B','o','x',0};
-
-    TRACE("(%p)->(0x%08lx, %p, %s, %s)\n",
-      this, hwndEdit, punkACL, debugstr_w(pwzsRegKeyPath), 
debugstr_w(pwszQuickComplete));
-
-    if (options & ACO_AUTOSUGGEST)
-        TRACE(" ACO_AUTOSUGGEST\n");
-    if (options & ACO_AUTOAPPEND)
-        TRACE(" ACO_AUTOAPPEND\n");
-    if (options & ACO_SEARCH)
-        FIXME(" ACO_SEARCH not supported\n");
-    if (options & ACO_FILTERPREFIXES)
-        FIXME(" ACO_FILTERPREFIXES not supported\n");
-    if (options & ACO_USETAB)
-        FIXME(" ACO_USETAB not supported\n");
-    if (options & ACO_UPDOWNKEYDROPSLIST)
-        TRACE(" ACO_UPDOWNKEYDROPSLIST\n");
-    if (options & ACO_RTLREADING)
-        FIXME(" ACO_RTLREADING not supported\n");
-
-    if (!hwndEdit || !punkACL)
-        return E_INVALIDARG;
-
-    if (this->initialized)
-    {
-        WARN("Autocompletion object is already initialized\n");
-        /* This->hwndEdit is set to NULL when the edit window is destroyed. */
-        return this->hwndEdit ? E_FAIL : E_UNEXPECTED;
-    }
-
-    if (!SUCCEEDED(punkACL->QueryInterface(IID_PPV_ARG(IEnumString,&enumstr))))
-    {
-        TRACE("No IEnumString interface\n");
-        return  E_NOINTERFACE;
-    }
-
-    this->hwndEdit = hwndEdit;
-    this->initialized = TRUE;
-    wpOrigEditProc = (WNDPROC)SetWindowLongPtrW(hwndEdit, GWLP_WNDPROC, 
(LONG_PTR) ACEditSubclassProc);
-//    SetWindowLongPtrW(hwndEdit, GWLP_USERDATA, (LONG_PTR)this);
-    SetPropW( hwndEdit, autocomplete_propertyW, (HANDLE)this );
-
-    if (options & ACO_AUTOSUGGEST)
-    {
-        HWND hwndParent;
-
-        hwndParent = GetParent(hwndEdit);
-
-        /* FIXME : The listbox should be resizable with the mouse. 
WS_THICKFRAME looks ugly */
-        hwndListBox = CreateWindowExW(0, lbName, NULL,
-                            WS_BORDER | WS_CHILD | WS_VSCROLL | LBS_HASSTRINGS 
| LBS_NOTIFY | LBS_NOINTEGRALHEIGHT,
-                            CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
CW_USEDEFAULT,
-                            hwndParent, NULL,
-                            (HINSTANCE)GetWindowLongPtrW(hwndParent, 
GWLP_HINSTANCE), NULL);
-
-        if (hwndListBox)
-        {
-            wpOrigLBoxProc = (WNDPROC)SetWindowLongPtrW(hwndListBox, 
GWLP_WNDPROC, (LONG_PTR)ACLBoxSubclassProc);
-            SetWindowLongPtrW(hwndListBox, GWLP_USERDATA, (LONG_PTR)this);
-        }
-    }
-
-    if (pwzsRegKeyPath)
-    {
-        WCHAR *key;
-        WCHAR result[MAX_PATH];
-        WCHAR *value;
-        HKEY hKey = 0;
-        LONG res;
-        LONG len;
-
-        /* pwszRegKeyPath contains the key as well as the value, so we split */
-        key = (WCHAR *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 
(wcslen(pwzsRegKeyPath) + 1) * sizeof(WCHAR));
-
-        if (key)
-        {
-            wcscpy(key, pwzsRegKeyPath);
-            value = const_cast<WCHAR *>(strrchrW(key, '\\'));
-
-            if (value)
-            {
-                *value = 0;
-                value++;
-                /* Now value contains the value and buffer the key */
-                res = RegOpenKeyExW(HKEY_CURRENT_USER, key, 0, KEY_READ, 
&hKey);
-        
-                if (res != ERROR_SUCCESS)
-                {
-                    /* if the key is not found, MSDN states we must seek in 
HKEY_LOCAL_MACHINE */
-                    res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, 
&hKey);
-                }
-        
-                if (res == ERROR_SUCCESS)
-                {
-                    res = RegQueryValueW(hKey, value, result, &len);
-                    if (res == ERROR_SUCCESS)
-                    {
-                        quickComplete = (WCHAR *)HeapAlloc(GetProcessHeap(), 
HEAP_ZERO_MEMORY, len * sizeof(WCHAR));
-                        wcscpy(quickComplete, result);
-                    }
-                    RegCloseKey(hKey);
-                }
-            }
-
-            HeapFree(GetProcessHeap(), 0, key);
-        }
-        else
-        {
-            TRACE("HeapAlloc Failed when trying to alloca %d bytes\n", 
(wcslen(pwzsRegKeyPath) + 1) * sizeof(WCHAR));
-            return S_FALSE;
-        }
-    }
-
-    if ((pwszQuickComplete) && (!quickComplete))
-    {
-        quickComplete = (WCHAR *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 
(wcslen(pwszQuickComplete) + 1) * sizeof(WCHAR));
-
-        if (quickComplete)
-        {
-            wcscpy(quickComplete, pwszQuickComplete);
-        }
-        else
-        {
-            TRACE("HeapAlloc Failed when trying to alloca %d bytes\n", 
(wcslen(pwszQuickComplete) + 1) * sizeof(WCHAR));
-            return S_FALSE;
-        }
-    }
-
-    return S_OK;
-}
-
-/**************************************************************************
- *  IAutoComplete_fnGetOptions
- */
-HRESULT WINAPI CAutoComplete::GetOptions(DWORD *pdwFlag)
-{
-    HRESULT hr = S_OK;
-
-    TRACE("(%p) -> (%p)\n", this, pdwFlag);
-
-    *pdwFlag = options;
-
-    return hr;
-}
-
-/**************************************************************************
- *  IAutoComplete_fnSetOptions
- */
-HRESULT WINAPI CAutoComplete::SetOptions(DWORD dwFlag)
-{
-    HRESULT hr = S_OK;
-
-    TRACE("(%p) -> (0x%x)\n", this, dwFlag);
-
-    options = (AUTOCOMPLETEOPTIONS)dwFlag;
-
-    return hr;
-}
-
-/*
-  Window procedure for autocompletion
- */
-LRESULT APIENTRY CAutoComplete::ACEditSubclassProc(HWND hwnd, UINT uMsg, 
WPARAM wParam, LPARAM lParam)
-{
-    CAutoComplete *pThis = static_cast<CAutoComplete *>(GetPropW(hwnd, 
autocomplete_propertyW));//GetWindowLongPtrW(hwnd, GWLP_USERDATA);
-    LPOLESTR strs;
-    HRESULT hr;
-    WCHAR hwndText[255];
-    WCHAR *hwndQCText;
-    RECT r;
-    BOOL control, filled, displayall = FALSE;
-    int cpt, height, sel;
-
-    if (!pThis->enabled)
-    {
-        return CallWindowProcW(pThis->wpOrigEditProc, hwnd, uMsg, wParam, 
lParam);
-    }
-
-    switch (uMsg)
-    {
-        case CB_SHOWDROPDOWN:
-        {
-            ShowWindow(pThis->hwndListBox, SW_HIDE);
-        }; break;
-
-        case WM_KILLFOCUS:
-        {
-            if ((pThis->options & ACO_AUTOSUGGEST) && ((HWND)wParam != 
pThis->hwndListBox))
-            {
-                ShowWindow(pThis->hwndListBox, SW_HIDE);
-            }
-            return CallWindowProcW(pThis->wpOrigEditProc, hwnd, uMsg, wParam, 
lParam);
-        }; break;
-
-        case WM_KEYUP:
-        {
-            GetWindowTextW(hwnd, (LPWSTR)hwndText, 255);
-
-            switch(wParam)
-            {
-                case VK_RETURN:
-                {
-                    /* If quickComplete is set and control is pressed, replace 
the string */
-                    control = GetKeyState(VK_CONTROL) & 0x8000;
-                    if (control && pThis->quickComplete)
-                    {
-                        hwndQCText = (WCHAR *)HeapAlloc(GetProcessHeap(), 
HEAP_ZERO_MEMORY,
-                                           
(wcslen(pThis->quickComplete)+wcslen(hwndText))*sizeof(WCHAR));
-                        sel = swprintf(hwndQCText, pThis->quickComplete, 
hwndText);
-                        SendMessageW(hwnd, WM_SETTEXT, 0, (LPARAM)hwndQCText);
-                        SendMessageW(hwnd, EM_SETSEL, 0, sel);
-                        HeapFree(GetProcessHeap(), 0, hwndQCText);
-                    }
-
-                    ShowWindow(pThis->hwndListBox, SW_HIDE);
-                    return 0;
-                }; break;
-
-                case VK_LEFT:
-                case VK_RIGHT:
-                {
-                    return 0;
-                }; break;
-
-                case VK_UP:
-                case VK_DOWN:
-                {
-                    /* Two cases here :
-                       - if the listbox is not visible, displays it
-                       with all the entries if the style ACO_UPDOWNKEYDROPSLIST
-                       is present but does not select anything.
-                       - if the listbox is visible, change the selection
-                    */
-                    if ( (pThis->options & (ACO_AUTOSUGGEST | 
ACO_UPDOWNKEYDROPSLIST))
-                     && (!IsWindowVisible(pThis->hwndListBox) && (! 
*hwndText)) )
-                    {
-                        /* We must display all the entries */
-                        displayall = TRUE;
-                    }
-                    else
-                    {
-                        if (IsWindowVisible(pThis->hwndListBox))
-                        {
-                            int count;
-
-                            count = SendMessageW(pThis->hwndListBox, 
LB_GETCOUNT, 0, 0);
-                            /* Change the selection */
-                            sel = SendMessageW(pThis->hwndListBox, 
LB_GETCURSEL, 0, 0);
-                            if (wParam == VK_UP)
-                                sel = ((sel-1)<0)?count-1:sel-1;
-                            else
-                                sel = ((sel+1)>= count)?-1:sel+1;
-                            
-                            SendMessageW(pThis->hwndListBox, LB_SETCURSEL, 
sel, 0);
-                            
-                            if (sel != -1)
-                            {
-                                WCHAR *msg;
-                                int len;
-
-                                len = SendMessageW(pThis->hwndListBox, 
LB_GETTEXTLEN, sel, (LPARAM)NULL);
-                                msg = (WCHAR *)HeapAlloc(GetProcessHeap(), 
HEAP_ZERO_MEMORY, (len + 1) * sizeof(WCHAR));
-                                
-                                if (msg)
-                                {
-                                    SendMessageW(pThis->hwndListBox, 
LB_GETTEXT, sel, (LPARAM)msg);
-                                    SendMessageW(hwnd, WM_SETTEXT, 0, 
(LPARAM)msg);
-                                    SendMessageW(hwnd, EM_SETSEL, wcslen(msg), 
wcslen(msg));
-                                
-                                    HeapFree(GetProcessHeap(), 0, msg);
-                                }
-                                else
-                                {
-                                    TRACE("HeapAlloc failed to allocate %d 
bytes\n", (len + 1) * sizeof(WCHAR));
-                                }
-                            }
-                            else
-                            {
-                                SendMessageW(hwnd, WM_SETTEXT, 0, 
(LPARAM)pThis->txtbackup);
-                                SendMessageW(hwnd, EM_SETSEL, 
wcslen(pThis->txtbackup), wcslen(pThis->txtbackup));
-                            }
-                        }
-                        return 0;
-                    }
-                }; break;
-                
-                case VK_BACK:
-                case VK_DELETE:
-                {
-                    if ((! *hwndText) && (pThis->options & ACO_AUTOSUGGEST))
-                    {
-                        ShowWindow(pThis->hwndListBox, SW_HIDE);
-                        return CallWindowProcW(pThis->wpOrigEditProc, hwnd, 
uMsg, wParam, lParam);
-                    }
-                    
-                    if (pThis->options & ACO_AUTOAPPEND)
-                    {
-                        DWORD b;
-                        SendMessageW(hwnd, EM_GETSEL, (WPARAM)&b, 
(LPARAM)NULL);
-                        if (b>1)
-                        {
-                            hwndText[b-1] = '\0';
-                        }
-                        else
-                        {
-                            hwndText[0] = '\0';
-                            SetWindowTextW(hwnd, hwndText);
-                        }
-                    }
-                }; break;
-                
-                default:
-                    ;
-            }
-
-            SendMessageW(pThis->hwndListBox, LB_RESETCONTENT, 0, 0);
-
-            HeapFree(GetProcessHeap(), 0, pThis->txtbackup);
-
-            pThis->txtbackup = (WCHAR *)HeapAlloc(GetProcessHeap(), 
HEAP_ZERO_MEMORY, (wcslen(hwndText)+1)*sizeof(WCHAR));
-
-            if (pThis->txtbackup)
-            {
-                wcscpy(pThis->txtbackup, hwndText);
-            }
-            else
-            {
-                TRACE("HeapAlloc failed to allocate %d bytes\n", 
(wcslen(hwndText)+1)*sizeof(WCHAR));
-            }
-
-            /* Returns if there is no text to search and we doesn't want to 
display all the entries */
-            if ((!displayall) && (! *hwndText) )
-                break;
-
-            pThis->enumstr->Reset();
-            filled = FALSE;
-            
-            for(cpt = 0;;)
-            {
-                hr = pThis->enumstr->Next(1, &strs, NULL);
-                if (hr != S_OK)
-                    break;
-
-                if ((LPWSTR)strstrW(strs, hwndText) == strs)
-                {
-
-                    if (pThis->options & ACO_AUTOAPPEND)
-                    {
-                        SetWindowTextW(hwnd, strs);
-                        SendMessageW(hwnd, EM_SETSEL, wcslen(hwndText), 
wcslen(strs));
-                        break;
-                    }
-
-                    if (pThis->options & ACO_AUTOSUGGEST)
-                    {
-                        SendMessageW(pThis->hwndListBox, LB_ADDSTRING, 0, 
(LPARAM)strs);
-                        filled = TRUE;
-                        cpt++;
-                    }
-                }
-            }
-
-            if (pThis->options & ACO_AUTOSUGGEST)
-            {
-                if (filled)
-                {
-                    height = SendMessageW(pThis->hwndListBox, 
LB_GETITEMHEIGHT, 0, 0);
-                    SendMessageW(pThis->hwndListBox, LB_CARETOFF, 0, 0);
-                    GetWindowRect(hwnd, &r);
-                    SetParent(pThis->hwndListBox, HWND_DESKTOP);
-                    /* It seems that Windows XP displays 7 lines at most
-                       and otherwise displays a vertical scroll bar */
-                    SetWindowPos(pThis->hwndListBox, HWND_TOP,
-                         r.left, r.bottom + 1, r.right - r.left, min(height * 
7, height * (cpt + 1)),
-                         SWP_SHOWWINDOW );
-                }
-                else
-                {
-                    ShowWindow(pThis->hwndListBox, SW_HIDE);
-                }
-            }
-
-        }; break;
-        
-        default:
-        {
-            return CallWindowProcW(pThis->wpOrigEditProc, hwnd, uMsg, wParam, 
lParam);
-        }
-
-    }
-
-    return 0;
-}
-
-LRESULT APIENTRY CAutoComplete::ACLBoxSubclassProc(HWND hwnd, UINT uMsg, 
WPARAM wParam, LPARAM lParam)
-{
-    CAutoComplete *pThis = reinterpret_cast<CAutoComplete 
*>(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
-    WCHAR *msg;
-    int sel, len;
-
-    switch (uMsg)
-    {
-        case WM_MOUSEMOVE:
-        {
-            sel = SendMessageW(hwnd, LB_ITEMFROMPOINT, 0, lParam);
-            SendMessageW(hwnd, LB_SETCURSEL, (WPARAM)sel, (LPARAM)0);
-        }; break;
-        
-        case WM_LBUTTONDOWN:
-        {
-            sel = SendMessageW(hwnd, LB_GETCURSEL, 0, 0);
-            
-            if (sel < 0)
-                break;
-            
-            len = SendMessageW(pThis->hwndListBox, LB_GETTEXTLEN, sel, 0);
-            msg = (WCHAR *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (len 
+ 1) * sizeof(WCHAR));
-            
-            if (msg)
-            {
-                SendMessageW(hwnd, LB_GETTEXT, sel, (LPARAM)msg);
-                SendMessageW(pThis->hwndEdit, WM_SETTEXT, 0, (LPARAM)msg);
-                SendMessageW(pThis->hwndEdit, EM_SETSEL, 0, wcslen(msg));
-                ShowWindow(hwnd, SW_HIDE);
-            
-                HeapFree(GetProcessHeap(), 0, msg);
-            }
-            else
-            {
-                TRACE("HeapAlloc failed to allocate %d bytes\n", (len + 1) * 
sizeof(WCHAR));
-            }
-           
-        }; break;
-        
-        default:
-            return CallWindowProcW(pThis->wpOrigLBoxProc, hwnd, uMsg, wParam, 
lParam);
-    }
-    return 0;
-}

Removed: trunk/reactos/dll/win32/shell32/CAutoComplete.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CAutoComplete.h?rev=66472
==============================================================================
--- trunk/reactos/dll/win32/shell32/CAutoComplete.h     [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/CAutoComplete.h     (removed)
@@ -1,66 +0,0 @@
-/*
- *     AutoComplete interfaces implementation.
- *
- *     Copyright 2004  Maxime Bellengé <maxime.belle...@laposte.net>
- *     Copyright 2009  Andrew Hill
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef _AUTOCOMPLETE_H_
-#define _AUTOCOMPLETE_H_
-
-class CAutoComplete :
-       public CComCoClass<CAutoComplete, &CLSID_AutoComplete>,
-       public CComObjectRootEx<CComMultiThreadModelNoCS>,
-       public IAutoComplete2
-{
-private:
-       BOOL                                    enabled;
-       BOOL                                    initialized;
-       HWND                                    hwndEdit;
-       HWND                                    hwndListBox;
-       WNDPROC                                 wpOrigEditProc;
-       WNDPROC                                 wpOrigLBoxProc;
-       WCHAR                                   *txtbackup;
-       WCHAR                                   *quickComplete;
-       CComPtr<IEnumString>    enumstr;
-       AUTOCOMPLETEOPTIONS             options;
-public:
-
-       CAutoComplete();
-       ~CAutoComplete();
-
-       static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM 
wParam, LPARAM lParam);
-       static LRESULT APIENTRY ACLBoxSubclassProc(HWND hwnd, UINT uMsg, WPARAM 
wParam, LPARAM lParam);
-
-       // IAutoComplete2
-       virtual HRESULT WINAPI Enable(BOOL fEnable);
-       virtual HRESULT WINAPI Init(HWND hwndEdit, IUnknown *punkACL, LPCOLESTR 
pwzsRegKeyPath, LPCOLESTR pwszQuickComplete);
-       virtual HRESULT WINAPI GetOptions(DWORD *pdwFlag);
-       virtual HRESULT WINAPI SetOptions(DWORD dwFlag);
-
-DECLARE_REGISTRY_RESOURCEID(IDR_AUTOCOMPLETE)
-DECLARE_NOT_AGGREGATABLE(CAutoComplete)
-
-DECLARE_PROTECT_FINAL_CONSTRUCT()
-
-BEGIN_COM_MAP(CAutoComplete)
-       COM_INTERFACE_ENTRY_IID(IID_IAutoComplete, IAutoComplete)
-       COM_INTERFACE_ENTRY_IID(IID_IAutoComplete2, IAutoComplete2)
-END_COM_MAP()
-};
-
-#endif /* _AUTOCOMPLETE_H_ */

Modified: trunk/reactos/dll/win32/shell32/CMakeLists.txt
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CMakeLists.txt?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/CMakeLists.txt      [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/CMakeLists.txt      [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -16,7 +16,6 @@
     ${REACTOS_SOURCE_DIR})
 
 list(APPEND SOURCE
-    CAutoComplete.cpp
     CMenuBand.cpp
     CMenuDeskBar.cpp
     CIDLDataObj.cpp

Modified: trunk/reactos/dll/win32/shell32/precomp.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/precomp.h?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/precomp.h   [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/precomp.h   [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -48,7 +48,6 @@
 #include "CShellItem.h"
 #include "CShellLink.h"
 #include "CDropTargetHelper.h"
-#include "CAutoComplete.h"
 #include "folders/CFSFolder.h"
 #include "folders/CDrivesFolder.h"
 #include "folders/CDesktopFolder.h"

Removed: trunk/reactos/dll/win32/shell32/res/rgs/autocomplete.rgs
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/res/rgs/autocomplete.rgs?rev=66472
==============================================================================
--- trunk/reactos/dll/win32/shell32/res/rgs/autocomplete.rgs    [iso-8859-1] 
(original)
+++ trunk/reactos/dll/win32/shell32/res/rgs/autocomplete.rgs    (removed)
@@ -1,13 +0,0 @@
-HKCR
-{
-       NoRemove CLSID
-       {
-               ForceRemove {00BB2763-6A77-11D0-A535-00C04FD7D062} = s 'Shell 
ReactOS AutoComplete'
-               {
-                       InprocServer32 = s '%MODULE%'
-                       {
-                               val ThreadingModel = s 'Apartment'
-                       }
-               }
-       }
-}

Modified: trunk/reactos/dll/win32/shell32/rgs_res.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/rgs_res.rc?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/rgs_res.rc  [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/rgs_res.rc  [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -1,7 +1,6 @@
 /* REGISTRY */
 
 IDR_ADMINFOLDERSHORTCUT REGISTRY "res/rgs/adminfoldershortcut.rgs"
-IDR_AUTOCOMPLETE REGISTRY "res/rgs/autocomplete.rgs"
 IDR_CONTROLPANEL REGISTRY "res/rgs/controlpanel.rgs"
 IDR_DRAGDROPHELPER REGISTRY "res/rgs/dragdrophelper.rgs"
 IDR_FOLDEROPTIONS REGISTRY "res/rgs/folderoptions.rgs"

Modified: trunk/reactos/dll/win32/shell32/shell32.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shell32.cpp?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -160,7 +160,6 @@
     OBJECT_ENTRY(CLSID_ShellLink, CShellLink)
     OBJECT_ENTRY(CLSID_DragDropHelper, CDropTargetHelper)
     OBJECT_ENTRY(CLSID_ControlPanel, CControlPanelFolder)
-    OBJECT_ENTRY(CLSID_AutoComplete, CAutoComplete)
     OBJECT_ENTRY(CLSID_MyDocuments, CMyDocsFolder)
     OBJECT_ENTRY(CLSID_NetworkPlaces, CNetFolder)
     OBJECT_ENTRY(CLSID_FontsFolderShortcut, CFontsFolder)

Modified: trunk/reactos/dll/win32/shell32/shresdef.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shresdef.h?rev=66473&r1=66472&r2=66473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/shresdef.h  [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shresdef.h  [iso-8859-1] Thu Feb 26 
18:44:34 2015
@@ -540,7 +540,6 @@
 
 /* Registrar scripts (RGS) */
 #define IDR_ADMINFOLDERSHORTCUT 128
-#define IDR_AUTOCOMPLETE        129
 #define IDR_CONTROLPANEL        130
 #define IDR_DRAGDROPHELPER      131
 #define IDR_FOLDEROPTIONS       132


Reply via email to