mcrblog

vcpp-ml

2003年05月

30

[vcpp 00060825] Re: SysListView32からのイメージリスト取得

神戸です.

> > 3. 共有メモリ上にデータを書き込むIStreamを作成

ですが、具体的にどのようにすればよろしいでしょうか?

そもそもストリームというものが分かっていません.
Image_Write()をする前にストリームを作成してそこにImageListを書き込む
感じだと思うのですが。。

ご教授よろしくお願いいたします.
29

[vcpp 00060824] HTMLの記述でNetScape6からActiveXを呼ぶ方法。

 いつもお世話になっております。
早速ですが、お聞きしたい事が2点あります。

1: HTMLの記述方法。
  1つ目は、筋違いな質問かもしれませんが、HTMLの
 記述方法が解らずメイルしています。
  ActiveX形式で「MyActivx.OCX」を自作したのですが、
 NetScape6で動作させるためにはどのようなHTMLを
 書けばよいのでしょうか?。

 下記のように記述しています。(IEでは正常に動作しています。)
    <OBJECT ID=MyActive
         WIDHT=100 HEIGHT=100
         CLASSID=clsid:856B2B1C-2CFF-496A-98EF-xxxxxxxxxx>
    </OBJECT>

    NetScapeで動作させるために <embed></embed>タグを
 使用するよう説明がありますが、具体的な書き方が解らないでいます。


2: 「通常使うブラウザ」
  2点目は「通常使うブラウザ」のEXEファイルを取得する方法です。
 ShellExecuteEx()や、FindExecutable()関数を使用して取得する
 説明があるのは知っていますが、
 ShellExecuteEx()はブラウザが起動してしまいますし、
  FindExecutable()は存在しているファイルを指定しなければなりません。
 これら以外で「通常使うブラウザ」を取得する方法はあるのでしょうか?

色々と書きましたがよろしくお願いいたします。


Windows 2000 SP3
VC6.0  SP5
HASHI
29

[vcpp 00060823] Re: SysListView32からのイメージリスト取得

中村様
神戸です
ご教授ありがとうございます.

> 1. hSrcWndをフックしてDLLを注入
> 2. フック内でListView_GetImageListでイメージリストを取得
> 3. 共有メモリ上にデータを書き込むIStreamを作成
> 4. ImageList_WriteでイメージリストをIStreamに書き出す
> 5. 自分のプロセスに戻って、IStreamで書き出した共有メモリ上に読み込み用の
>   IStreamを作成
> 5. 作成したIStreamからListView_Readでイメージリストを読み込む

上記内容を参考にWebをしらべたら
http://techtips.belution.com/ja/vc/0026/
に同じような内容が掲載されてました.

Hook処理なんて初めてなのでこれから長くハマりそうですが、
トライしたいと思います.

#だんだん深みにはまっていきます.
29

[vcpp 00060822] Re:消せないファイル

かもめです。

> 無事に消せてよかったですね。
> 参考までにOSとファイルシステムを教えていただけませんか?
OSはWin2000です。
ファイルシステムはNTFSになります。

-- 
かもめ <k...@yahoo.co.jp>
29

[vcpp 00060821] Re: SysListView32からのイメージリスト取得

中村です。

At 29 May 2003 10:54:49 +0900 Yasuhiro.Kambe wrote:
> hImageSrc = ListView_GetImageList(hSrcWnd); //※1
> ImageList_Destory(hImageDst);
> hImageDst = NULL;
> hImageDst = ImageList_Duplicate(hImageSrc);  //※2

> としてますが、※1でのイメージ数は0となってしまいます.
> これもプロセスメモリの壁が影響しているのでしょうか?
> ListView(hSrcWnd)でのLVITEMは各イメージ値が割り当てられていました.
> (この呼び出しは共有メモリをつかっておこなってます)
> ということはやはり共有メモリをつかわないと無理ということ!?
> でもどうやって...

こんな感じで出来ないでしょうか(未確認の思い付きです)

1. hSrcWndをフックしてDLLを注入
2. フック内でListView_GetImageListでイメージリストを取得
3. 共有メモリ上にデータを書き込むIStreamを作成
4. ImageList_WriteでイメージリストをIStreamに書き出す
5. 自分のプロセスに戻って、IStreamで書き出した共有メモリ上に読み込み用の
  IStreamを作成
5. 作成したIStreamからListView_Readでイメージリストを読み込む


-- 
Satoshi Nakamura <s...@zak.att.ne.jp>
記事検索
Amazon.co.jp
  • ライブドアブログ