2 * Multisource AutoComplete list
4 * Copyright 2007 Mikolaj Zalewski
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
25 public CComCoClass
<CACLMulti
, &CLSID_ACLMulti
>,
26 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
32 struct ACLMultiSublist
41 struct ACLMultiSublist
*fObjects
;
46 // *** IEnumString methods ***
47 virtual HRESULT STDMETHODCALLTYPE
Next(ULONG celt
, LPOLESTR
*rgelt
, ULONG
*pceltFetched
);
48 virtual HRESULT STDMETHODCALLTYPE
Skip(ULONG celt
);
49 virtual HRESULT STDMETHODCALLTYPE
Reset();
50 virtual HRESULT STDMETHODCALLTYPE
Clone(IEnumString
**ppenum
);
52 // *** IACList methods ***
53 virtual HRESULT STDMETHODCALLTYPE
Expand(LPCOLESTR pszExpand
);
55 // *** IObjMgr methods ***
56 virtual HRESULT STDMETHODCALLTYPE
Append(IUnknown
*punk
);
57 virtual HRESULT STDMETHODCALLTYPE
Remove(IUnknown
*punk
);
60 void release_obj(struct ACLMultiSublist
*obj
);
64 DECLARE_REGISTRY_RESOURCEID(IDR_ACLMULTI
)
65 DECLARE_NOT_AGGREGATABLE(CACLMulti
)
67 DECLARE_PROTECT_FINAL_CONSTRUCT()
69 BEGIN_COM_MAP(CACLMulti
)
70 COM_INTERFACE_ENTRY_IID(IID_IEnumString
, IEnumString
)
71 COM_INTERFACE_ENTRY_IID(IID_IACList
, IACList
)
72 COM_INTERFACE_ENTRY_IID(IID_IObjMgr
, IObjMgr
)