请教这个VC6.0开发调用word2007模板程序出现内存异常是什么原因

请问这个VC6.0开发调用word2007模板程序出现内存错误是什么原因?
请问这个VC打开word2007模板出现内存错误是什么原因?
我用的是VC6.0开发工具,word2007.在调用word的dot文件时候出现内存错误。
我单步调试的时候
//利用模板文件建立新文档
WordDoc=WordDocs.Add(&WordTemplate,&vtMissing,&vtMissing,&vtMissing);
在这里出现错误

Unhandled exception in  Report.exe(MFC042D.DLL):0xC000005:Access Violation.

我的模板文件路径是存在的,环境配置也是没问题,编译也对,执行时候出现错误。卡在了这里,做不下去了。
请问有谁也碰到这个问题。

void CReportDlg::OnCreatereport() 
{
if(WordApp.m_lpDispatch==NULL)
{
     if(!WordApp.CreateDispatch("Word.Application",NULL))
 {
       MessageBox("创建服务失败,请重新运行应用程序!","错误");
   PostMessage(WM_QUIT);
 }
}

// * * * * * * * * * * * * * * * * * * * * * * * *

if(WordDoc.m_lpDispatch==NULL)
{
WordApp.SetVisible(true);//true可见 false不可见
WordApp.SetWindowState(1);//0 正常 1 最大化 2最小化
WordDoc=WordApp.GetDocuments();
//模板文件路径
_variant_t WordTemplate="C:\\报告单.dot";//  \\为转义字符
//利用模板文件建立新文档
WordDoc=WordDocs.Add(&WordTemplate,&vtMissing,&vtMissing,&vtMissing);

//由于用户会对WORD进行一些个性化设置,但用户的设置会引起一些误操作,以下代码设置
//Word"工具-选项-视图"中的一些选项
window=WordApp.GetActiveWindow();
view=window.GetView();
view.SetShowPicturePlaceHolders(false);//不显示图片框
view.SetShowBookmarks(false);//不显示域代码
//以下程序中的植入WORD模板中的标题
bookmark=bookmarks.Item(&_variant_t("Office"));
//Office模板中对应书签名
range=bookmark.GetRange();
range.SetText("Faset-High 工作室");

//可用CString 类型替换姓名
bookmarks=WordDoc.GetBookmarks();
bookmark=bookmarks.Item(&_variant_t("Name"));
//Name模板中对应书签名
range=bookmark.GetRange();
range.SetText("岳亮");

//性别
bookmark=bookmarks.Item(&_variant_t("Sex"));
range=bookmark.GetRange();
range.SetText("男");

bookmark=bookmarks.Item(&_variant_t("Age"));
range=bookmark.GetRange();
range.SetText("21");

bookmark=bookmarks.Item(&_variant_t("Career"));
range=bookmark.GetRange();
range.SetText("程序员");


 // 这段代码是用剪切板传递数据,可传送文字、图像、运行该程序时
 //  剪贴板中必须要有数据,否则出错

/*

bookmark=bookmarks.Item(&_variant_t("PicureA"));
range=bookmark.GetRange();
range.Paste();
//图A  \\为转义字符
bookmark=bookmarks.Item(&_variant_t("PicureA"));
range=bookmark.GetRange();
fields=WordDoc.GetFields();
field=fields.Add(range,&vtMissing,&_variant_t(INCLUDEPICUTRE \'C:\\\\LOVEA.jpg\'),&_variant_t(true));
//图B
bookmark=bookmarks.Item(&_variant_t("PicureB"));
range=bookmark.GetRange();
fields=WordDoc.GetFields();
field=fields.Add(range,&vtMissing,&_variant_t(INCLUDEPICUTRE \'D:\\\\LOVEA.jpg\'),&_variant_t(true));

*/
//个人简历
bookmark=bookmarks.Item(&_variant_t("Say"));
range.SetText("感谢《电脑编程技巧与维护》杂志社为我们提供了一个交流,探讨的乐园,我本人对Office的二次开发有一定的了解,希望能与高手交流一下心得!");
_variant_t Report="C:\\my.doc";//报告存放路径
//保存文件,并设置打开时的秘密
_variant_t ReportPassWord="MY";
WordDoc.SaveAs(&Report,&vtMissing,&vtMissing,&ReportPassWord,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing);
//释放所有占用的资源
window.ReleaseDispatch();
view.ReleaseDispatch();
range.ReleaseDispatch();
fields.ReleaseDispatch();
field.ReleaseDispatch();
bookmark.ReleaseDispatch();
bookmarks.ReleaseDispatch();
}
else
{
MessageBox("对不起,上一报表正在处理中,请在当前报表打印完毕后,再生成新的报表!","错误");

}


}
//////////////////////////////////////////////////////////////////////////

void CReportDlg::OnPrintview() 
{
//控制打印预览
if(!WordApp.GetPrintPreview())
WordApp.SetPrintPreview(true);
else
WordApp.SetPrintPreview(false);
}
//////////////////////////////////////////////////////////////////////////

void CReportDlg::OnPrint() 
{
//打印当前文档
//18个参数
WordDoc.PrintOut(&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing);
WordDoc.Close(&vtMissing,&vtMissing,&vtMissing);
//关闭当前文档
WordDocs.ReleaseDispatch();
WordDoc.ReleaseDispatch();

}
//////////////////////////////////////////////////////////////////////////

------解决思路----------------------
打补丁

怎么还在用v6,赶快换啊,很多都不兼容了