打开一个word文件

人,唯一剥夺不了的,只有知识 / 2023-08-23 / 原文

	CoInitialize(NULL);//初始化COM,与最后一行CoUninitialize对应
	//CPageSetup pagesetup=doc.get_PageSetup();//页面设置相关,没用到
	//CApplication app;
	if (!m_app.CreateDispatch(_T("word.application"))) //启动WORD
	{
		MessageBox(NULL, L"waring", L"CreateDispatch word.application", MB_OK);
		return LAUCHWORDERROR;
	}
	//AfxMessageBox(_T("WORD 已经运行启动啦,你可以用Ctrl+Alt+Del查看"));

	//m_app.put_Visible(TRUE); //设置WORD可见。
	m_app.put_Visible(TRUE); //设置WORD不可见。

	LPDISPATCH tmpDocs = NULL;
	tmpDocs = m_app.get_Documents();
	if (tmpDocs == NULL)
	{
		MessageBox(NULL, L"waring", L"tmpSel empty", MB_OK);
		return GETDOCUMENTSERROR;
	}


	COleVariant varOPt(DISP_E_PARAMNOTFOUND, VT_ERROR);
	m_docs = tmpDocs;
	//m_docs.Add(new CComVariant(_T("")), new CComVariant(FALSE), new CComVariant(0), new CComVariant());//创建新文档
	m_docs.Open(COleVariant(savePath), varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt, varOPt);
 

	//LPDISPATCH tmpDoc = NULL;
	tmpDoc = m_app.get_ActiveDocument();//活动文档
	if (tmpDoc == NULL)
	{
		MessageBox(NULL, L"waring", L"tmpDoc empty", MB_OK);
		return GETACTIVEDOCUMENTERROR;
	}

	m_doc = tmpDoc;

	m_docs.ReleaseDispatch();
	m_doc.ReleaseDispatch();
 
	m_app.Quit(new CComVariant(FALSE), new CComVariant(), new CComVariant());
	m_app.ReleaseDispatch();
	CoUninitialize();//对应CoInitialize