1*ab7d8f36SKatayama Hirofumi MZ /* 2*ab7d8f36SKatayama Hirofumi MZ * PROJECT: ReactOS Shell 3*ab7d8f36SKatayama Hirofumi MZ * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later) 4*ab7d8f36SKatayama Hirofumi MZ * PURPOSE: Implement CLSID_ACLHistory for auto-completion 5*ab7d8f36SKatayama Hirofumi MZ * COPYRIGHT: Copyright 2021 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com> 6*ab7d8f36SKatayama Hirofumi MZ */ 7*ab7d8f36SKatayama Hirofumi MZ 8*ab7d8f36SKatayama Hirofumi MZ #pragma once 9*ab7d8f36SKatayama Hirofumi MZ 10*ab7d8f36SKatayama Hirofumi MZ class CACLHistory 11*ab7d8f36SKatayama Hirofumi MZ : public CComCoClass<CACLHistory, &CLSID_ACLHistory> 12*ab7d8f36SKatayama Hirofumi MZ , public CComObjectRootEx<CComMultiThreadModelNoCS> 13*ab7d8f36SKatayama Hirofumi MZ , public IEnumString 14*ab7d8f36SKatayama Hirofumi MZ { 15*ab7d8f36SKatayama Hirofumi MZ public: 16*ab7d8f36SKatayama Hirofumi MZ CACLHistory(); 17*ab7d8f36SKatayama Hirofumi MZ virtual ~CACLHistory(); 18*ab7d8f36SKatayama Hirofumi MZ 19*ab7d8f36SKatayama Hirofumi MZ // *** IEnumString methods *** 20*ab7d8f36SKatayama Hirofumi MZ STDMETHODIMP Next(ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched) override; 21*ab7d8f36SKatayama Hirofumi MZ STDMETHODIMP Skip(ULONG celt) override; 22*ab7d8f36SKatayama Hirofumi MZ STDMETHODIMP Reset() override; 23*ab7d8f36SKatayama Hirofumi MZ STDMETHODIMP Clone(IEnumString **ppenum) override; 24*ab7d8f36SKatayama Hirofumi MZ 25*ab7d8f36SKatayama Hirofumi MZ public: 26*ab7d8f36SKatayama Hirofumi MZ DECLARE_REGISTRY_RESOURCEID(IDR_ACLHISTORY) 27*ab7d8f36SKatayama Hirofumi MZ DECLARE_NOT_AGGREGATABLE(CACLHistory) 28*ab7d8f36SKatayama Hirofumi MZ 29*ab7d8f36SKatayama Hirofumi MZ DECLARE_PROTECT_FINAL_CONSTRUCT() 30*ab7d8f36SKatayama Hirofumi MZ 31*ab7d8f36SKatayama Hirofumi MZ BEGIN_COM_MAP(CACLHistory) 32*ab7d8f36SKatayama Hirofumi MZ COM_INTERFACE_ENTRY_IID(IID_IEnumString, IEnumString) 33*ab7d8f36SKatayama Hirofumi MZ END_COM_MAP() 34*ab7d8f36SKatayama Hirofumi MZ }; 35