Winapi IPropertyStory在不提交的情况下执行SetValue

Winapi IPropertyStory在不提交的情况下执行SetValue,winapi,ipropertystorage,Winapi,Ipropertystorage,我在下面这个博客中写了同样的代码来更改窗口的System.AppUserModel.ID: 他正在做: hr = pps->SetValue(pkey, var); PropVariantClear(&var); 他没有做pps->Commit(),我很困惑,因为我已经写了代码,我做了SetValue,我做了Commit,但我的更改不会生效 为什么他不做Commit?他弄错了吗?或者他是你不需要提交的特殊情况 感谢问题在于,var被设置为未正确初始化的propvariant。我的

我在下面这个博客中写了同样的代码来更改窗口的
System.AppUserModel.ID

他正在做:

hr = pps->SetValue(pkey, var);
PropVariantClear(&var);
他没有做
pps->Commit()
,我很困惑,因为我已经写了代码,我做了
SetValue
,我做了
Commit
,但我的更改不会生效

为什么他不做
Commit
?他弄错了吗?或者他是你不需要提交的特殊情况


感谢

问题在于,
var
被设置为未正确初始化的propvariant。我的InitFromString函数搞砸了,它会忘记设置
var.vt
。我不知道为什么会返回成功的hr。

我猜窗口属性存储不是持久的,因此不需要显式提交更改。