|
|
1
4
据陈瑞蒙说 you can persist a pidl --或者更具体地说, SHITEMID 结构,只需写出项的长度,然后写出字节。 注意,这个结构是一个典型的Windows可变长度结构,它有一个cb(“count of bytes”)元素,指定结构的长度(以字节为单位),后跟其余的数据。换句话说,要编写结构,需要编写cb字节。要读取它,需要分配内存的cb字节并设置cb字段。 注意不要使用sizeof(shitemid),因为声明它的方式只假设abid字段有一个字节,这样就不够大了。 |
|
|
2
1
ilsavetostream和illoadfromstream(可能还有illoadfromstreamex)。但是有一个警告:illoadFromStream和illoadFromStreamEx是不赞成使用的,如果微软已经说过要替换它们的话,我不知道。 |
|
|
3
1
PIDLS内部没有标准。毕竟,pidl只用于定位项目。只要pidl生成器和解析器(Windows资源管理器或第三方shell命名空间扩展)识别出pidl(或可预见地失败),explorer.exe就会高兴。没有人说PIDL必须能够在机器重新启动或用户桌面上持久。 在一种情况下,您可以做一个有根据的猜测,如果pidl是持久的跨机器重启是检查sfgao_canlink属性。通过声明此属性,pidl解析器声明您可以拖动文件夹中的项目以创建包含项目pidl的桌面快捷方式。解析程序必须在pidl中处理持久性和向后兼容性,否则双击快捷方式将使资源管理器进程崩溃。有缺陷的编程发生了,所以不要想当然地认为这是理所当然的。 在过去黑暗的日子里,pidl被保存在字节数组中,或者当需要通过COM对象时,作为安全的字节数组以变量形式传递。 |
|
0___________ · 我可以在整个程序生命周期内保持句柄打开吗 2 年前 |