>>509
OSが機能を追加したりするとき、構造体を拡張することはよくあることなのです。
そういう場合、新しいコードが古いものを適切に判断できるように、
cbSizeメンバを持たせることは、windowsAPIの一種のセオリーになっています。
ユーザーがそれを気に入ろうが入るまいが無関係です。
そういうルールなのだから、API利用者はそれを遵守するだけです。
なお、大抵のreservedメンバは0またはNULLで初期化します。must be となっているはずなので
そうしなければなりません。