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

わんくま同盟

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

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


(過去ログ 12 を表示中)
■3152 / )  Re[8]: IExtractImageによるサムネイルの取得
□投稿者/ zen (5回)-(2007/04/24(Tue) 20:04:00)
No3151 (シャノン さん) に返信
> ■No3150 (シャノン さん) に返信
>>俺の環境で試したら、GetLocation が E_PENDING を返してきました。
>>この場合、IRunnableTask を使ってごにょごにょするんだと思うんですが、IRunnableTask へのキャストが成功しません。
>>どーしよー。
>
> わけわかんねぇ。
> 依然として GetLocation が E_PENDING を返すくせに、IRunnableTask にキャストできないのは変わらず。
> が、要求するサイズ(GetLocation の 第4引数)を 96 x 96 にしたら、Extract が成功した。
> 640 x 480 で試したら、Extract は E_FAIL を返してきやがった。
>
> ちなみに俺の環境は、WinXP Pro SP2 + Adobe Reader 8。

こっちの環境もWinXP pro SP2 + Adobe Reader 8ですが、サイズを96×96でやってもダメでした。

それ以前に、GetLocation等の定義が違っているのでしょうか。
戻りをvoidにしてしまっているのでGetLocationで何も返ってきません。
また、VS2005ではGetLocationでエラーになり
System.Runtime.InteropServices.COMException' の初回例外が WindowsApplication1.exe で発生しました。
と表示されます。パワーポイントなどでは問題なくサムネイルがとれるのですが・・・

以下にIExtractImage等の定義を書くので間違いを指摘して頂けないでしょうか。
いろいろなサイトから切り貼りして持ってきており、意味を理解せずに
やっています。

[ComImportAttribute()]
[GuidAttribute("BB2E617C-0920-11d1-9A0B-00C04FC2D6C1")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IExtractImage
{
int GetLocation(
[Out, MarshalAs(UnmanagedType.LPWStr)]
StringBuilder pszPathBuffer,
int cch,
ref int pdwPriority,
ref SIZE prgSize,
int dwRecClrDepth,
ref int pdwFlags);

void Extract(
out IntPtr phBmpThumbnail);
}

[StructLayoutAttribute(LayoutKind.Sequential)]
public struct SIZE
{
public int cx;
public int cy;
}






返信 編集キー/


管理者用

- Child Tree -