IsThemeBackgroundPartiallyTransparent関数の戻り値定義が誤っています。
参照URL
https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb759815(v=vs.85).aspx
本来BOOLであるはずの戻り値をHRESULT型で定義しています。
一般的にWindows SDK内での定義は以下の通りです。
typedef long HRESULT
typedef int BOOL
マイクロソフト方式ではlongもintも同じ32bitの符号付き整数で、
戻り値のバイト数が同じだから問題になっていなかったということです。
問題は、
S_FALSE = 1
FALSE = 0
なことで、定義を正すことによって変な影響がでる可能性があります。
といっても、大半の人には影響のない修正と思います。
影響があるのは「UxTheme.DLLがない、超古いOS」で使っている人、
かつ、「テーマ背景が部分的に透明」かどうかを、
テーマDLLがあるかどうかチェックせずに単独で判定するような、
ぶっとんだ処理を組み込んだ「DLLマクロ」を使っている場合だけです。
v1系に同様の問題があるかどうかは確認していません。
以上です。
[r4158]でcommitしました。
Related
Commit: [r4158]