⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ghswatch.h

📁 VC开发环境下
💻 H
字号:
// GHSwatch.h : Declaration of the CGHSwatch

#pragma once
#include "resource.h"       // main symbols

#include "GHSwatchSystem.h"
#include "SwatchData.h"
#include <list>
#include <atlcomtime.h>

// CGHSwatch

class ATL_NO_VTABLE CGHSwatch : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CGHSwatch, &CLSID_GHSwatch>,
	public IDispatchImpl<IGHSwatch, &IID_IGHSwatch, &LIBID_GHSwatchSystemLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
	public IPersistStreamInitImpl<CGHSwatch>,
	public IPersistStorageImpl<CGHSwatch>
{
public:
	CGHSwatch():m_bRequiresSave(FALSE),m_cpIndexs(NULL),m_Name(""),m_Description("")
	{
		m_CreatedDate=COleDateTime::GetCurrentTime();
	}

DECLARE_REGISTRY_RESOURCEID(IDR_GHSWATCH)


BEGIN_PROP_MAP(CGHSwatch)
	PROP_ENTRY("SwatchName",1,CLSID_GHSwatch)
	PROP_ENTRY("SwatchDescription",2,CLSID_GHSwatch)
	PROP_DATA_ENTRY("SwatchData",m_CreatedDate,VT_DATE)
END_PROP_MAP()

BEGIN_COM_MAP(CGHSwatch)
	COM_INTERFACE_ENTRY(IGHSwatch)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(IPersistStreamInit)
	COM_INTERFACE_ENTRY(IPersistStorage)
END_COM_MAP()


	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		return S_OK;
	}
	
	void FinalRelease() 
	{
		for (std::list<CSwatchData*>::iterator pos=m_listSwatch.begin();pos!=m_listSwatch.end();++pos) 
			delete (*pos);
	}

public:
	STDMETHOD(get_Name)(BSTR* pVal);
	STDMETHOD(put_Name)(BSTR newVal);
	STDMETHOD(get_Description)(BSTR* pVal);
	STDMETHOD(put_Description)(BSTR newVal);
	STDMETHOD(get_CreatedDate)(DATE* pVal);
	STDMETHOD(get_IndexSystem)(IGHIndexs** pVal);
	STDMETHOD(put_IndexSystem)(IGHIndexs* newVal);
	STDMETHOD(get_FieldCount)(LONG* pVal);
	STDMETHOD(get_RowCount)(LONG* pVal);
	STDMETHOD(CreateRow)(IGHRow** row);
	STDMETHOD(Search)(VARIANT_BOOL Recycling, IGHSwatchCursor** cursor);
	STDMETHOD(Update)(VARIANT_BOOL Recycling, IGHSwatchCursor** cursor);
	STDMETHOD(FindIndex)(BSTR IndexName,LONG *lIndex);
	STDMETHOD(AddIndex)(IGHIndex* pVal);
	STDMETHOD(DeleteIndex)(IGHIndex* pVal);
	STDMETHOD(get_FilePath)(BSTR* pVal);
	STDMETHOD(put_FilePath)(BSTR newVal);
public:
	HRESULT IPersistStreamInit_Load(LPSTREAM pStm, ATL_PROPMAP_ENTRY* pMap);
	HRESULT IPersistStreamInit_Save(LPSTREAM pStm, BOOL fClearDirty, ATL_PROPMAP_ENTRY* pMap);	
	STDMETHOD(GetSizeMax)(ULARGE_INTEGER* pcbSize);

public:
	std::list<CSwatchData*> m_listSwatch;
	BOOL				   m_bRequiresSave;
	CComPtr<IGHIndexs>	   m_cpIndexs;

private:
	CComBSTR               m_Name;
	CComBSTR               m_Description;
	DATE				   m_CreatedDate;
	CComBSTR               m_FilePath;

};

OBJECT_ENTRY_AUTO(__uuidof(GHSwatch), CGHSwatch)

⌨️ 快捷键说明

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