以下是一个简单的示例,演示了如何使用 UpdateRegistry 方法:
#include <afxwin.h>
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
};
class CMyDocTemplate : public COleTemplateServer
{
public:
CMyDocTemplate(CRuntimeClass* pDocClass, CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass);
virtual void UpdateRegistry(BOOL bRegister);
};
BOOL CMyApp::InitInstance()
{
// ...
// 创建文档模板
CMyDocTemplate* pDocTemplate = new CMyDocTemplate(
RUNTIME_CLASS(CDocument), RUNTIME_CLASS(CFrameWnd), RUNTIME_CLASS(CView));
AddDocTemplate(pDocTemplate);
// ...
return TRUE;
}
int CMyApp::ExitInstance()
{
// 在退出应用程序时,调用 UpdateRegistry 方法以取消注册或注册服务器信息
((CMyDocTemplate*)m_pDocManager->m_templateList.GetHead())->UpdateRegistry(FALSE);
return CWinApp::ExitInstance();
}
CMyDocTemplate::CMyDocTemplate(CRuntimeClass* pDocClass, CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass)
: COleTemplateServer(pDocClass, pFrameClass, pViewClass)
{
// 在这里进行模板的连接工作
// 可以包括注册支持的文档类型、添加工厂类等
ConnectTemplate(clsidApp, pDocClass, pFrameClass, pViewClass);
}
void CMyDocTemplate::UpdateRegistry(BOOL bRegister)
{
// 在这里更新注册表信息,根据 bRegister 参数进行注册或取消注册
// ...
// 调用基类的 UpdateRegistry 方法
COleTemplateServer::UpdateRegistry(bRegister);
}
在这个示例中,CMyApp 类继承自 CWinApp,并在 InitInstance 方法中创建了一个文档模板 CMyDocTemplate,该模板继承自 COleTemplateServer。在 ExitInstance 方法中,通过 UpdateRegistry 方法进行注册表信息的更新。
请注意,具体的使用方式可能会根据你的应用程序的需求而有所不同。确保查阅 MFC 的官方文档以获取最准确和最新的信息。
转载请注明出处:http://www.zyzy.cn/article/detail/21587/MFC/COleTemplateServer