📄 csharedata.h
字号:
必ず先頭になくてはならない.
*/
unsigned int m_vStructureVersion;
/* 共通作業域(保存しない) */
char m_szWork[32000];
FileInfo m_FileInfo_MYWM_GETFILEINFO;
DWORD m_dwProductVersionMS;
DWORD m_dwProductVersionLS;
HWND m_hwndTray;
HWND m_hwndDebug;
HACCEL m_hAccel;
LONG m_nSequences; /* ウィンドウ連番 */
/**** 共通作業域(保存する) ****/
int m_nEditArrNum; //short->intに修正 //@@@ 2003.05.31 MIK
EditNode m_pEditArr[MAX_EDITWINDOWS]; //最大値修正 @@@ 2003.05.31 MIK
//From Here 2003.05.31 MIK
WINDOWPLACEMENT m_TabWndWndpl; //タブウインドウ時のウインドウ情報
//To Here 2003.05.31 MIK
//@@@ 2001.12.26 YAZAKI 以下の2つは、直接アクセスしないでください。CMRUを経由してください。
int m_nMRUArrNum;
FileInfo m_fiMRUArr[MAX_MRU];
bool m_bMRUArrFavorite[MAX_MRU]; //お気に入り //@@@ 2003.04.08 MIK
//@@@ 2001.12.26 YAZAKI 以下の2つは、直接アクセスしないでください。CMRUFolderを経由してください。
int m_nOPENFOLDERArrNum;
char m_szOPENFOLDERArr[MAX_OPENFOLDER][_MAX_PATH];
bool m_bOPENFOLDERArrFavorite[MAX_OPENFOLDER]; //お気に入り //@@@ 2003.04.08 MIK
int m_nTransformFileNameArrNum;
char m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH];
char m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH]; //お気に入り //@@@ 2003.04.08 MIK
int m_nSEARCHKEYArrNum;
char m_szSEARCHKEYArr[MAX_SEARCHKEY][_MAX_PATH];
// bool m_bSEARCHKEYArrFavorite[MAX_SEARCHKEY]; //お気に入り //@@@ 2003.04.08 MIK
int m_nREPLACEKEYArrNum;
char m_szREPLACEKEYArr[MAX_REPLACEKEY][_MAX_PATH];
// bool m_bREPLACEKEYArrFavorite[MAX_REPLACEKEY]; //お気に入り //@@@ 2003.04.08 MIK
int m_nGREPFILEArrNum;
char m_szGREPFILEArr[MAX_GREPFILE][_MAX_PATH];
// bool m_bGREPFILEArrFavorite[MAX_GREPFILE]; //お気に入り //@@@ 2003.04.08 MIK
int m_nGREPFOLDERArrNum;
char m_szGREPFOLDERArr[MAX_GREPFOLDER][_MAX_PATH];
// bool m_bGREPFOLDERArrFavorite[MAX_GREPFOLDER]; //お気に入り //@@@ 2003.04.08 MIK
char m_szMACROFOLDER[_MAX_PATH]; /* マクロ用フォルダ */
char m_szIMPORTFOLDER[_MAX_PATH]; /* 設定インポート用フォルダ */
// Sep. 14, 2001 genta
MacroRec m_MacroTable[MAX_CUSTMACRO]; //!< キー割り当て用マクロテーブル
// 2004/06/21 タグジャンプ機能追加
int m_TagJumpNum; //!< タグジャンプ情報の有効データ数
int m_TagJumpTop; //!< スタックの一番上の位置
TagJump m_TagJump[MAX_TAGJUMPNUM]; //!< タグジャンプ情報
// MRU_ExtCmd m_MRU_ExtCmd; /* MRU 外部コマンド */
char m_szCmdArr[MAX_CMDARR][MAX_CMDLEN];
int m_nCmdArrNum;
// bool m_bCmdArrFavorite[MAX_CMDARR]; //お気に入り //@@@ 2003.04.08 MIK
/**** 共通設定 ****/
Common m_Common;
/* キー割り当て */
int m_nKeyNameArrNum; /* キー割り当て表の有効データ数 */
KEYDATA m_pKeyNameArr[100]; /* キー割り当て表 */
/**** 印刷ページ設定 ****/
PRINTSETTING m_PrintSettingArr[MAX_PRINTSETTINGARR];
/* 強調キーワード設定 */
CKeyWordSetMgr m_CKeyWordSetMgr; /* 強調キーワード */
char m_szKeyWordSetDir[MAX_PATH]; /* 強調キーワードファイルのディレクトリ */
/* **** タイプ別設定 **** */
Types m_Types[MAX_TYPES];
/* @@@ 2002.1.24 YAZAKI
キーボードマクロは、記録終了した時点でファイル「m_szKeyMacroFileName」に書き出すことにする。
m_bRecordingKeyMacroがTRUEのときは、キーボードマクロの記録中なので、m_szKeyMacroFileNameにアクセスしてはならない。
*/
BOOL m_bRecordingKeyMacro; /* キーボードマクロの記録中 */
HWND m_hwndRecordingKeyMacro; /* キーボードマクロを記録中のウィンドウ */
char m_szKeyMacroFileName[MAX_PATH]; /* キーボードマクロのファイル名 */
//@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
/* **** その他のダイアログ **** */
BOOL m_bGetStdout; /* 外部コマンド実行の「標準出力を得る」 */
BOOL m_bLineNumIsCRLF; /* 指定行へジャンプの「改行単位の行番号」か「折り返し単位の行番号」か */
int m_nDiffFlgOpt; /* DIFF差分表示 */ //@@@ 2002.05.27 MIK
char m_szTagsCmdLine[_MAX_PATH]; /* TAGSコマンドラインオプション */ //@@@ 2003.05.12 MIK
int m_nTagsOpt; /* TAGSオプション(チェック) */ //@@@ 2003.05.12 MIK
//From Here 2005.04.03 MIK キーワード指定タグジャンプ
int m_nTagJumpKeywordArrNum;
char m_szTagJumpKeywordArr[MAX_TAGJUMP_KEYWORD][_MAX_PATH];
// bool m_bTagJumpKeywordArrFavorite[MAX_TAGJUMPKEYWORD]; //お気に入り
BOOL m_bTagJumpICase; //!< 大文字小文字を同一視
BOOL m_bTagJumpAnyWhere; //!< 文字列の途中にマッチ
//To Here 2005.04.03 MIK
};
/*! @brief 共有データの管理
CShareDataはCProcessのメンバであるため,両者の寿命は同一です.
本来はCProcessオブジェクトを通じてアクセスするべきですが,
CProcess内のデータ領域へのポインタをstatic変数に保存することで
Singletonのようにどこからでもアクセスできる構造になっています.
共有メモリへのポインタをm_pShareDataに保持します.このメンバは
公開されていますが,CShareDataによってMap/Unmapされるために
ChareDataの消滅によってポインタm_pShareDataも無効になることに
注意してください.
@date 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
*/
class SAKURA_CORE_API CShareData
{
public:
/*
|| Singleton風
*/
static CShareData* getInstance();
protected:
static CShareData* _instance;
public:
/*
|| Constructors
*/
CShareData();
~CShareData();
/*
|| Attributes & Operations
*/
bool Init(void); /* CShareDataクラスの初期化処理 */
DLLSHAREDATA* GetShareData(){ return m_pShareData; } /* 共有データ構造体のアドレスを返す */
int GetDocumentType( const char* pszFilePath ); /* ファイルパスを渡して、ドキュメントタイプ(数値)を取得する */
int GetDocumentTypeExt( const char* pszExt ); /* 拡張子を渡して、ドキュメントタイプ(数値)を取得する */
BOOL AddEditWndList( HWND ); /* 編集ウィンドウの登録 */
void DeleteEditWndList( HWND ); /* 編集ウィンドウリストからの削除 */
BOOL RequestCloseAllEditor( void ); /* 全編集ウィンドウへ終了要求を出す */
BOOL IsPathOpened( const char*, HWND* ); /* 指定ファイルが開かれているか調べる */
int GetEditorWindowsNum( void ); /* 現在の編集ウィンドウの数を調べる */
BOOL PostMessageToAllEditors( UINT, WPARAM, LPARAM, HWND ); /* 全編集ウィンドウへメッセージをポストする */
BOOL SendMessageToAllEditors( UINT, WPARAM, LPARAM, HWND ); /* 全編集ウィンドウへメッセージを送るする */
int GetOpenedWindowArr( EditNode** , BOOL ); /* 現在開いている編集ウィンドウの配列を返す */
static BOOL IsEditWnd( HWND ); /* 指定ウィンドウが、編集ウィンドウのフレームウィンドウかどうか調べる */
static void SetKeyNameArrVal(
DLLSHAREDATA*, int, short, char*,
short, short, short, short,
short, short, short, short ); /* KEYDATA配列にデータをセット */
static void SetKeyNameArrVal( DLLSHAREDATA*, int, short, char* ); /* KEYDATA配列にデータをセット */
static LONG MY_RegSetVal(
HKEY hKey, // handle of key to set value for
LPCTSTR lpValueName, // address of value to set
CONST BYTE *lpData, // address of value data
DWORD cbData // size of value data
);
static LONG MY_RegQuerVal(
HKEY hKey, // handle of key to set value for
LPCTSTR lpValueName, // address of value to set
BYTE *lpData, // address of value data
DWORD cbData // size of value data
);
void TraceOut( LPCTSTR lpFmt, ...); /* デバッグモニタに出力 */
BOOL LoadShareData( void ); /* 共有データのロード */
void SaveShareData( void ); /* 共有データの保存 */
BOOL ShareData_IO_2( bool ); /* 共有データの保存 */
static void IO_ColorSet( CProfile* , bool , const char* , ColorInfo* ); /* 色設定 I/O */
// int m_nStdToolBarButtons; 2004.03.30 Moca 未使用
//@@@ 2002.2.2 YAZAKI
// Jun. 14, 2003 genta 引数追加.書式変更
int GetMacroFilename( int idx, char* pszPath, int nBufLen ); // idxで指定したマクロファイル名(フルパス)を取得する
bool BeReloadWhenExecuteMacro( int idx ); // idxで指定したマクロは、実行するたびにファイルを読み込む設定か?
void AddToSearchKeyArr( const char* pszSearchKey ); // m_szSEARCHKEYArrにpszSearchKeyを追加する
void AddToReplaceKeyArr( const char* pszReplaceKey ); // m_szREPLACEKEYArrにpszReplaceKeyを追加する
void AddToGrepFileArr( const char* pszGrepFile ); // m_szGREPFILEArrにpszGrepFileを追加する
void AddToGrepFolderArr( const char* pszGrepFolder ); // m_nGREPFOLDERArrNumにpszGrepFolderを追加する
//@@@ 2002.2.3 YAZAKI
bool ExtWinHelpIsSet( int nType = -1 ); // タイプがnTypeのときに、外部ヘルプが設定されているか。
char* GetExtWinHelp( int nType = -1 ); // タイプがnTypeのときの、外部ヘルプファイル名を取得。
bool ExtHTMLHelpIsSet( int nType = -1 ); // タイプがnTypeのときに、外部HTMLヘルプが設定されているか。
char* GetExtHTMLHelp( int nType = -1 ); // タイプがnTypeのときの、外部HTMLヘルプファイル名を取得。
bool HTMLHelpIsSingle( int nType = -1 ); // タイプがnTypeのときの、外部HTMLヘルプ「ビューアを複数起動しない」がONかを取得。
//@@@ 2002.2.9 YAZAKI
const char* MyGetDateFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen );
const char* MyGetTimeFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen );
const char* MyGetDateFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen, int nDateFormatType, char* szDateFormat );
const char* MyGetTimeFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen, int nTimeFormatType, char* szTimeFormat );
// 2002.11.24 Moca Add
// LPTSTR GetTransformFileList( LPCTSTR*, LPTSTR*, int );
// LPTSTR GetTransformFileName( LPCTSTR, LPTSTR, int );
LPTSTR GetTransformFileNameFast( LPCTSTR, LPTSTR, int );
int TransformFileName_MakeCache( void );
static LPCTSTR GetFilePathFormat( LPCTSTR, LPTSTR, int, LPCTSTR, LPCTSTR );
static bool ExpandMetaToFolder( LPCTSTR, LPTSTR, int );
// 2004/06/21 novice タグジャンプ機能追加
void PushTagJump(const TagJump *); //!< タグジャンプ情報の保存
bool PopTagJump(TagJump *); //!< タグジャンプ情報の参照
protected:
/*
|| 実装ヘルパ関数
*/
HANDLE m_hFileMap;
DLLSHAREDATA* m_pShareData;
// long GetModuleDir(char* , long ); /* この実行ファイルのあるディレクトリを返します */
/* MRUとOPENFOLDERリストの存在チェックなど
存在しないファイルやフォルダはMRUやOPENFOLDERリストから削除する
*/
//@@@ 2002.01.03 YAZAKI CMRU、CMRUFolderに移動した。
// void CheckMRUandOPENFOLDERList( void );
// ファイル名簡易表示用キャッシュ
int m_nTransformFileNameCount; // 有効数
TCHAR m_szTransformFileNameFromExp[MAX_TRANSFORM_FILENAME][_MAX_PATH];
int m_nTransformFileNameOrgId[MAX_TRANSFORM_FILENAME];
// Jan. 30, 2005 genta 初期化関数の分割
void InitKeyword(DLLSHAREDATA*);
void InitKeyAssign(DLLSHAREDATA*);
void InitToolButtons(DLLSHAREDATA*);
void InitTypeConfig(DLLSHAREDATA*);
void InitPopupMenu(DLLSHAREDATA*);
void ShareData_IO_Mru( const bool, CProfile& );
void ShareData_IO_Keys( const bool, CProfile& );
void ShareData_IO_Grep( const bool, CProfile& );
void ShareData_IO_Folders( const bool, CProfile& );
void ShareData_IO_Cmd( const bool, CProfile& );
void ShareData_IO_Nickname( const bool, CProfile& );
void ShareData_IO_Common( const bool, CProfile& );
void ShareData_IO_Toolbar( const bool, CProfile& );
void ShareData_IO_CustMenu( const bool, CProfile& );
void ShareData_IO_Font( const bool, CProfile& );
void ShareData_IO_KeyBind( const bool, CProfile& );
void ShareData_IO_Print( const bool, CProfile& );
void ShareData_IO_Types( const bool, CProfile& );
void ShareData_IO_KeyWords( const bool, CProfile& );
void ShareData_IO_Macro( const bool, CProfile& );
void ShareData_IO_Other( const bool, CProfile& );
};
///////////////////////////////////////////////////////////////////////
#endif /* _CSHAREDATA_H_ */
/*[EOF]*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -