.net CF SHGetFileInfo的问题

trickster 2005-11-25 09:25:50
想使用SHGetFileInfo函数来获取文件图标。

参考了http://www.c2i.fr/code.aspx?IDCode=401的代码,并且在PC上的.NET FF上调试成功。

但是在SmartPhone 2003的.NET CF下面失败,NotSupportException错误~~~

有没有人知道是怎么回事么?

已经Google了一百遍一百遍了~~只在http://www.codecomments.com/Smartphone_Developer_Forum/发现有人提相同的问题,不过他的机器是PPC 2003~~

为什么?为什么啊?
郁闷死了,已经遇到几个问题都是FF上可以但到了CF就出错了~~

主要代码如下:

Public Class FileInfo
Private Const SHGFI_USEFILEATTRIBUTES As Short = &H10S
Private Const SHGFI_ICON As Short = &H100S
Private Const FILE_ATTRIBUTE_NORMAL As Short = &H80S
Private Const SHGFI_TYPENAME As Short = &H400S
Private Const SHGFI_DISPLAYNAME As Short = &H200S
Private Const SHGFI_SMALLICON As Short = &H1S
Private Const SHGFI_LARGEICON As Short = &H0S

'<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)>
Private Structure SHFILEINFO
Dim hIcon As IntPtr
Dim iIcon As Integer
Dim dwAttributes As Integer
'<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szDisplayName As String
'<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> Public szTypeName As String
Public szDisplayName As String
Public szTypeName As String

End Structure

Private Declare Function SHGetFileInfo Lib "coredll.dll" (ByVal pszPath As String, _
ByVal dwFileAttributes As Integer, _
ByRef psfi As SHFILEINFO, _
ByVal cbFileInfo As Integer, _
ByVal uFlags As Integer) As Integer


Public Shared Sub getLargeIcon(ByVal sFileName As String) 'As System.Drawing.Icon
'Return _getIcon(sFileName, SHGFI_LARGEICON Or SHGFI_ICON Or SHGFI_USEFILEATTRIBUTES)
Dim shfi As SHFILEINFO

SHGetFileInfo(sFileName, FILE_ATTRIBUTE_NORMAL, shfi, System.Runtime.InteropServices.Marshal.SizeOf(shfi), SHGFI_LARGEICON Or SHGFI_ICON Or SHGFI_USEFILEATTRIBUTES)'到这里就出错啦
End Sub
End Class
...全文
166 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧