■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; }
|
|