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

そのパラメータは、OSの以前のバージョン、場合によってはプレリリースの内部バージョンの何かを意味している可能性があります。ただし、制御されていた機能は削除されているか、公開されていません。

そのパラメータを使用するバイナリが構築されると、MSは関数のシグネチャを変更することを望まなかったでしょう。そうすることで、それらの既存のバイナリを壊してしまうでしょう。

于 2012-04-22T11:52:52.470 に答える
1

公式のMicrosoftドキュメントは、ワインコード以外は何も述べていません。値をRegKeyOpenEx()受け入れます。これは、リンクであるレジストリキーの場合、リンクをたどってターゲットを開くのではなく、リンク自体を開きます。REG_OPTION_OPEN_LINKoptions

ただし、公式ドキュメントにはないので、使用することはお勧めしません。Micrsoftはそれについて言及していないので、公式にはサポートしておらず、Windows Updateなどでの動作を(実用的な制限内で)自由に停止できます。

Microsoftは、後で使用するパラメーターを設定するために、関数に好きなパラメーターを自由に追加できます。これにより、新しい関数を作成する手間を省くことができます(ただし、その点ではあまりうまく機能していないようです)。

于 2012-04-22T12:00:29.787 に答える
0

Microsoftは、APIを壊すことなく将来オプションを渡すことができるように、前もって計画を立てていました。

常にゼロに設定すると、APIが将来そのパラメーターを処理する方法が変更された場合に、アプリケーションが破損するのを防ぐことができます。このパラメーターは今のところ無視される可能性が高いですが、42を渡し始めたとすると、次のバージョンのWindowsでは、そのパラメーターに基づいて実際に動作を変更することにします。これで、アプリケーションの動作が異なります。

話の教訓:ドキュメントの内容を順守してください。

于 2012-04-22T11:53:30.930 に答える