simplepointdatasethelper.h

来自「COM编程接口处理方法 多个方法调用COM库函数」· C头文件 代码 · 共 67 行

H
67
字号
// SimplePointDatasetHelper.h : Declaration of the CSimplePointDatasetHelper

#ifndef __SIMPLEPOINTDATASETHELPER_H_
#define __SIMPLEPOINTDATASETHELPER_H_

#include "resource.h"       // main symbols

// add DTC smart pointer for our interface
_COM_SMARTPTR_TYPEDEF(ISimplePointCursorHelper, __uuidof(ISimplePointCursorHelper));

/////////////////////////////////////////////////////////////////////////////
// CSimplePointDatasetHelper
class ATL_NO_VTABLE CSimplePointDatasetHelper : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CSimplePointDatasetHelper, &CLSID_SimplePointDatasetHelper>,
	public ISupportErrorInfo,
	public IPlugInDatasetHelper,
	public IPlugInDatasetInfo,
	public ISimplePointDatasetHelper
{
public:
	CSimplePointDatasetHelper()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_SIMPLEPOINTDATASETHELPER)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CSimplePointDatasetHelper)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
	COM_INTERFACE_ENTRY(IPlugInDatasetHelper)
	COM_INTERFACE_ENTRY(IPlugInDatasetInfo)
	COM_INTERFACE_ENTRY(ISimplePointDatasetHelper)
END_COM_MAP()

// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// IPlugInDatasetInfo
	STDMETHOD(get_LocalDatasetName)(BSTR *localName);
	STDMETHOD(get_DatasetType)(esriDatasetType *DatasetType);
	STDMETHOD(get_GeometryType)(esriGeometryType *GeometryType);
	STDMETHOD(get_ShapeFieldName)(BSTR *ShapeFieldName);

// IPlugInDatasetHelper
	STDMETHOD(get_ClassCount)(long *Count);
	STDMETHOD(get_ClassName)(long Index, BSTR *Name);
	STDMETHOD(get_ClassIndex)(BSTR Name, long *Index);
	STDMETHOD(get_Bounds)(IEnvelope **Bounds);
	STDMETHOD(get_Fields)(long ClassIndex, IFields **FieldSet);
	STDMETHOD(get_OIDFieldIndex)(long ClassIndex, long *OIDFieldIndex);
	STDMETHOD(get_ShapeFieldIndex)(long ClassIndex, long *ShapeFieldIndex);
	STDMETHOD(FetchByID)(long ClassIndex, long ID, VARIANT FieldMap, IPlugInCursorHelper **cursorHelper);
	STDMETHOD(FetchAll)(long ClassIndex, BSTR WhereClause, VARIANT FieldMap, IPlugInCursorHelper **cursorHelper);
	STDMETHOD(FetchByEnvelope)(long ClassIndex, IEnvelope *env, VARIANT_BOOL strictSearch, BSTR WhereClause, VARIANT FieldMap, IPlugInCursorHelper **cursorHelper);

// ISimplePointDatasetHelper
	STDMETHOD(put_DatasetName)(BSTR newVal);
	STDMETHOD(put_WorkspacePath)(BSTR newVal);
private:
	CComBSTR m_sDatasetName;
	CComBSTR m_sWorkspacePath;
};

#endif //__SIMPLEPOINTDATASETHELPER_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?