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

📄 acepowell.h

📁 The source code samples for chapter 2, 4, 6, and 8 are contained in the EvenChapters project. Those
💻 H
字号:
// AcePowell.h : Declaration of the CAcePowell

#ifndef __ACEPOWELL_H_
#define __ACEPOWELL_H_

#include "resource.h"       // main symbols

template <typename Deriving>
struct ATL_NO_VTABLE _IArtist : public IArtist {
  STDMETHODIMP Draw() { return static_cast<Deriving*>(this)->ArtistDraw(); }
};

template <typename Deriving>
struct ATL_NO_VTABLE _ICowboy : public ICowboy {
  STDMETHODIMP Draw() { return static_cast<Deriving*>(this)->CowboyDraw(); }
};

/////////////////////////////////////////////////////////////////////////////
// CAcePowell
class ATL_NO_VTABLE CAcePowell : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CAcePowell, &CLSID_AcePowell>,
	public _IArtist<CAcePowell>,
    public _ICowboy<CAcePowell>
{
public:
DECLARE_REGISTRY_RESOURCEID(IDR_ACEPOWELL)
DECLARE_NOT_AGGREGATABLE(CAcePowell)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CAcePowell)
	COM_INTERFACE_ENTRY(IArtist)
	COM_INTERFACE_ENTRY(ICowboy)
END_COM_MAP()

// IAcePowell
public:
    HRESULT ArtistDraw() { MessageBox(0, "Say Cheese", "IArtist::Draw", MB_SETFOREGROUND); return S_OK; }
    HRESULT CowboyDraw() { MessageBox(0, "Ye-ha!", "ICowboy::Draw", MB_SETFOREGROUND); return S_OK; }
};

#endif //__ACEPOWELL_H_

⌨️ 快捷键说明

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