水無瀬の部屋 > Programming > sample > cur2cpp > install.h |
---|
1: //*********************************************************
2: // プロジェクト: cur2cpp
3: // ファイル名: install.h
4: //*********************************************************
5: #ifndef INSTALL_HEAD_INCLUDED
6: #define INSTALL_HEAD_INCLUDED
7:
8:
9: //*********************************************************
10: // ヘッダ の インクルード
11: //*********************************************************
12: #ifndef TOOLS_HEAD_INCLUDED // 冗長ガード
13: #include <tools.h>
14: #ifndef TOOLS_HEAD_INCLUDED // ガード名の検査
15: #error "? TOOLS_HEAD_INCLUDED"
16: #endif // #ifndef TOOLS_HEAD_INCLUDED
17: #endif // #ifndef TOOLS_HEAD_INCLUDED
18:
19:
20: //*********************************************************
21: // マクロ定数 の 定義
22: //*********************************************************
23: //
24: #define MAX_CMDLINE ( 1024 )
25:
26: // install_t::flags
27: #define ID_OFFSET ( 1000 ) // ID と配列の index を混同させたくない
28: #define ID_CUR ( (id_t)( 0 + ID_OFFSET ) )
29: #define ID_ICO ( (id_t)( 1 + ID_OFFSET ) )
30: #define ID_MIN ( (id_t)min( ((size_t)ID_CUR), ((size_t)ID_ICO)) )
31: #define ID_MAX ( (id_t)max( ((size_t)ID_CUR), ((size_t)ID_ICO)) )
32: #define ID_INDEX( id ) ( ((size_t)static_cast<id_t>(id)) - ID_OFFSET )
33: #define IS_VALID_ID( id ) ( (((size_t)ID_MIN) <= ((size_t)static_cast<id_t>(id))) && (((size_t)static_cast<id_t>(id)) <= ((size_t)ID_MAX)) )
34: #define IS_VALID_INDEX( idx ) ( (0 <= (idx)) && ((idx) < numof( ((install_t *)null)->reg )) )
35: //
36: #define FLAG_CUR ( (DWORD)BIT( ID_INDEX( ID_CUR ) ) )
37: #define FLAG_ICO ( (DWORD)BIT( ID_INDEX( ID_ICO ) ) )
38:
39:
40: //*********************************************************
41: // 構造体 の 宣言
42: //*********************************************************
43: // enum だと配列の添字に使えてしまう
44: typedef const struct id_tag { void *dummy; } *id_t;
45:
46: // relation_t
47: typedef struct relation_tag
48: {
49: char regpath[ 1+MAX_REGPATH_BUF ];
50: char menu[ 1+MAX_MENUTEXTLENGTH ];
51: char cmdline[ 1+MAX_CMDLINE ];
52: } relation_t;
53:
54: // install_t
55: typedef struct install_tag
56: {
57: DWORD flags; // 関連づけ
58:
59: // reg[ ID_INDEX( ID_LNK ) ] に *.lnk の情報
60: relation_t reg[ ID_INDEX(ID_MAX) - ID_INDEX(ID_MIN) + 1 ]; //
61: } install_t;
62:
63:
64: //*********************************************************
65: // 関数 の 宣言
66: //*********************************************************
67: #ifdef __cplusplus
68: extern "C" {
69: #endif
70:
71:
72: // install.cpp
73: bool IsValidInstallInfo( const install_t *info );
74: bool LoadInstallInfo( install_t *info );
75: bool SaveInstallInfo( const install_t *info, DWORD mask );
76: DWORD GetModifiedFlags( const install_t *a, const install_t *b );
77:
78:
79: #ifdef __cplusplus
80: } // extern "C"
81: #endif
82:
83:
84: #endif // #ifndef INSTALL_HEAD_INCLUDED
85:
86:
87: //** end **
参照:
install.cpp, instdlg.cpp
水無瀬の部屋 > sample > cur2cpp > install.h |
---|
このページは cpp2web が出力しました。
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
http://katsura-kotonoha.sakura.ne.jp/prog/code/cur2cpp/install_h.shtml