C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

wordのole32.dll直接参照


(過去ログ 140 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■82050 / inTopicNo.1)  wordのole32.dll直接参照
  
□投稿者/ ドリームジャーニー (1回)-(2016/12/02(Fri) 17:55:27)

分類:[VB.NET/VB2005 以降] 

今扱っているシステムで、wordに関して特殊なやり方をしています。

システムの概要としては某資格試験の問題管理を行っているシステムで、

言語 :VB.net
DB :SQLServer2012
問題文の保存形式:word文書をSQLServerにバイナリ保存

といった内容です。

画面項目にOLEコンテナチックなコントロール(OLEコンテナではありません自生クラスです)
が配置されておりクラスのダブルクリックイベントでコントロールにある問題文が、
Wordで起動する(ファイル名はDBに保存しているものでなくテンプ領域に機能ID.tmp.docの形式になる)
といった見た目です。

ここで特殊なのは、Form_Loadイベントでコントロールに
DBに保存したバイナリデータを読み込んでGetObjectForIUnknownメソッドでOLEオブジェクトとして生成し、
ダブルクリックイベントではそのOLEオブジェクトをコピー新規のような形で
Wordで表示する(これも一般的なWordオブジェクトを使うのではなくDoVerbメソッドをつかいOLE動詞命令として開いている)
仕様になっている点です。

やっている中身は、OLEコンテナやWordオブジェクトのopenメソッドを使うのと大して変りないのかもしれませんが、
わざわざ古い技術を使っている感じで、
ロジックの難解化を招いており、ちょっとした改修でも多大な工数(主に調査とテスト工数)がかかってしまう現状になっています。

当面は、この仕組みを変えるほどの予算は出ないと思いますが、
数年先(2020年ごろ)のシステム全面見直しの際に、
OLEコンテナ or 素直にWordオブジェクトでWordマクロチックなコードで実装するやり方に変える提案をお客様にしようと考えています。
その場合、逆に、ole32.dllの関数群を直接呼び出すやり方を使用しなくするときのデメリットは何が考えられるでしょうか?

思いつくところをお答えいただければ幸いです。
よろしくお願いします。












引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -