-
-
Notifications
You must be signed in to change notification settings - Fork 42
/
HYOJUNKA.txt
189 lines (148 loc) · 9.33 KB
/
HYOJUNKA.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
【Win32リソースの標準化】
(UTF-8, Japanese)
新しいリソーエディタのリソース情報は、以下のガイドラインに従うべきです。
古いリソーエディタのデータを使っているなら、以下のガイドラインを適用する
必要があります。
■定義
・「リソースID」とは、Win32リソースデータに使われるIDです。
・「IDプレフィックス」とは、リソースIDのプレフィックス (prefix) です。
・「エンティティ リソース」とは、RT_ICON、RT_CURSOR、RT_STRING、RT_MANIFEST、RT_VERSION、そしてRT_MESSAGETABLE以外のリソースデータです。
・エンティティ リソースの「リソース名」とは、16ビット整数値か、ワイド文字列か、16ビット整数値のマクロです。
・RT_ICONタイプのリソースデータは、RT_GROUP_ICON タイプのリソースデータによって参照されます。
・RT_CURSORタイプのリソースデータは、RT_GROUP_CURSOR タイプのリソースデータによって参照されます。
・RT_STRINGまたはRT_MESSAGETABLEリソースは、複数のリソースIDを含むことができます。
・RT_MANIFESTまたはRT_VERSIONのリソースIDは特別な意味を持ちます。
・「ユーザーリソース」とは、ユーザーのプロジェクトが直接提供し、かつ、他のプロジェクトやフレームワークによって提供されない、Win32リソースデータです。
・「ユーザーID」とは、ユーザーのプロジェクトが直接提供し、かつ、他のプロジェクトやフレームワークによって提供されないリソースIDです。
・「アイコンID」とは、RT_GROUP_ICON タイプのリソースIDです。
・「カーソルID」とは、RT_GROUP_CURSOR タイプのリソースIDです。
・「文字列ID」とは、文字列テーブルの中の1個の文字列データのIDです。
・「メッセージID」とは、メッセージテーブルの中の1個のメッセージデータのIDです。
■ガイドライン
Visual C++互換性のために、ファイル「resource.h」の中身は、次のようなC+
+コメントで始まるべきです。
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ Compatible
// TheProject.rc
ここで、「TheProject.rc」は、この「resource.h」に対する実際の
リソースファイル名で置き換えなければなりません。
ファイル「resource.h」は、インクルードガードを使うべきではありません。
ファイル「resource.h」の中で、文字列マクロを使わないで下さい。
文字列値のリソースIDを使わないで下さい。
もし、rcファイルがシステムヘッダーの#includeを有するなら、その
インクルードは、次のように包まれるべきです:
#define APSTUDIO_HIDDEN_SYMBOLS
#include <windows.h>
#include <commctrl.h>
#undef APSTUDIO_HIDDEN_SYMBOLS
ファイル「resource.h」の中身は、次のようなテキストで終わるべきです:
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 1000
#define _APS_NEXT_COMMAND_VALUE 220
#define _APS_NEXT_CONTROL_VALUE 1002
#define _APS_NEXT_SYMED_VALUE 300
#endif
#endif
ここに、_APS_NO_MFC マクロの値は1であるべきです。
ここに、_APS_NEXT_RESOURCE_VALUE マクロの値は、すべてのユーザー
エンティティ リソースの最大整数値 + 1でなければなりません。
ここに、_APS_NEXT_COMMAND_VALUE マクロの値は、すべてのユーザー
コマンド IDの最大整数値 + 1でなければなりません。
ここに、_APS_NEXT_CONTROL_VALUE マクロの値は、すべてのユーザー
コントロールIDの最大整数値 + 1でなければなりません。
ここに、_APS_NEXT_SYMED_VALUE マクロの値は無視するべきです。
■IDプレフィックス
「resource.h」で定義されるユーザーIDプレフィックスは次の表に従うべき
です:
+----------------------------------+------------------------+
| IDタイプ | IDプレフィックス |
+----------------------------------+------------------------+
| String ID | IDS_ |
+----------------------------------+------------------------+
| Message ID | MSGID_ |
+----------------------------------+------------------------+
| Command ID | ID_ |
+----------------------------------+------------------------+
| Command ID (Old Type) | IDM_ |
+----------------------------------+------------------------+
| Control ID | IDC_ |
+----------------------------------+------------------------+
| Cursor ID | IDC_ |
+----------------------------------+------------------------+
| Icon ID | IDI_ |
+----------------------------------+------------------------+
| Dialog ID | IDD_ |
+----------------------------------+------------------------+
| Bitmap ID | IDB_ |
+----------------------------------+------------------------+
| その他のエンティティID | IDR_ |
+----------------------------------+------------------------+
| Window ID | IDW_ |
+----------------------------------+------------------------+
| Help ID | HID_ |
+----------------------------------+------------------------+
「IDP_」プレフィックスは使わないで下さい。
■値と範囲
「resource.h」で定義されるユーザーIDは、次の表の範囲であるべきです。
+----------------------------------+---------------------+---------------------+
| IDタイプ | 束縛範囲 | 好ましい範囲 |
+----------------------------------+---------------------+---------------------+
| String ID | 1~0x7FFF | 100~0x7FFF |
+----------------------------------+---------------------+---------------------+
| Message ID | 0~0xFFFFFFFF | 1~0x7FFFFFFF |
+----------------------------------+---------------------+---------------------+
| Command ID | 1~0x7FFF | 100~0x7FFF |
+----------------------------------+---------------------+---------------------+
| Command ID (Old Type) | 1~0x7FFF | 100~0x7FFF |
+----------------------------------+---------------------+---------------------+
| Control ID | 8~0xDFFF | 1000~0x7FFF |
+----------------------------------+---------------------+---------------------+
| Cursor ID | 1~0x7FFF | 100~999 |
+----------------------------------+---------------------+---------------------+
| Icon ID | 1~0x7FFF | 100~999 |
+----------------------------------+---------------------+---------------------+
| Dialog ID | 1~0x7FFF | 100~0x7FFF |
+----------------------------------+---------------------+---------------------+
| Bitmap ID | 1~0x7FFF | 100~0x7FFF |
+----------------------------------+---------------------+---------------------+
| その他のエンティティID | 1~0x7FFF | 100~0x7FFF |
+----------------------------------+---------------------+---------------------+
| Window ID | 1~0x7FFF | 1~0x7FFF |
+----------------------------------+---------------------+---------------------+
| Help ID | 0~0xFFFFFFFF | 1~0x7FFFFFFF |
+----------------------------------+---------------------+---------------------+
同じIDプレフィックスの2つの異なるリソースIDは、互いに違う値を持つべき
です。
「IDC_」のリソースIDは、コントロールIDか、カーソルIDです。
もし、我々がIDの好ましい範囲に従えば、コントロールIDとカーソルIDは
衝突しません。
■TEXTINCLUDE
Visual C++ 互換性のために、リソースファイルは、以下のような3個の
TEXTINCLUDEデータを有しなければなりません:
#ifdef APSTUDIO_INVOKED
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include <windows.h>\r\n"
"#include <commctrl.h>\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
■コメント
「resource.h」ファイルのリソースファイルは、CコメントよりもC++コメント
を使うべきです。
■参照
https://msdn.microsoft.com/en-us/library/t2zechd4.aspx