2 * Shell AutoComplete list
4 * Copyright 2015 Thomas Faber
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 public CComCoClass
<CACListISF
, &CLSID_ACListISF
>,
25 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
38 // *** IEnumString methods ***
39 virtual HRESULT STDMETHODCALLTYPE
Next(ULONG celt
, LPOLESTR
*rgelt
, ULONG
*pceltFetched
);
40 virtual HRESULT STDMETHODCALLTYPE
Skip(ULONG celt
);
41 virtual HRESULT STDMETHODCALLTYPE
Reset();
42 virtual HRESULT STDMETHODCALLTYPE
Clone(IEnumString
**ppenum
);
44 // *** IACList methods ***
45 virtual HRESULT STDMETHODCALLTYPE
Expand(LPCOLESTR pszExpand
);
47 // *** IACList2 methods ***
48 virtual HRESULT STDMETHODCALLTYPE
SetOptions(DWORD dwFlag
);
49 virtual HRESULT STDMETHODCALLTYPE
GetOptions(DWORD
* pdwFlag
);
51 // *** IShellService methods ***
52 virtual HRESULT STDMETHODCALLTYPE
SetOwner(IUnknown
*);
54 // *** IPersist methods ***
55 virtual HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*pClassID
);
57 // *** IPersistFolder methods ***
58 virtual HRESULT STDMETHODCALLTYPE
Initialize(PCIDLIST_ABSOLUTE pidl
);
62 DECLARE_REGISTRY_RESOURCEID(IDR_ACLISTISF
)
63 DECLARE_NOT_AGGREGATABLE(CACListISF
)
65 DECLARE_PROTECT_FINAL_CONSTRUCT()
67 BEGIN_COM_MAP(CACListISF
)
68 COM_INTERFACE_ENTRY_IID(IID_IEnumString
, IEnumString
)
69 COM_INTERFACE_ENTRY_IID(IID_IACList
, IACList
)
70 COM_INTERFACE_ENTRY_IID(IID_IACList2
, IACList2
)
71 COM_INTERFACE_ENTRY_IID(IID_IShellService
, IShellService
)
72 // Windows doesn't return this
73 //COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
74 COM_INTERFACE_ENTRY_IID(IID_IPersistFolder
, IPersistFolder
)