PWJ2035 - 95/10 |
この資料は以下の製品について記述したものです。
この資料は Windows SDK 3.1「プログラマーズリファレンス Vol.4 リソース」の第 6 章「グループファイル形式」の記述の誤りについて説明したものです。
Windows SDK 3.1「プログラマーズリファレンス Vol.4 リソース」の第 6 章「グループファイル形式」では幾つかの誤りがあります。
カラーデータを含むエントリはグループファイル内には含まれません。3 つめのパラグラフに「項目データの後にはアプリケーション用のカラーデータを含むエントリが続きます。」とありますが、アプリケーションアイコンはシステムカラーのみを使用します。
マニュアルには以下のように GROUPHEADER 構造体の内容が記述されていますがメンバに一部誤りがあります。
誤
==
struct tagGROUPHEADER {
char cIdentifier[4];
WORD wCheckSum;
WORD cbGroup;
WORD nCmdShow;
RECT rcNormal;
POINT ptMin;
WORD pName;
WORD wLogPixelsX;
WORD wLogPixelsY;
WORD wBitsPerPixel;
WORD wPlanes;
WORD cItems;
WORD rgiItems[cItems];
};
正
==
struct tagGROUPHEADER {
char cIdentifier[4];
WORD wCheckSum;
WORD cbGroup;
WORD nCmdShow;
RECT rcNormal;
POINT ptMin;
WORD pName;
WORD wLogPixelsX;
WORD wLogPixelsY;
BYTE bBitsPerPixel; //WORD -> BYTE
BYTE bPlanes; //WORD -> BYTE
WORD wReserved; // Should be 0x0000
WORD cItems;
WORD rgiItems[cItems];
}
GROUPHEADER の cbGroup メンバは Windows 3.0 では タグデータを含まないグループファイルのサイズです。Windows 3.1 では cbGroup はタグデータへのオフセットを示します。
GROUPHEADER の rgiItems[cItems] の説明は ITEMDATA 構造体へのオフセットの配列が正しい内容です。
誤
==
rgiItems[cItems] ITEMDATA 構造体の配列を示します。
正
==
rgiItems[cItems] ITEMDATA 構造体へのオフセットの配列を示します。
ITEMDATA の pHeader メンバは説明ではアイコン用のリソースヘッダのオフセットを示すとありますが、これはリソースヘッダのオフセットではなく次の構造体データへのオフセットを示します。
struct {
int xHotSpot; // Should be 0
int yHotSpot; // Should be 0
int cx; // Icon width
int cy; // Icon height
int cbWidth; // Bytes per row accounting
// for WORD alignment
BYTE bPlanes; // Count of planes
BYTE bBitsPixel; // Bits per pixel
}
最後のタグデータの wID メンバには最後のデータであることを示す値 0xffff が含まれます。
(C)1995 Microsoft Corporation. All rights reserved.
マイクロソフト株式会社 テクニカル サポート
UP |
HOMEPAGE |