[PR]

水無瀬の部屋 > Programming > sample > atlnk > info.h
最終更新日: 2007/03/10

   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


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬の部屋 > 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 『たまゆら童子』 へ
>> 楽天ブックス 『たまゆら童子』 へ