hmpv+秀丸メール持ち出しキットNo.09024
Iranoan さん 06/01/13 17:26
 
 秀丸パブリッシャー担当さん今日は、Iranoan です。
 秀丸メール持ち出しキットを使ったときも秀丸パブリッシャーが利用できる
ようにして頂けないでしょうか? 具体的には、hmpv.dll, hidemaruapi.dll と
Template フォルダが TuruKame.exe が同じフォルダに有った時は、印刷/プレ
ヴューと loaddll による hidemaruapi.dll の利用をできるようにして頂きた
いのです。
 こちらの環境は、WindowsXP+IE6.0です。

[ ]
RE:09024 hmpv+秀丸メール持ち出しキットNo.09025
秀まるお さん 06/01/13 17:44
 
 ここでも僕がコメントしてしまいますが、秀丸パブリッシャーは持ち出し可能
には出来ないです。というのは、秀丸パブリッシャーの一部(プレビュー部分)
がVisualBasicで作成されてまして、そのVisualBasicで作成された処理とC++言
語で作成された処理との連携には、「COM」(Component Object Model)という
仕組みを使っています。その「COM」というのは、regsvr32.exeとかを使ってレ
ジストリに登録してやる必要があります。

 なので無理です。

[ ]
RE:09025 hmpv+秀丸メール持ち出しキットNo.09027
カモノハシ さん 06/01/13 18:19
 
こんにちは、いつもお世話になっております、カモノハシです。

少しだけコメントを……
・VBランタイムを同梱
・必要なコンポーネントも同梱
・レジストリに登録されていなければ登録して終了時に解除(DllRegisterServerとか
でも)
ってすると不可能ではないような……。
そこまでコストをかけてまでやるメリットはそう無いような気もしますが。

[ ]
RE:09025 hmpv+秀丸メール持ち出しキットNo.09028
Iranoan さん 06/01/13 18:46
 
 秀まるおさん今日は、Iranoan です。
 こちらも御覧になっていたんですね(^^)。
> VisualBasicで作成された処理とC++言
> 語で作成された処理との連携には、「COM」(Component Object Model)という
> 仕組みを使っています。その「COM」というのは、regsvr32.exeとかを使ってレ
> ジストリに登録してやる必要があります。
 そうなんですか。LoadLibrary で読み込んでということも出来ないんですね。

[ ]
RE:09027 hmpv+秀丸メール持ち出しキットNo.09030
秀まるお さん 06/01/13 22:28
 
> ・レジストリに登録されていなければ登録して終了時に解除(DllRegisterServerとか
> でも)

 これはこれでちょっと反則なんじゃないかと思います。例えば途中で電源が切
れたりすると、レジストリにゴミが残ります。(しかもリムーバブルメディア上
のファイルへのCOMオブジェクトの登録データという、かなり悪質な情報が)

[ ]
RE:09028 hmpv+秀丸メール持ち出しキットNo.09031
秀まるお さん 06/01/13 22:29
 
>  そうなんですか。LoadLibrary で読み込んでということも出来ないんですね。

 LoadLibraryしてC言語から(それ用に用意された関数を)呼び出して使うこと
は出来ると思いますけど、VBから呼び出すのには、レジストリに登録されてない
とダメです。

[ ]
RE:09031 hmpv+秀丸メール持ち出しキットNo.09032
Iranoan さん 06/01/13 23:52
 
 秀まるおさん今日は、Iranoan です。
>  LoadLibraryしてC言語から(それ用に用意された関数を)呼び出して使うこと
> は出来ると思いますけど、VBから呼び出すのには、レジストリに登録されてない
> とダメです。
 簡単に始められると話には聞いているのですが、こういうときは VB は不便
なんですね。

[ ]
RE:09030 hmpv+秀丸メール持ち出しキットNo.09033
カモノハシ さん 06/01/14 01:53
 
こんばんは、いつもお世話になっております、カモノハシです。
>  これはこれでちょっと反則なんじゃないかと思います。例えば途中で電源が切
> れたりすると、レジストリにゴミが残ります。(しかもリムーバブルメディア上
> のファイルへのCOMオブジェクトの登録データという、かなり悪質な情報が)
まったく仰るとおりで。
これを回避する方法を考えると、
VB製のプロセスにフックしてCOM呼び出しを……げほげほ
は実験ならともかくやりたかないですね。
そうすると実行環境に既に入っているときはそれを呼び出す。(実際に持ちだしキ
ットをまだ使っていないので分からないのですが、既に出来てる?)
呼び出せなかったら「終了時に解除ツールを実行せよ」ってダイアログを出して勝
手に登録とか。メインプロセス終了時には自動的に解除して、ツールを呼び出し忘
れても大丈夫にはする。さらに余計なお世話をするなら、テンポラリに解除exeを
放り込んで終了時実行と再起動時削除を登録する。
システムクラッシュ後に呼び出し忘れなければ消えます。
とか……どっちにしてもかなりキワモノかな。

[ ]
RE:09032 hmpv+秀丸メール持ち出しキットNo.09035
いいじま さん 06/01/16 09:13
 
いいじま(でるもんた)です。

>> LoadLibraryしてC言語から(それ用に用意された関数を)呼び出して使うこと
>>は出来ると思いますけど、VBから呼び出すのには、レジストリに登録されてない
>>とダメです。
>
>  簡単に始められると話には聞いているのですが、こういうときは VB は不便
> なんですね。

あれ? DLLの関数を
extern "C" int WINAPI HogeHoge(char *a, etc) //wchar_tを使うにはVB側で小細工
が必要
とかで定義して、VB側では
Public Declare Function Lib "Hoge.dll" HogeHoge (ByVal a As String, etc) As
Long
とか書けば、単純なDLLの呼び出しはできるはずですが…。

COMを使う場合にレジストリへの登録が必要なのは、呼出先のDLLがVBで書かれていよ
うと
C/C++で書かれていようと事情は同じはずです。

[ ]
RE:09033 hmpv+秀丸メール持ち出しキットNo.09039
秀まるお さん 06/01/16 21:28
 
 というか、だいたいにして、ネットカフェとかのマシンて、ソフトインストー
ル禁止というか、レジストリへの書き込みなんて出来ないんじゃないだろか。で
ないと、スパイウェアとかインストールされそうだし。

 まぁよく知らないけど。

[ ]
RE:09035 hmpv+秀丸メール持ち出しキットNo.09040
秀丸アドイン担当 さん 06/01/17 10:59
 

 いつもお世話になっております。

 秀丸パブリッシャーの場合は、秀丸エディタから、COMオブジェクトのDLL
「hmpv.dll」を呼び出す関係上レジストリ登録は避けては通れないのではないか
と思います。

 そんなわけで、秀丸パブリッシャー及びHidemarnet Explorer を持ち出しキッ
トに対応させるのは現状では難しいです。

[ ]
RE:09040 hmpv+秀丸メール持ち出しキットNo.09041
秀まるお さん 06/01/17 11:12
 
 COM形式でなくても実現出来たんだろうけど、COMにした方がパラメータの受け
渡しとかがやりやすいので、そうしてしまったってことだと思いますが。

 持ち出し用にも出来るようにってことは想定してなかったので。

[ ]