0

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724897%28v=vs.85%29.aspx

ulOptions

This parameter is reserved and must be zero.

放置这个形式参数的原因是什么,而它总是必须是相同的值?

4

3 回答 3

2

该参数很可能意味着早期版本的操作系统,甚至可能是预发布的内部版本。但它控制的功能已被删除,或者从未公开发布。

一旦构建了使用该参数的二进制文件,MS 就不会想要更改函数的签名。这样做会破坏那些预先存在的二进制文件。

于 2012-04-22T11:52:52.470 回答
1

微软官方文档除了wine 代码之外什么也没说:RegKeyOpenEx()接受REG_OPTION_OPEN_LINK值 to options,在注册表项是链接的情况下,它会打开链接本身,而不是跟随链接并打开目标。

但是由于它不在官方文档中,我不建议使用它。由于 Micrsoft 没有提及它,因此他们没有正式支持它,并且可以免费(在实际限制内)阻止它在 Windows 更新或其他方式中工作。

微软可以自由地将他们喜欢的任何参数添加到他们的函数中,只是为了有一个参数供以后使用。它可以让他们不必创建新功能(尽管他们在这方面似乎做得不太好)。

于 2012-04-22T12:00:29.787 回答
0

微软只是提前计划,允许将来在不破坏 API 的情况下传递选项。

现在始终将其设置为零可以防止应用程序崩溃,以防它们将来更改 API 处理该参数的方式。该参数现在很可能被忽略,但是假设您开始将 42 传递给它,并且在下一版本的 windows 中,他们决定根据该参数实际更改行为。现在您的应用程序的行为有所不同。

故事的寓意:遵守文档所说的内容。

于 2012-04-22T11:53:30.930 回答