DOBON.NET DOBON.NETプログラミング掲示板過去ログ

IPictureDisp型への代入

環境/言語:[環境(WinXP)、使用言語(C#)、.NET Framework(1.1)]
分類:[.NET]

VBで、あるActiveXを使い開発したソフトをC#を使い
.NET用にソースを直しています。

その中に
 構文:object.Picture
 データ型:IPictureDisp型
というプロパティがあり、
VBの時には
 Set spot.Picture = LoadPicture("C:\Spot.ico")
という形でアイコンを読み込んでいたのですが
VBと違いLoadPicture関数がないので困っています。

LoadPicture関数の代わりということで
http://www.neowin.net/forum/lofiversion/index.php/t82254.html
を参考に
 spot.Picture = System.Drawing.Image.FromFile("C:\Spot.ico");
などとしたもののIPicureDisp型とImage型なのでエラーが出てしまいます。

参考になるページやヒントをご存知の方がいらっしゃいましたら
よろしくお願いいたします。
ニュースグループにImageオブジェクトをIPictureDispに変換するコードが投稿されています。

http://groups.google.co.jp/group/microsoft.public.dotnet.framework.interop/msg/7fb170eac2a41da4?hl=ja
返信ありがとうございました。
教えていただいたニュースグループで解決できました。

以下、コードを記述しておきます。

--呼び出し側--
System.Drawing.Image img = System.Drawing.Image.FromFile("C:\\Spot.ico");
Spot.Picture = (IPictureDisp)IPictureDispHost.GetIPictureDisp(img);

--変換するクラス--
internal class IPictureDispHost: AxHost
{
    public IPictureDispHost(): base("")
    {
    }

    public static object GetIPictureDisp(Image Image)
    {
        return IPictureDispHost.GetIPictureDispFromPicture(Image);
    }
}

以上。

本当にありがとうございました。
Googleで検索していましたが、グループという存在を知りませんでした。
これから活用しそうです。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板