TWebBrowserを使ってWordを表示・編集するプログラムを作成しているのですが、フォームを閉じる時にTWebBrowserのQuit処理を行うのですが、
「RPCサーバを利用できません」
をいうエラーが表示されます。
原因としては、プロセスのWORD.EXEが終了しているのかと思いましたが、
タスクマネージャで確認したところWORD.EXEは終了していないのに、上記のようなエラーが発生します。
このエラーの原因と、回避方法を模索しているのですが、どうも行き詰まっています。
何が原因なのでしょうか?
private
wdapp : OleVariant;
procedure TFrmMain.FormShow(Sender: TObject);
wdapp := CreateOleObject( 'Word.Application' );
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
try
if not CloseFlg then begin
//入力補助開放
with CoKCCMeEditor.Create do
ParentClose;
if EditFirstFlg then
Ole_Edit.DestroyObject;
if QuoteFirstFlg then
Ole_Quote.DestroyObject;
wdapp.Quit;//■←ここでエラー
end;
//OLEコンテナのUninitialize呼出
except
on E: Exception do
HCMessageDlg(E.Message, mtError, [mbOk], 0, (Self.Left+(Self.Width div 2)));
end;
OleUninit;
みたところサーバとのやりとりでエラーが発生してるもよう。
上記のソースにはOLEオートメーションオブジェクトとTWebBrowserの絡みがまったく記載されていないので断定できないのだが、文書ファイルはネットワーク経由で参照しているのではないか?
そうなるとサーバとの認証で問題が発生するのは納得いくし。
ローカルの文書ファイルを読み込んでみて比較検証するとよろしかろう。
ツイート | ![]() |