VC如何读取Word文档中的批注内容
第一步 import office com对象库
Stdafx.h.
#import "C:\Program Files (x86)\Common Files\MicrosoftShared\OFFICE14\MSO.dll" \
rename("RGB","_OfficeRGB")
#import "C:\Program Files (x86)\Common Files\MicrosoftShared\VBA\VBA6\VBE6EXT.OLB"
#import "D:\Program Files\MicrosoftOffice\Office14\MSWORD.OLB"
rename("ExitWindows","_OfficeExitWindows") \
rename("FindText","_ScriptFindText")
第二步 .cpp
if(FAILED(::CoInitialize(NULL)))
return;
HRESULT hr = S_OK;
Word::_ApplicationPtr pApp=NULL;
try
{
pApp.CreateInstance (__uuidof(Word::Application),NULL);
pApp ->PutVisible(VARIANT_TRUE);
Word::_DocumentPtr pDoc=pApp->GetDocuments()->Open(&(_variant_t("C:\\FreeX.docx")));
_bstr_t content=pDoc->Content->Text;
longnCmtCount = pDoc->Comments->Count;
TRACE("Word content: %s\n", (LPCTSTR)(_bstr_t)content);
for(long i = 1; i < nCmtCount+1; i++)
{
Word::CommentPtrpCmt= pDoc->Comments->Item(i);
_bstr_t bstrCmt =pCmt->Range->Text;
TRACE("WordComments[%d]: %s\n", i, (LPCTSTR)bstrCmt);
pCmt.Release();
pCmt = NULL;
}
pDoc->Close();
pApp->Quit();
//release documentptr smart pointer;
pDoc.Release();
}
catch(_com_error pCome)
{
TRACE("Error info: %s\n", (LPCTSTR)(_bstr_t)(pCome.Description()));
TRACE("Error info: %s\n", (pCome.ErrorMessage()));
}
if(pApp)
{
pApp.Release();
}
::CoUninitialize();