Optimized_Renderer
OptimisedRenderer.h
/*
Copyright 1995-2004 ESRI
All rights reserved under the copyright laws of the United States.
You may freely redistribute and use this sample code, with or without modification.
Disclaimer: THE SAMPLE CODE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ESRI OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) SUSTAINED BY YOU OR A THIRD PARTY, HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ARISING IN ANY
WAY OUT OF THE USE OF THIS SAMPLE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
For additional information contact: Environmental Systems Research Institute, Inc.
Attn: Contracts Dept.
380 New York Street
Redlands, California, U.S.A. 92373
Email: contracts@esri.com
*/
// OptimisedRenderer.h : Declaration of the COptimisedRenderer
#ifndef __OPTIMISEDRENDERER_H_
#define __OPTIMISEDRENDERER_H_
#include "resource.h" // main symbols
DEFINE_GUID(CATID_MxCommands,
0xb56a7c42, 0x83d4, 0x11d2, 0xa2, 0xe9, 0x8, 0x0, 0x9, 0xb6, 0xf2, 0x2b);
_COM_SMARTPTR_TYPEDEF(IOptimisedRenderer, __uuidof(IOptimisedRenderer));
/////////////////////////////////////////////////////////////////////////////
// COptimisedRenderer
class ATL_NO_VTABLE COptimisedRenderer :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<COptimisedRenderer, &CLSID_OptimisedRenderer>,
public IOptimisedRenderer,
public IFeatureRenderer,
public ICommand
{
public:
COptimisedRenderer()
{
m_bDisplayTime=VARIANT_FALSE;
m_bUseFeatureDraw=VARIANT_FALSE;
}
DECLARE_REGISTRY_RESOURCEID(IDR_OPTIMISEDRENDERER)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(COptimisedRenderer)
COM_INTERFACE_ENTRY(IOptimisedRenderer)
COM_INTERFACE_ENTRY(IFeatureRenderer)
COM_INTERFACE_ENTRY(ICommand)
END_COM_MAP()
BEGIN_CATEGORY_MAP(COptimisedRenderer)
IMPLEMENTED_CATEGORY(CATID_MxCommands)
END_CATEGORY_MAP()
public:
// IOptimisedRenderer
STDMETHOD(putref_Application)(/*[in]*/ IUnknown* newVal);
STDMETHOD(get_UseFeatureDraw)(/*[out, retval]*/ VARIANT_BOOL *pVal);
STDMETHOD(put_UseFeatureDraw)(/*[in]*/ VARIANT_BOOL newVal);
STDMETHOD(get_DisplayTime)(/*[out, retval]*/ VARIANT_BOOL *pVal);
STDMETHOD(put_DisplayTime)(/*[in]*/ VARIANT_BOOL newVal);
STDMETHOD(putref_FillSymbol)(/*[in]*/ IUnknown* pUnk);
STDMETHOD(putref_MarkerSymbol)(/*[in]*/ IUnknown* pUnk);
STDMETHOD(putref_LineSymbol)(/*[in]*/ IUnknown* pUnk);
// IFeatureRenderer
STDMETHOD(CanRender)(IFeatureClass * featClass, IDisplay * Display, VARIANT_BOOL * result);
STDMETHOD(PrepareFilter)(IFeatureClass * fc, IQueryFilter * QueryFilter);
STDMETHOD(Draw)(IFeatureCursor * Cursor, esriDrawPhase drawPhase, IDisplay * Display, ITrackCancel * trackCancel);
STDMETHOD(get_SymbolByFeature)(IFeature * Feature, ISymbol * * Symbol);
STDMETHOD(get_RenderPhase)(esriDrawPhase drawPhase, VARIANT_BOOL * result);
STDMETHOD(putref_ExclusionSet)(IFeatureIDSet * );
// ICommand
STDMETHOD(get_Enabled)(VARIANT_BOOL * Enabled);
STDMETHOD(get_Checked)(VARIANT_BOOL * Checked);
STDMETHOD(get_Name)(BSTR * Name);
STDMETHOD(get_Caption)(BSTR * Caption);
STDMETHOD(get_Tooltip)(BSTR * Tooltip);
STDMETHOD(get_Message)(BSTR * Message);
STDMETHOD(get_HelpFile)(BSTR * HelpFile);
STDMETHOD(get_HelpContextID)(LONG * helpID);
STDMETHOD(get_Bitmap)(OLE_HANDLE * Bitmap);
STDMETHOD(get_Category)(BSTR * categoryName);
STDMETHOD(OnCreate)(IDispatch * hook);
STDMETHOD(OnClick)();
private:
ISymbolPtr m_ipSymbol;
ISimpleMarkerSymbolPtr m_ipMarkerSymbol;
ISimpleLineSymbolPtr m_ipLineSymbol;
ISimpleFillSymbolPtr m_ipFillSymbol;
IFeatureIDSetPtr m_ipExclusionSet;
IApplicationPtr m_ipApp;
VARIANT_BOOL m_bDisplayTime;
VARIANT_BOOL m_bUseFeatureDraw;
};
#endif //__OPTIMISEDRENDERER_H_