• 大小: 29KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: C/C++
  • 标签: vs2017  

资源简介

解决了vs2017无法使用MFC添加类的问题,包含详细过程.

资源截图

代码片段和文件信息

// [!output IMPL_FILE] : 实现文件
//

#include “stdafx.h“
[!if PROJECT_NAME_HEADER]
#include “[!output PROJECT_NAME].h“
[!endif]
#include “[!output HEADER_FILE]“
[!if !MERGE_FILE]

#ifdef _DEBUG
#define new DEBUG_NEW
#endif
[!endif]


// [!output CLASS_NAME]

[!if CREATABLE]
IMPLEMENT_DYNCREATE([!output CLASS_NAME] [!output base_CLASS])
[!else]
IMPLEMENT_DYNAMIC([!output CLASS_NAME] [!output base_CLASS])
[!endif]

[!if COLECLIENTITEM]
[!output CLASS_NAME]::[!output CLASS_NAME](COleDocument* pContainerDoc /*= NULL*/)
: COleClientItem(pContainerDoc)
[!else]
[!if CDOCobjectSERVER]
[!output CLASS_NAME]::[!output CLASS_NAME](COleServerDoc* pOwner LPOLEDOCUMENTSITE pDocSite /*= NULL*/)
: CDocobjectServer(pOwner pDocSite)
[!else]
[!if CDOCobjectSERVERITEM]
[!output CLASS_NAME]::[!output CLASS_NAME](COleServerDoc* pServerDoc BOOL bAutoDelete)
: CDocobjectServerItem(pServerDoc bAutoDelete)
[!else]

[!output CLASS_NAME]::[!output CLASS_NAME]()
[!endif]
[!endif]
[!endif]
{
[!if AUTOMATION || CREATABLE]
EnableAutomation();
[!endif]
[!if CREATABLE]

// 为了使应用程序在 OLE 自动化对象处于活动状态时保持
// 运行,构造函数调用 AfxOleLockApp。

AfxOleLockApp();
[!endif]
}

[!output CLASS_NAME]::~[!output CLASS_NAME]()
{
[!if CREATABLE]
// 为了在用 OLE 自动化创建所有对象后终止应用程序,
// 析构函数调用 AfxOleUnlockApp。

AfxOleUnlockApp();
[!endif]
}
[!if AUTOMATION || CREATABLE]


void [!output CLASS_NAME]::OnFinalRelease()
{
// 释放了对自动化对象的最后一个引用后,将调用
// OnFinalRelease。  基类将自动
// 删除该对象。  在调用该基类之前,请添加您的
// 对象所需的附加清理代码。

[!output base_CLASS]::OnFinalRelease();
}
[!endif]


BEGIN_MESSAGE_MAP([!output CLASS_NAME] [!output base_CLASS])
END_MESSAGE_MAP()

[!if AUTOMATION || CREATABLE]

BEGIN_DISPATCH_MAP([!output CLASS_NAME] [!output base_CLASS])
END_DISPATCH_MAP()

// 注意: 我们添加 IID_I[!output CLASS_NAME_ROOT] 支持
//  以支持来自 VBA 的类型安全绑定。  此 IID 必须同附加到 .IDL 文件中的
//  调度接口的 GUID 匹配。

// {[!output DISPIID_REGISTRY_FORMAT]}
static const IID IID_I[!output CLASS_NAME_ROOT] =
[!output DISPIID_STATIC_CONST_GUID_FORMAT];

BEGIN_INTERFACE_MAP([!output CLASS_NAME] [!output base_CLASS])
INTERFACE_PART([!output CLASS_NAME] IID_I[!output CLASS_NAME_ROOT] Dispatch)
END_INTERFACE_MAP()
[!endif]
[!if CREATABLE]

// {[!output CLSID_REGISTRY_FORMAT]}
IMPLEMENT_OLECREATE_FLAGS([!output CLASS_NAME] “[!output TYPEID]“ afxRegApartmentThreading [!output CLSID_IMPLEMENT_OLECREATE_FORMAT])
[!endif]


// [!output CLASS_NAME] 消息处理程序

评论

共有 条评论