精易论坛

标题: SetIPropertyStore 写入缩略图 [打印本页]

作者: SummerTail    时间: 2025-6-22 09:04
标题: SetIPropertyStore 写入缩略图
站内文档 https://125.confly.eu.org/thread-14708108-1-1.html

[C#] 纯文本查看 复制代码
propertyDescription
   name = System.ThumbnailStream
   shellPKey = PKEY_ThumbnailStream
   formatID = F29F85E0-4FF9-1068-AB91-08002B27B3D9
   propID = 27
   SearchInfo
      InInvertedIndex = false
      IsColumn = false
   typeInfo
      type = Stream
      IsInnate = false


type = Stream 这里要求文件流,不知道怎么搞了

微软文档:https://learn.microsoft.com/en-us/windows/win32/properties/props-system-thumbnailstream

formatID转换文档: https://125.confly.eu.org/forum.php?mod ... 53&pid=22477578



作者: 同学麻烦让让    时间: 2025-6-22 17:54
createstreamonhglobal
作者: SummerTail    时间: 2025-6-22 19:46
  
子程序名返回值类型公开备 注
媒体属性_取编码ID字节集 
参数名类 型参考可空数组备 注
formatID文本型
变量名类 型静态数组备 注
szBuf字节集 
formatID = 子文本替换 (formatID, “-”, , , , )
szBuf = 字节集_十六进制到字节集 (formatID)
返回 (AdjustString (取指针_字节集型 (szBuf) + 2, 2)AdjustString (取指针_字节集型 (szBuf), 2)AdjustString (取指针_字节集型 (szBuf) + 4, 4)取字节集右边 (szBuf, 8))
子程序名返回值类型公开备 注
媒体属性_置属性W逻辑型 
参数名类 型参考可空数组备 注
formatID字节集
文件路径字节集
属性字节集
变量名类 型静态数组备 注
szPropKey字节集 
pbVal字节集 
pv整数型 
szPropKey = #FMTID_SummaryInformation到字节集 (2)
pbVal = 取空白字节集 (16)
pv = 取指针字节集_ (pbVal)
__set_short (pv, 0, 66)  ' VT_STREAM
__set (pv, 8, 取指针_字节集型 (属性))
返回 (SetIPropertyStore (文件路径, szPropKey, pbVal))
子程序名返回值类型公开备 注
_临时子程序  
变量名类 型静态数组备 注
file字节集 
Stream整数型 
ret逻辑型 
file = 读入文件 (“C:\Users\Administrator\Downloads\cover.jpg”)
CreateStreamOnHGlobal (_取指针字节集 (file), 假, Stream)
ret = 媒体属性_置属性W (媒体属性_取编码ID (“F29F85E0-4FF9-1068-AB91-08002B27B3D9”)到字节集 (27), Ansi到Unicode (“C:\Users\Administrator\Downloads\dadadad1 (2).m4a”, ), 到字节集 (Stream))
调试输出 (ret)


i支持库列表   支持库注释   
spec特殊功能支持库



作者: SummerTail    时间: 2025-6-22 19:46
同学麻烦让让 发表于 2025-6-22 17:54
createstreamonhglobal

大佬能否给个代码,不会用啊 精益的代码我贴到下面了
作者: 同学麻烦让让    时间: 2025-6-23 08:55
SummerTail 发表于 2025-6-22 19:46
大佬能否给个代码,不会用啊 精益的代码我贴到下面了

CreateStreamOnHGlobal不是这么勇的,论坛或者百du肯定找得到这个API的用法,精易模块里搜索一下也有可能,另外置属性那个方法第三个参数设置为整数型然后直接传入ISTREAM指针
作者: SummerTail    时间: 2025-6-23 19:00
同学麻烦让让 发表于 2025-6-23 08:55
CreateStreamOnHGlobal不是这么勇的,论坛或者百du肯定找得到这个API的用法,精易模块里搜索一下也有可能 ...

SetIPropertyStore 第三个参数要求的是字节集,我还发现个类是字节流放到里面也不行,要不大佬动动手搞一下呢

补充内容 (2025-6-23 19:02):
.版本 2

.子程序 媒体属性_置封面W, 逻辑型
.参数 文件路径, 字节集
.参数 封面, 整数型
.局部变量 szPropKey, 字节集
.局部变量 pbVal, 字节集
.局部变量 pv...
作者: SummerTail    时间: 2025-6-23 19:02
  
子程序名返回值类型公开备 注
媒体属性_置封面W逻辑型 
参数名类 型参考可空数组备 注
文件路径字节集
封面整数型
变量名类 型静态数组备 注
szPropKey字节集 
pbVal字节集 
pv整数型 
szPropKey = #FMTID_SummaryInformation到字节集 (27)
pbVal = 取空白字节集 (16)
pv = 取指针字节集_ (pbVal)
__set_short (pv, 0, 66)  ' VT_STREAM
__set (pv, 8, 封面)
返回 (SetIPropertyStore (文件路径, szPropKey, pbVal))

作者: 同学麻烦让让    时间: 2025-6-23 22:09
SummerTail 发表于 2025-6-23 19:00
SetIPropertyStore 第三个参数要求的是字节集,我还发现个类是字节流放到里面也不行,要不大佬动动手搞一 ...

说错了,是媒体属性_置属性W这个方法的第三个参数属性设置为整数型,当然用原版的字节集也行只是要转化一下,主要还是createstreamonhglobal这个函数没有用对
作者: SummerTail    时间: 2025-6-23 22:47
同学麻烦让让 发表于 2025-6-23 22:09
说错了,是媒体属性_置属性W这个方法的第三个参数属性设置为整数型,当然用原版的字节集也行只是要转化一 ...

有封装好的字节流类,我传过去不好使
作者: SummerTail    时间: 2025-6-23 22:48
  
子程序名返回值类型公开备 注
_临时子程序  
变量名类 型静态数组备 注
file字节集 
IStream字节流 
file = 读入文件 (“C:\Users\Administrator\Downloads\cover.jpeg”)
IStream.创建字节流 (file)
调试输出 (媒体属性_置封面W (Ansi到Unicode (“C:\Users\Administrator\Downloads\03. 逆光.mp3”, ), IStream.取字节流指针 ()))
子程序名返回值类型公开备 注
媒体属性_置封面W逻辑型 
参数名类 型参考可空数组备 注
文件路径字节集
封面整数型
变量名类 型静态数组备 注
szPropKey字节集 
pbVal字节集 
pv整数型 
szPropKey = #FMTID_SummaryInformation到字节集 (27)
pbVal = 取空白字节集 (16)
pv = 取指针字节集_ (pbVal)
__set_short (pv, 0, 66)  ' VT_STREAM
__set (pv, 8, 封面)
返回 (SetIPropertyStore (文件路径, szPropKey, pbVal))


i支持库列表   支持库注释   
spec特殊功能支持库

作者: SummerTail    时间: 2025-6-23 22:49
同学麻烦让让 发表于 2025-6-23 22:09
说错了,是媒体属性_置属性W这个方法的第三个参数属性设置为整数型,当然用原版的字节集也行只是要转化一 ...

看一下最新的代码
作者: 同学麻烦让让    时间: 2025-6-23 23:00
按我说的做即可,createstreamonhglobal用对即可


作者: SummerTail    时间: 6 天前
求答案啊啊啊啊
作者: SummerTail    时间: 6 天前
同学麻烦让让 发表于 2025-6-23 23:00
按我说的做即可,createstreamonhglobal用对即可

大佬就不能贴一下代码,或者给个源码嘛




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4