水無瀬の部屋 > Programming > sample > atlnk > info.h |
---|
1: //*********************************************************
2: // プロジェクト: atlnk - @link.target
3: // ファイル名: info.h
4: //*********************************************************
5: #ifndef INFO_HEAD_INCLUDED
6: #define INFO_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_LNK ( (id_t)( 0 + ID_OFFSET ) )
29: #define ID_PIF ( (id_t)( 1 + ID_OFFSET ) )
30: #define ID_MIN ( (id_t)min( ((size_t)ID_LNK), ((size_t)ID_PIF) ) )
31: #define ID_MAX ( (id_t)max( ((size_t)ID_LNK), ((size_t)ID_PIF)) )
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_LNK ( (DWORD)BIT( ID_INDEX( ID_LNK ) ) )
37: #define FLAG_PIF ( (DWORD)BIT( ID_INDEX( ID_PIF ) ) )
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[ 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: // info.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 INFO_HEAD_INCLUDED
85:
86:
87: //** end **
参照:
atlnk.cpp, custom.cpp, info.cpp
水無瀬の部屋 > sample > atlnk > info.h |
---|
このページは cpp2web が出力しました。
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
http://katsura-kotonoha.sakura.ne.jp/prog/code/atlnk/info_h.shtml
>> Amazon.co.jp 『たまゆら童子』 へ
>> 楽天ブックス 『たまゆら童子』 へ