Menu

#1091 CUxThemeの保守修正パッチ

None
closed
nobody
None
5
2016-12-31
2016-11-13
berryzplus
No

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系に同様の問題があるかどうかは確認していません。

以上です。

1 Attachments

Related

PatchUnicode: #1092

Discussion

  • novice123

    novice123 - 2016-12-17

    [r4158]でcommitしました。

     

    Related

    Commit: [r4158]

  • Moca

    Moca - 2016-12-31
    • status: open --> closed
    • Group: -->
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.