2 * AutoComplete interfaces implementation.
4 * Copyright 2004 Maxime Bellengé <maxime.bellenge@laposte.net>
5 * Copyright 2009 Andrew Hill
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #ifndef _AUTOCOMPLETE_H_
23 #define _AUTOCOMPLETE_H_
26 public CComCoClass
<CAutoComplete
, &CLSID_AutoComplete
>,
27 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
28 public IAutoComplete2
,
29 public IAutoCompleteDropDown
,
37 WNDPROC wpOrigEditProc
;
38 WNDPROC wpOrigLBoxProc
;
41 CComPtr
<IEnumString
> enumstr
;
42 AUTOCOMPLETEOPTIONS options
;
48 static LRESULT APIENTRY
ACEditSubclassProc(HWND hwnd
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
49 static LRESULT APIENTRY
ACLBoxSubclassProc(HWND hwnd
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
54 virtual HRESULT WINAPI
Enable(BOOL fEnable
);
55 virtual HRESULT WINAPI
Init(HWND hwndEdit
, IUnknown
*punkACL
, LPCOLESTR pwzsRegKeyPath
, LPCOLESTR pwszQuickComplete
);
56 virtual HRESULT WINAPI
GetOptions(DWORD
*pdwFlag
);
57 virtual HRESULT WINAPI
SetOptions(DWORD dwFlag
);
59 // IAutoCompleteDropDown
60 virtual HRESULT STDMETHODCALLTYPE
GetDropDownStatus(DWORD
*pdwFlags
, LPWSTR
*ppwszString
);
61 virtual HRESULT STDMETHODCALLTYPE
ResetEnumerator();
63 // IEnumString methods
64 virtual HRESULT STDMETHODCALLTYPE
Next(ULONG celt
, LPOLESTR
*rgelt
, ULONG
*pceltFetched
);
65 virtual HRESULT STDMETHODCALLTYPE
Skip(ULONG celt
);
66 virtual HRESULT STDMETHODCALLTYPE
Reset();
67 virtual HRESULT STDMETHODCALLTYPE
Clone(IEnumString
**ppenum
);
69 DECLARE_REGISTRY_RESOURCEID(IDR_AUTOCOMPLETE
)
70 DECLARE_NOT_AGGREGATABLE(CAutoComplete
)
72 DECLARE_PROTECT_FINAL_CONSTRUCT()
74 BEGIN_COM_MAP(CAutoComplete
)
75 COM_INTERFACE_ENTRY_IID(IID_IAutoComplete
, IAutoComplete
)
76 COM_INTERFACE_ENTRY_IID(IID_IAutoComplete2
, IAutoComplete2
)
77 COM_INTERFACE_ENTRY_IID(IID_IAutoCompleteDropDown
, IAutoCompleteDropDown
)
78 COM_INTERFACE_ENTRY_IID(IID_IEnumString
, IEnumString
)
82 #endif /* _AUTOCOMPLETE_H_ */