⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csharedata.h

📁 日本的开源编辑器源码
💻 H
📖 第 1 页 / 共 3 页
字号:
		必ず先頭になくてはならない.
	*/
	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 + -