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

📄 spiro.h

📁 《Visual C++ Bible》或者说是《Visual C++ 宝典》的对应的源码文件
💻 H
字号:
// Spiro.h : Declaration of the CSpiro

#ifndef __SPIRO_H_
#define __SPIRO_H_

#include "resource.h"       // main symbols


/////////////////////////////////////////////////////////////////////////////
// CSpiro
class ATL_NO_VTABLE CSpiro : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CSpiro, &CLSID_Spiro>,
	public CComControl<CSpiro>,
	public IDispatchImpl<ISpiro, &IID_ISpiro, &LIBID_SPIROGRPHLib>,
	public IProvideClassInfo2Impl<&CLSID_Spiro, NULL, &LIBID_SPIROGRPHLib>,
	public IPersistStreamInitImpl<CSpiro>,
	public IPersistStorageImpl<CSpiro>,
	public IQuickActivateImpl<CSpiro>,
	public IOleControlImpl<CSpiro>,
	public IOleObjectImpl<CSpiro>,
	public IOleInPlaceActiveObjectImpl<CSpiro>,
	public IViewObjectExImpl<CSpiro>,
	public IOleInPlaceObjectWindowlessImpl<CSpiro>,
	public IDataObjectImpl<CSpiro>,
	public IConnectionPointContainerImpl<CSpiro>,
	public ISpecifyPropertyPagesImpl<CSpiro>
{
public:
	unsigned char m_Red, m_Green, m_Blue;
	int m_nIterations;
	int R, r, O;

	CSpiro()
	{

		m_Red = 0xff;
		m_Green = 0x00;
		m_Blue = 0x80;

		m_nIterations = 400;

		R = 50;
		r = 10;
		O = 5;
 
	}
	
DECLARE_REGISTRY_RESOURCEID(IDR_SPIRO)

BEGIN_COM_MAP(CSpiro)
	COM_INTERFACE_ENTRY(ISpiro)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)
	COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless)
	COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)
	COM_INTERFACE_ENTRY_IMPL(IOleControl)
	COM_INTERFACE_ENTRY_IMPL(IOleObject)
	COM_INTERFACE_ENTRY_IMPL(IQuickActivate)
	COM_INTERFACE_ENTRY_IMPL(IPersistStorage)
	COM_INTERFACE_ENTRY_IMPL(IPersistStreamInit)
	COM_INTERFACE_ENTRY_IMPL(ISpecifyPropertyPages)
	COM_INTERFACE_ENTRY_IMPL(IDataObject)
	COM_INTERFACE_ENTRY(IProvideClassInfo)
	COM_INTERFACE_ENTRY(IProvideClassInfo2)
	COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
END_COM_MAP()

BEGIN_PROPERTY_MAP(CSpiro)
	// Example entries
	// PROP_ENTRY("Property Description", dispid, clsid)
	PROP_PAGE(CLSID_StockColorPage)
END_PROPERTY_MAP()


BEGIN_CONNECTION_POINT_MAP(CSpiro)
END_CONNECTION_POINT_MAP()


BEGIN_MSG_MAP(CSpiro)
	MESSAGE_HANDLER(WM_PAINT, OnPaint)
	MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
	MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus)
END_MSG_MAP()


// IViewObjectEx
	STDMETHOD(GetViewStatus)(DWORD* pdwStatus)
	{
		ATLTRACE(_T("IViewObjectExImpl::GetViewStatus\n"));
		*pdwStatus = VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE;
		return S_OK;
	}

// ISpiro
public:
	HRESULT OnDraw(ATL_DRAWINFO& di);

	HRESULT __stdcall Draw( int );
	HRESULT __stdcall SetRadius( int );
	HRESULT __stdcall SetColor( long );

};

#endif //__SPIRO_H_

⌨️ 快捷键说明

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