抓狂的Namespace Shell Extension (1)

博主在做NSE时,将RAR文件虚拟成文件夹,前期准备完成后变更SHITEMID结构,导致后续域值不对。折腾数小时后回家,次日重启机器,发现CompareIDs用不存在的目录比较,怀疑PIDL被缓存,改名rar文件后恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个NSE,把RAR文件虚拟成一个folder,所有前期准备工作做完后,突然发现SHITEMID的结构要变一变,让它能更好地对齐,从:
 
bool bFolder;
wchar_t parent[var_len];
UINT size;
wchar_t name[var_len];
 
改为:
 
BOOL bFolder;
UINT size;
wchar_t parent[var_len];
wchar_t name[var_len];
 
噩梦从此开始,改完之后,BOOL bFolder的sizeof还是1 (==sizeof(bool)),后续的所有域的值就都不对了。
 
折腾了几个小时回家睡觉,早上起来重启机器,突然发现CompareIDs用一个昨天临时创建、今天根本不存在的目录和其它目录做比较。OMG!难道是这厮把PIDL给cache住了?!
 
马上把rar文件改个名重试,一切正常。。。。。。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值