/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __ENUMVARIANT_H_ #define __ENUMVARIANT_H_ #define WNT #include "resource.h" // main symbols #include #include #include "UAccCOM2.h" #include using namespace com::sun::star::accessibility; using namespace com::sun::star::uno; #include #include using namespace std; /** * CEnumVariant implements IEnumVARIANT interface. */ class ATL_NO_VTABLE CEnumVariant : public CComObjectRootEx, public CComCoClass, public IDispatchImpl { public: CEnumVariant() :m_lLBound(0), pUNOInterface(NULL), m_pXAccessibleSelection(NULL) { m_lCurrent = m_lLBound; } virtual ~CEnumVariant() {}; DECLARE_REGISTRY_RESOURCEID(IDR_ENUMVARIANT) DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CEnumVariant) COM_INTERFACE_ENTRY(IEnumVariant) COM_INTERFACE_ENTRY(IEnumVARIANT) END_COM_MAP() // IEnumVariant public: STDMETHOD(ClearEnumeration)(); // IEnumVARIANT // HRESULT STDMETHODCALLTYPE Next(ULONG cElements,VARIANT __RPC_FAR *pvar,ULONG __RPC_FAR *pcElementFetched); // HRESULT STDMETHODCALLTYPE Skip(ULONG cElements); // HRESULT STDMETHODCALLTYPE Reset( void); // HRESULT STDMETHODCALLTYPE Clone(IEnumVARIANT __RPC_FAR *__RPC_FAR *ppenum); // IEnumVariant // HRESULT STDMETHODCALLTYPE PutSelection(long pXSelection); // static HRESULT STDMETHODCALLTYPE Create(CEnumVariant __RPC_FAR *__RPC_FAR *ppenum); // long GetCountOfElements(); private: long m_lCurrent; long m_lLBound; XAccessible* pUNOInterface; // XAccessible. Reference m_pXAccessibleSelection; // Selection. }; #endif //__ENUMVARIANT_H_