604
社区成员




if(vDoc.OlePropertyGet("ProtectionType") == -1)
ShowMessage("无保护");
else
ShowMessage("有保护");
void CrnUnlockWordFile(String strDocFile, String strPwd)
{
Variant vWordApp, vDoc;
// 启动Word进程
try
{
vWordApp = Variant::CreateObject("Word.Application");
}
catch(...)
{
MessageBox(0, "启动Word出错!",
__FUNC__, MB_OK | MB_ICONERROR);
vWordApp = Unassigned;
return;
}
// 使其可视,在你的应用中可以关闭,也就是设为false
vWordApp.OlePropertySet("Visible", true);
// 打开指定文档
vDoc = vWordApp.OlePropertyGet("Documents").
OleFunction("Open", strDocFile.c_str());
// 获取当前活动的文档对象
vDoc = vWordApp.OlePropertyGet("ActiveDocument");
// 取消保护
vDoc.OleFunction("Unprotect", strPwd.c_str());
// 文档的一些属性
vDoc.OlePropertySet("ReadOnlyRecommended", false);
vDoc.OlePropertySet("Password", "");
vDoc.OlePropertySet("WritePassword", "");
vDoc.OlePropertySet("RemovePersonalInformation", false);
vDoc.OlePropertySet("RemoveDateAndTime", false);
// 文档选项的一些属性
Variant vOptions = vWordApp.OlePropertyGet("Options");
vOptions.OlePropertySet("WarnBeforeSavingPrintingSendingMarkup", false);
vOptions.OlePropertySet("StoreRSIDOnSave", true);
vOptions.OlePropertySet("ShowMarkupOpenSave", true);
// 保存并关闭文档
vDoc.OleFunction("Save");
vDoc.OleFunction("Close");
// 关闭Word进程
vWordApp.OleProcedure("Quit");
// 清场
vDoc = Unassigned;
vWordApp = Unassigned;
MessageBox(0, "结束!",
__FUNC__, MB_OK | MB_ICONINFORMATION);
}