16,473
社区成员
发帖
与我相关
我的任务
分享
// Word11.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
#include <comdef.h>
#pragma warning (disable:4146)
#pragma warning (disable:4786)
#import "C:/Program Files/Common Files/Microsoft Shared/OFFICE11/mso.dll" \
rename("RGB", "MSORGB") \
rename("DocumentProperties", "MSODocumentProperties")
using namespace Office;
#import "C:/Program Files/Common Files/Microsoft Shared/VBA/VBA6/VBE6EXT.OLB" \
no_namespace
#import "C:/Program Files/Microsoft Office/OFFICE11/MSWORD.OLB" \
rename("ExitWindows", "WordExitWindows") \
rename("FindText", "WordFindText")
using namespace Word;
struct StartOle {
StartOle() { CoInitialize(NULL); }
~StartOle() { CoUninitialize(); }
} _inst_StartOle;
void dump_com_error(_com_error &e)
{
_tprintf(_T("Oops - hit an error!\n"));
_tprintf(_T("\a\tCode = %08lx\n"), e.Error());
_tprintf(_T("\a\tCode meaning = %s\n"), e.ErrorMessage());
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
_tprintf(_T("\a\tSource = %s\n"), (LPCTSTR) bstrSource);
_tprintf(_T("\a\tDescription = %s\n"), (LPCTSTR) bstrDescription);
}
int ConvWord2XLM(LPCTSTR szSrc, LPCTSTR szDst)
{
int iRet = 0;
_ApplicationPtr pWord;
if(pWord.CreateInstance(__uuidof(Word::Application)) == S_OK)
{
try
{
pWord->PutVisible(VARIANT_FALSE);
DocumentsPtr pDocs = pWord->Documents;
_DocumentPtr pDoc = pDocs->Open(&_variant_t(szSrc));
pDoc->SaveAs(&_variant_t(szDst), &_variant_t((long)wdFormatXML),
&vtMissing, &vtMissing, &_variant_t(0L));
pDocs->Close();
iRet = TRUE;
}
catch(_com_error & e)
{
dump_com_error(e);
}
pWord->Quit();
}
return iRet;
}
int _tmain(int argc, TCHAR* argv[])
{
ConvWord2XLM(_T("C:\\a.doc"), _T("C:\\aa.xlm"));
printf("Hello World!\n");
return 0;
}