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

📄 cmacro.h

📁 日本的开源编辑器源码
💻 H
字号:
//	$Id: CMacro.h,v 1.11 2005/01/30 16:27:52 Administrator Exp $
/*!	@file
	@brief キーボードマクロ
	CMacroのインスタンスひとつが、1コマンドになる。

	@author Norio Nakatani
	$Revision: 1.11 $
*/
/*
	Copyright (C) 1998-2001, Norio Nakatani

	This source code is designed for sakura editor.
	Please contact the copyright holder to use this code for other purpose.
*/

class CMacro;

#ifndef _CMACRO_H_
#define _CMACRO_H_

#include <windows.h>
//#include "oleauto.h" //2003-02-21 鬼

class CEditView;

/*! @brief キーボードマクロの1コマンド

	引数をリスト構造にして、いくつでも持てるようにしてみました。
	スタックにするのが通例なのかもしれません(よくわかりません)。
	
	今後、制御構造が入っても困らないようにしようと思ったのですが、挫折しました。
	
	さて、このクラスは次のような前提で動作している。

	@li 引数のリストを、m_pParamTopからのリスト構造で保持。
	@li 引数を新たに追加するには、AddParam()を使用する。
	  AddParamにどんな値が渡されてもよいように準備するコト。
	  渡された値が数値なのか、文字列へのポインタなのかは、m_nFuncID(機能 ID)によって、このクラス内で判別し、よろしくやること。
	@li 引数は、CMacro内部ではすべて文字列で保持すること(数値97は、"97"として保持)(いまのところ)
*/
class CMacro
{
public:
	/*
	||  Constructors
	*/
	CMacro( int nFuncID );	//	機能IDを指定して初期化
	~CMacro();

	void SetNext(CMacro* pNext){ m_pNext = pNext; };
	CMacro* GetNext(){ return m_pNext;};
	void Exec( CEditView* pcEditView );
	void Save( HINSTANCE hInstance, HFILE hFile );
	
	void AddLParam( LPARAM lParam, CEditView* pcEditView  );	//@@@ 2002.2.2 YAZAKI pcEditViewも渡す
	void AddParam( const char* lParam );
	void AddParam( const int lParam );

	static void HandleCommand( CEditView* pcEditView, const int Index,	const char* Argument[], const int ArgSize );
	static bool HandleFunction(CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result);
#if 0
	/*
	||  Attributes & Operations
	*/
	static char* GetFuncInfoByID( HINSTANCE , int , char* , char* );	/* 機能ID→関数名,機能名日本語 */
	static int GetFuncInfoByName( HINSTANCE , const char* , char* );	/* 関数名→機能ID,機能名日本語 */
	static BOOL CanFuncIsKeyMacro( int );	/* キーマクロに記録可能な機能かどうかを調べる */
#endif

protected:
	/*
	||  実装ヘルパ関数
	*/
	int		m_nFuncID;	//	機能ID
	struct CMacroParam{
		char* m_pData;
		CMacroParam* m_pNext;
	} *m_pParamTop, *m_pParamBot;			//	パラメータ
	CMacro* m_pNext;	//	次のマクロへのポインタ
//	CMacro* m_pPrev;	前のマクロに戻ることは無い?
};



///////////////////////////////////////////////////////////////////////
#endif /* _CMACRO_H_ */

/*[EOF]*/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -