/*
- * Multisource AutoComplete list
+ * Multisource AutoComplete list
*
- * Copyright 2007 Mikolaj Zalewski
- * Copyright 2009 Andrew Hill
+ * Copyright 2007 Mikolaj Zalewski
+ * 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
#pragma once
class CACLMulti :
- public CComCoClass<CACLMulti, &CLSID_ACLMulti>,
- public CComObjectRootEx<CComMultiThreadModelNoCS>,
- public IEnumString,
- public IACList,
- public IObjMgr
+ public CComCoClass<CACLMulti, &CLSID_ACLMulti>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public IEnumString,
+ public IObjMgr,
+ public IACList
{
private:
- struct ACLMultiSublist
- {
- IUnknown *punk;
- IEnumString *pEnum;
- IACList *pACL;
- };
+ struct ACLMultiSublist
+ {
+ IUnknown *punk;
+ IEnumString *pEnum;
+ IACList *pACL;
+ };
- INT fObjectCount;
- INT fCurrentObject;
- struct ACLMultiSublist *fObjects;
+ INT fObjectCount;
+ INT fCurrentObject;
+ struct ACLMultiSublist *fObjects;
public:
- CACLMulti();
- ~CACLMulti();
+ CACLMulti();
+ ~CACLMulti();
- // *** IEnumString methods ***
- virtual HRESULT STDMETHODCALLTYPE Next(ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched);
- virtual HRESULT STDMETHODCALLTYPE Skip(ULONG celt);
- virtual HRESULT STDMETHODCALLTYPE Reset();
- virtual HRESULT STDMETHODCALLTYPE Clone(IEnumString **ppenum);
+ // *** IEnumString methods ***
+ virtual HRESULT STDMETHODCALLTYPE Next(ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched);
+ virtual HRESULT STDMETHODCALLTYPE Skip(ULONG celt);
+ virtual HRESULT STDMETHODCALLTYPE Reset();
+ virtual HRESULT STDMETHODCALLTYPE Clone(IEnumString **ppenum);
- // *** IACList methods ***
- virtual HRESULT STDMETHODCALLTYPE Expand(LPCOLESTR pszExpand);
+ // *** IACList methods ***
+ virtual HRESULT STDMETHODCALLTYPE Expand(LPCOLESTR pszExpand);
- // *** IObjMgr methods ***
- virtual HRESULT STDMETHODCALLTYPE Append(IUnknown *punk);
- virtual HRESULT STDMETHODCALLTYPE Remove(IUnknown *punk);
+ // *** IObjMgr methods ***
+ virtual HRESULT STDMETHODCALLTYPE Append(IUnknown *punk);
+ virtual HRESULT STDMETHODCALLTYPE Remove(IUnknown *punk);
private:
- void release_obj(struct ACLMultiSublist *obj);
+ void release_obj(struct ACLMultiSublist *obj);
public:
-DECLARE_REGISTRY_RESOURCEID(IDR_ACLMULTI)
-DECLARE_NOT_AGGREGATABLE(CACLMulti)
+ DECLARE_REGISTRY_RESOURCEID(IDR_ACLMULTI)
+ DECLARE_NOT_AGGREGATABLE(CACLMulti)
-DECLARE_PROTECT_FINAL_CONSTRUCT()
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
-BEGIN_COM_MAP(CACLMulti)
- COM_INTERFACE_ENTRY_IID(IID_IEnumString, IEnumString)
- COM_INTERFACE_ENTRY_IID(IID_IACList, IACList)
- COM_INTERFACE_ENTRY_IID(IID_IObjMgr, IObjMgr)
-END_COM_MAP()
+ BEGIN_COM_MAP(CACLMulti)
+ COM_INTERFACE_ENTRY_IID(IID_IEnumString, IEnumString)
+ COM_INTERFACE_ENTRY_IID(IID_IACList, IACList)
+ COM_INTERFACE_ENTRY_IID(IID_IObjMgr, IObjMgr)
+ END_COM_MAP()
};