パスワード付きWordファイルのオープン失敗時の例外処理
少し前にも同様の質問を投稿したのですが、内容が曖昧だったと感じたので、改めて質問させていただきます。
目的は、Microsoft Wordで作成した文章ファイルにパスワードがかかっているか否かを判定することです。
現時点では、ファイルオープン時にパスワード入力を失敗させた Runtime Error を catch することで対処しようとしているのですが、このエラーの掴み方が分かりません。
エラーメッセージには abnomal program termination と出ています。
このエラーを掴む方法をどなたかご存知ないでしょうか。
よろしくお願いします。
↓ソースは以下の通りです↓
#import "C:\Program Files\Microsoft Office\Office\Mso9.dll" no_namespace rename("DocumentProperties", "DocumentPropertiesDOC")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" no_namespace
#import "C:\Program Files\Microsoft Office\Office\Msword9.olb" rename("ExitWindows", "ExitWindowsDOC")
try {
using namespace Word;
_ApplicationPtr pAPP;
COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//Wordの起動
pAPP.CreateInstance(L"Word.Application");
pAPP->Visible = TRUE;
//新規ドキュメントを作成
DocumentsPtr pDocuments = pAPP->GetDocuments();
//任意のパスワード付きファイルをオープン。
//5要素目は正しくないパスワード。
_DocumentPtr pDocument =
pDocuments->Open(COleVariant("C:\\test.doc"),vOpt,vOpt,vOpt,
COleVariant("password"),vOpt,vOpt,vOpt,vOpt,vOpt, vOpt, vOpt);
//Wordを閉じる
pAPP->Quit();
}
catch(CException *e) {
AfxMessageBox("キャッチ");
e->Delete();
}
お礼
早速のご指導有難うございました