📄 prime.h
字号:
// Prime.h : CPrime 的声明
#pragma once
#include "resource.h" // 主符号
#include "Simple17.h"
// CPrime
class ATL_NO_VTABLE CPrime :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CPrime, &CLSID_Prime>,
public IDispatchImpl<IPrime, &IID_IPrime, &LIBID_Simple17Lib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IPersistStreamInit
{
public:
CPrime()
: m_nNow(0)
, m_bDirty(false)
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_PRIME)
BEGIN_COM_MAP(CPrime)
COM_INTERFACE_ENTRY(IPrime)
COM_INTERFACE_ENTRY(IDispatch)
// 手工添加接口映射表
COM_INTERFACE_ENTRY(IPersistStreamInit)
// 表示如果要取得 IPersistStream 指针,则返回 IPersistStreamInit 指针
COM_INTERFACE_ENTRY_IID(IID_IPersistStream, IPersistStreamInit)
// 表示如果要取得 IPersist 指针,则返回 IPersistStremInit 指针
COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersistStreamInit)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
STDMETHOD(GetNext)(LONG* pVal);
private:
// 从这里开始计算素数
long m_nNow;
// 内部持续性数据是否已经变化了
bool m_bDirty;
public:
// IPersist
STDMETHOD(GetClassID)(/*[out]*/CLSID * pClassID);
// IPersistStream
STDMETHOD(IsDirty)(void);
STDMETHOD(Load)(/*[in]*/IStream *pStm);
STDMETHOD(Save)(/*[in]*/IStream *pStm,/*[in]*/BOOL fClearDirty);
STDMETHOD(GetSizeMax)(/*[out]*/ULARGE_INTEGER *pcbSize);
// IPersistStreamInit
STDMETHOD(InitNew)(void);
};
OBJECT_ENTRY_AUTO(__uuidof(Prime), CPrime)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -