==========================================================================
                         TTBaase (TaskTray Base)
                         
                             vOCdl
                             
                                             Copyright(C) 2002 K2 Software
==========================================================================

͂߂
	@TTBase ́ANƃ^XNgCɏ풓邾̃vOłB
	@̃vOg悤ɂ邽߂ɂ́ATTBase ɓǂݍ܂vO
	CiDLLjsłB
	
	@̎dl悭ǂŁAvOCJĂB

RZvg
	@Ƃ풓c[肽ƂAʏȂ{Av܂A
	c[ɓnƁANĂvZXA\[X
	ʂȂAOS ̋NxȂȂǂ̂܂肤ꂵȂۂ
	܂B
	
	@ŁA{풓AvāA DLL ĂяoA
	̃vZX̒ŏ풓肷悤ɂ΁Aɂ₳풓A
	v̂ł͂ȂƂACfA TTBase ̌_ɂȂĂ܂B
	
	@vOC SDK g΁Ac[Ȃ炠ƂԂɏƂł
	A^XNgCɏ풓ƂAzbgL[⃁j[^
	ȗł܂̂ŁAŏc[̂ɂKĂ܂B
	
	@O[otbNޕWŁAvOCɑ΂Ē񋟂Ă܂B
	|ȕ DLL ⋤LlȂĂAWH_SHELL ̂قڑS@\ 
	WH_MOUSE ̈ꕔ@\gp邱Ƃł܂B
	
J
	@vOCC^[tFCX́A쐬ꂽ_Ci~bNNCu
	iDLLjɑ΂Ă̓I[hg܂̂ŁAnIт܂BDLL 
	ł鏈nȂAǂȂ̂łgpł͂łB
	
	@݁ADelphi(5) p VC++(6.0),Borland C++ Free(5.5), C++Builder(5) 
	̃ev[gtĂ܂B


vOC̎
	E풓^ƈꔭN^
		@vOC\̂ PluginType ɁAptAlwaysLoad ݒ肷ƁA
		풓^ɂȂ܂BTTBase NĂԂ͏ɃvOCvZX
		Ƀ[h܂B}EXtbN肷ꍇ́AgĂ
		B
		
		@ptLoadAtUse ݒ肷ƁAꔭN^ɂȂ܂B[U[R}
		hĂԂA^C}[ɂċNꂽꍇA̓sxvOC [
		hATTBPlugin_Init Ă΂Ǎ TTBPlugin_Execute Ă΂A
		Ō TTBPlugin_Unload Ă΂ăvZXA[h܂B
		
		@ꔭN^̕ANɃ[h܂A
		ߖɂȂ܂B̑AR}hs኱x܂B傫ȃf[
		^t@Cǂ܂Ȃ΂ȂȂ悤ȃvOC̏ꍇ́A풓^
		ׂł傤B
		
		@TTBPlugin_WindowsHook gpꍇ́AK풓^ɂKv
		܂B
		
		@풓^ꍇ́Ał邾 WindowsAPI gR[fB
		OsAt@CTCY܂Ƃ߂ĂB풓^Ƒ
		ꔭN^̂Q̃vOCAg悤ɍ̂̕@
		łB
	
	ER}ȟĂ΂̎
		@TTBasẽR}ȟĂѕɂ́Aȉ̂S܂B
		
			Ec[j[i^XNgCACRNbN܂
			  zbgL[j
			EVXej[i^XNgCACRENbN܂̓zbg
			  L[j
			EzbgL[
			E^C}[
			EWindowsHookiWH_SHELLWH_MOUSËꕔ@\񋟁j
			
		@c[j[EVXej[ɏoǂ́AvOCR}
		h\̂ DispMenu ɓK؂Ȓlݒ肷邱ƂŌ肳܂B
		܂zbgL[̐ݒ胁j[̒ɃR}hoǂADispMenu
		̐ݒōE܂B
		@^C}[ɊւẮAPluginCommandInfo  IntervalTime ɌĂ΂
		ԊԊuݒ肷邱Ƃŋ@\悤ɂȂ܂BgȂꍇ 0 
		ݒ肵܂B
		@WindowsHook ́Aʓ| Hook.dll 쐬ȂĂATTBase  Hook
		p̎葱𓥂ŁAPlugin ֐Ăł܂B݂̂ƂA
		WH_SHELL ̑S@\ƁAWH_MOUSE ̈ꕔ@\gpł܂B

vOC{̂ɑ΂Ăǂď`Ă̂
	@TTBase ́ANɎstH_ȉ DLL t@CA
	[h܂B̌ADLL  TTBPlugin_InitPluginInfo CxgĂŁA
	vOC\́iTPluginInfo or PLUGIN_INFOjvOC擾
	܂BɂāÃvOC̖OEށER}hvO
	C瓾܂B̌A풓^łȂꍇ́AA[h܂B
	
	@풓^̏ꍇ́APlugin_Init Ă΂Â܂܃vZXɃ[hꑱ
	܂B
	
	@ȂATTBase ̋N𑬂邽߁ACXg[AQڂ̋Nȍ~́A
	TTBase.dat ɕۑꂽvOCLbVgăvOC
	悤ɂȂ܂BDLL ̃t@C^CXVꂽꍇȊÓÂ
	܂̏񂪎gpꑱ܂B

萔ƍ\̒`
	@\̂̃ACǵAkĂB

==== [C] =================================================================

/* vOC̃[h^Cv */
#define	ptAlwaysLoad		0
#define	ptLoadAtUse			1
#define	ptSpecViolation		0xFFFF

/* j[\Ɋւ萔 */
#define dmNone 			0	/* oȂ 	*/
#define dmSystemMenu	1	/* VXej[	*/
#define dmToolMenu		2	/* c[j[	*/
#define dmHotKeyMenu	4	/* zbgL[		*/
#define dmMenuChecked	8	/* j[̃`FbN}[N */

/* Oo͂Ɋւ萔 */
#define elNever			0   /* o͂Ȃ */
#define elError			1   /* G[ */
#define elWarning		2   /* x */
#define elInfo			3   /*  */
#define elDebug			4   /* fobO */

/* --------------------------------------------------------*/
/*    \̒`                                           */
/* --------------------------------------------------------*/
/* R}h\  */
typedef struct
{
	char	*Name;		/*	R}h̖Oipj				*/
	char	*Caption;	/*	R}h̐i{j			*/
	int		CommandID;	/*	R}hԍ						*/
	int		Attr;		/*	Agr[gigpj			*/
	int		ResID;		/*	\[Xԍigpj				*/
	int		DispMenu;	/*	j[ɏoǂB			*/
						/*		SysMenu:1 ToolMenu:2 None: 0	*/
	DWORD	TimerInterval;	/* ^C}[sԊu[msec]@0: gpȂ	*/
    DWORD	TimerCounter;	/* VXeŎgp				*/
} PLUGIN_COMMAND_INFO;

/* vOC\  */
typedef struct
{
	WORD	NeedVersion;	/* vOCI/Fvo[W		*/
	char	*Name;			/* vOC̐i{j		*/
	char	*Filename;		/* vOC̃t@Ci΃pXj*/
	WORD	PluginType;		/* vOC̃[h^Cv			*/
	DWORD	VersionMS;		/* o[W						*/
	DWORD	VersionLS;		/* o[W						*/
	DWORD	CommandCount;	/* R}h						*/
	PLUGIN_COMMAND_INFO	*Commands;		
							/* R}h				*/
	/* ȉVXeŁATTBase{̂Ŏgp						*/
	DWORD	LoadTime;      /* [hɂԁimsecj		*/
} PLUGIN_INFO;

  
==== [Delphi] ===========================================================

// vOC̃[h^Cv
// TPluginInfo.PluginType
ptAlwaysLoad = 0;
ptLoadAtUse  = 1;
ptSpecViolation = $FFFF;
  // j[\Ɋւ萔
  dmNone       = 0;  // oȂ
  dmToolMenu   = 2;  // c[j[
  dmSystemMenu = 1;  // VXej[
  dmHotKeyMenu = 4;  // zbgL[
  dmUnChecked  = 0;  //
  dmChecked    = 8;  // j[`FbNĂ
  dmEnabled    = 0;  // 
  dmDisabled   = 16; // j[OCAEgĂ
  DISPMENU_MENU     = dmToolMenu or dmSystemMenu;
  DISPMENU_ENABLED  = dmDisabled;
  DISPMENU_CHECKED  = dmChecked;

  // Oo͂Ɋւ萔
  elNever      = 0;  //o͂Ȃ
  elError      = 1;  //G[
  elWarning    = 2;  //x
  elInfo       = 3;  //
  elDebug      = 4;  //fobO

// --------------------------------------------------------
//    \̒`
// --------------------------------------------------------
// R}h\
PPluginCommandInfo = ^TPluginCommandInfo;
TPluginCommandInfo = packed record
  Name: PChar;          // R}h̖Oipj
  Caption: PChar;       // R}h̐i{j
  CommandID: integer;   // R}hԍ
  Attr: integer;        // Agr[gigpj
  ResID: integer;       // \[Xԍigpj
  DispMenu: integer;    // j[ɏoǂB
  TimerInterval: DWORD; // R}hs^C}[Ԋu[msec] 0ŋ@\gȂB
  TimerCounter: DWORD;  // VXeŎgp
end;
PPluginCommandInfoArray = ^TPluginCommandInfoArray;
TPluginCommandInfoArray = array[0..65535] of TPluginCommandInfo;

// vOC\
PPluginInfo = ^TPluginInfo;
TPluginInfo = packed record
  NeedVersion: WORD;    // vOCI/Fvo[W
  Name: PChar;          // vOC̐i{j
  Filename: PChar;      // vOC̃t@Ci΃pXj
  PluginType: WORD;     // vOC̃[h^Cv
  VersionMS: DWORD;     // o[W
  VersionLS: DWORD;     // o[W
  CommandCount: DWORD;  // R}h
  Commands: PPluginCommandInfoArray; // R}h
  // ȉVXeŁATTBase{̂Ŏgp
  LoadTime: DWORD;      // [hɂԁimsecj
end;
PPluginInfoArray = ^TPluginInfoArray;
TPluginInfoArray = array[0..65535] of PPluginInfo;


==== [] ==============================================================
@gp\̂͂Q܂B
	EPLUGIN_INFOiTPluginInfoj
		@TTBase ɃvOC̃vpeB邽߂ɁAPlugin_SetPluginInfo
		֐gāA̍\̂n܂BꏏɃR}h
		iPLUGIN_COMMAND_INFOjn܂B
		
		EWORD NeedVersion (WORD)
			@KvƂ TTBase vOCdl̃o[WłB_ł
			0 w肵ĂB
			
		Echar *Name (PChar)
			@vOC̖OłBQoCgg܂B
			
		Echar *Filename (PChar)
			@vOC̃t@C TTBase CXg[tH_̑
			΃pXŊi[܂B
			
		EWORD PluginType
			@풓^AꔭN^w肵܂B
				ptAlwaysLoad	:@풓^
				ptLoadAtUse		:@ꔭN^
				ptSpecViolation	:@gpB̒l̓ZbgĂ͂܂
				
			@R}h쓮̋@\ȂvOĆAł邾 
			ptLoadAtUse w肵ĂBɂāATTBase ̎gp
			ʂ}邱Ƃł܂B
			
		EDWORD VersionMS, VersionLS (DWORD)
			@vOC̃o[Wi[܂B
				HIWORD(VersionMS): Major Version
				LOWORD(VersionMS): Minor Version
				HIWORD(VersionLS): Release Number
				LOWORD(VersionLS): Build Number
			𐄏܂AӖt͋͂܂B
			
		EDWORD CommandCount (DWORD)
			@vOCR}h̐łB
			@R}h͍̐v256ȉłKv܂B
		
		EPLUGIN_COMMAND_INFO **Commands
		   (Commands PPluginCommandInfoArrayj
			@vOCR}h\̂ւ̃|C^̔zւ̃|C^
			BɁAKvȃmۂă|C^w肵ĂB
		
		EDWORD LoadTime (DWORD)
			@̃o[́ATTBase Ŏgp邾ŁAʃvOC
			ɂ͊֌W܂B
			@̃vOC̏擾ɂԂ msec Ŋi[܂B
			ĺAQueryPerformanceTimer gpĎ擾܂̂ŁA\
			msec ȉłB
	
	EPLUGIN_COMMAND_INFO(TPluginCommandInfo)
		@PLUGIN_INFO  Commands oɐݒ肷\̂łB
		@R}h̏i[ TTBase ɓn܂B
		
		Echar *Name (PChar)
			@R}h̖OłBpp _ gpċLqĂB
		Echar *Caption (PChar)
			@R}h̐łBj[Ȃǂɕ\܂BQoCg
			gpł܂B
		Eint CommandID (Integer)
			@R}hԍBR}hɕtAj[NȒl`
			B
		Eint Attr (Integer)
			@R}hAgr[gBݖgpłB
		Eint ResID(Integer)
			@\[X IDBݖgpłB
		Eint DispMenu (Integer)
			@TTBase ̃c[EVXej[ɁÃR}h\邩
			ǂw肵܂BVXej[ɂ͐ݒñj[Ac[
			j[ɂ́ÃvOC̊{@\蓖Ă̂
			B
			@܂AzbgL[ݒ肪ł邩ǂɐݒ肵܂B
			@Qȏ̐ݒsƂ́AagĂB
			
				dmNone			: \Ȃ
				dmSystemMenu	: VXej[ɕ\
				dmTooMenu		: c[j[ɕ\
				dmHotKeyMenu	: zbgL[ݒ̑I\R}hɕ\
				dmMenuChecked	: j[Ƀ`FbN}[N邩ǂ
		
		EDWORD TimerInterval (DWORD)
			@^C}[ɂANR}hwłB
			@Ԃ [msec] Őݒ肵܂B
			@^C}[@\gpȂƂ 0 ݒ肵܂B
			
			@TTBase ł́A 100msec Ƃ Timer CxgĂ
			܂B̕\ŃR}hs܂̂ŁA܂ׂԂ
			ݒ肵ĂӖ܂B100msec PʒxŎw肵܂傤B
		
		EDWORD TimerCounter (DWORD)
			@TTBase Ŏgp܂B

Cxgnh

@΂ɒ`Ȃ΂ȂȂCxgnh́Aȉ̂̂łB
@DLL Ŋ֐̖OGNX|[gĂB
@GNX|[gĂȂꍇ́A DLL vOCƂ͔F܂B
	
================================================================
  	TTBEvent_InitPluginInfo
================================================================
	PLUGIN_INFO* WINAPI TTBEvent_InitPluginInfo(char *PluginFilename);
	function  TTBEvent_InitPluginInfo(PluginFilename: PChar): PPluginInfo; stdcall; export;
	
	@vOC\̂̃mۂAZbgĕԂ܂B
	@R}hꍇ́AR}h\̂̃mۂAn܂B
	
	@PluginFilename ɂ́ÃvOCst@CA TTBase CX
	g[tH_̑΃pXƂĊi[Ă܂B́AvOC
	̓łgpł܂AvOC\̂ Filename oɃ
	mۂāARs[ TTBase{̂ɕԂĂB


================================================================
  	TTBEvent_FreePluginInfo
================================================================
	void WINAPI TTBEvent_FreePluginInfo(PLUGIN_INFO *PluginInfo);
	procedure TTBEvent_FreePluginInfo(PluginInfo: PPluginInfo); stdcall; export;
	
	@nꂽvOC\̂̃܂B
	@R}hāAR}h\̂̃mɉ悤
	ĂB
	@̃R}hŉ̂́ATTBEvent_InifPluginInfo vOC
	mۂꂽ̈łB
	




@ȉAKvɉĒ`CxgnhłB


================================================================
	TTBEvent_Init
================================================================
	BOOL WINAPI TTBEvent_Init(char *PluginFilename, DWORD hPlugin);
	function  TTBEvent_Init(PluginFilename: PChar; hPlugin: DWORD): 
	@@BOOL; stdcall; export;
	
	@vOC̏֐łB[hꂽAŏɌĂ΂܂B
	@TTBase ̃vOCLbV@\̂߁ATTBEvent_InitPluginInfo
	Ă΂킯ł͂܂BŁAPluginFilename gāADLL
	͎̃t@Cm邱Ƃł܂B
	@hPlugin ́ATTBase vOCʂ邽߂̎ʃR[hłBꕔ
	API ֐Ŏgp̂ŁAO[oϐɕۑ悤ɂĂB
	
	@ATRUE Ԃ܂B

================================================================
	TTBEvent_Unload
================================================================
	void WINAPI TTBEvent_Unload(void);
	procedure TTBEvent_Unload; stdcall; export;
	
	@vOCA[hƂɌĂ΂܂B

================================================================
	TTBEvent_Execute
================================================================
	BOOL WINAPI TTBEvent_Execute(int CommandID, HWND hWnd);
	function  TTBEvent_Execute(CommandID: Integer; hWnd: THandle): BOOL; stdcall; export;
	
	@R}hA炩̌`ŌĂ΂ꍇÅ֐Ă΂܂B
	
	@vOC\̂ŁACommandCount  1 ȏɐݒ肵ꍇ́A
	nh͕KKvłB
	
	@CommandID ɂ́ÃR}h ID Ă܂B
	@hWnd ɂ́ATTBase Ă NotifyWindow i\͂܂񂪁A
	bZ[W邽߂ɕKvłj̃EBhEnhi[Ă
	B
	
	@ɏI TRUE Ԃ悤ɂĂB

	@̊֐Ă΂̂́Aȉ̏łB
		ETTBasẽc[j[VXej[Iꂽ
		E[U[ݒ肵zbgL[R}hĂ΂ꂽ
		E^C}[^̃R}hiPluginInfo  IntervalTime  1 ȏɐݒ
		  ĂR}hj̏ꍇAݒ莞ԂƂɎIɌĂ΂B

================================================================
	TTBEvent_WindowsHook
================================================================
	void WINAPI TTBEvent_WindowsHook(UINT Msg, DWORD wParam, DWORD lParam);
	procedure TTBEvent_WindowsHook(Msg: Word; wParam: DWORD; lParam: DWORD); stdcall; export;

	@TTBase{̂AHook p DLL Ă܂BgāAHook œ
	CxgAvOCłgƂł܂B

	@݃T|[gĂ̂́AShellHook(WH_SHELL) ƁAMouseHook(WH_MOUSE)
	̂Q܂B
	
	[WH_SHELL]
	@R[obN֐œ nCode ƂɁATTB_HSHELL_ Ŏn܂郆[U[
	`bZ[W`Ă܂B̓ev[g MessageDef.pas 
	QƂĂB
	@̃bZ[Wԍ Msg ɐݒ肳܂B܂R[obN֐œ
	 wParam  lParam 邱Ƃł܂B
	
	[WH_MOUSE]
	@R[obN֐œ nCode  HC_ACTION ̏ꍇʒm܂B
	@MsgTTB_HMOUSE_ACTIONݒ肳܂iMessageDef.pasQƁjB
	@wParam Ƀ}EXbZ[W̎ށAlParam ɂ̃}EXCxgN
	EBhẼnhݒ肳܂Bۂ WH_MOUSE ł́AlParam  
	MOUSEHOOKSTRUCT ւ̃|C^ݒ肳܂AׂăvOC
	󂯎邱Ƃ͂ł܂BEBhEnĥ݂񋟂Ă܂B


API ֐

================================================================
	TTBPlugin_GetPluginInfo
================================================================
	extern PLUGIN_INFO* (WINAPI *TTBPlugin_GetPluginInfo)(DWORD hPlugin);
	TTTBPlugin_GetPluginInfo = function (hPlugin: DWORD): PPluginInfo; stdcall;
	
	@hPlugin Ŏw肵vOC̃vOC\̂擾܂B擾
	_ŁATTBase ǗĂ񂪈o܂Bj[̃`FbN
	Ȃǂ𓾂̂Ɏg܂B
	
	@ API ֐Ŏ擾 (PLUGIN_INFO *) ^̃|C^́A
	TTBPlugin_FreePluginInfo ֐ŉKv܂B
	
================================================================
	TTBPlugin_SetPluginInfo
================================================================
	extern void (WINAPI *TTBPlugin_SetPluginInfo)(DWORD hPlugin, 
	  PLUGIN_INFO *PluginInfo);
	TTTBPlugin_SetPluginInfo = procedure (hPlugin: DWORD; 
	  PluginInfo: PPluginInfo); stdcall;
	
	@hPlugin Ŏw肵vOC̃vOC\̂Đݒ肵܂Bv
	OC瓮IɃvOC\̂̓eύXƂɎgp
	܂B
	@PluginInfo ́AVɃmۂĎgpĂB
	TTBPlugin_GetPluginInfo Ŏ擾̂gpĂ͂܂B
	
	ivOCev[gɂ́A[eBeB[`ƂāA
	CopyPluginInfo ֐pӂĂ̂ŁA TTBPlugin_GetPluginInfo
	֐œvOC\̂Rs[Ďgp悤ɂ܂B
	 TTBPlugin_GetPluginInfo gpȂŃvOC\̂쐬
	\܂j
	
	@̊֐gpƁATTBase ́AnꂽvOC\̂Rs[
	āAŎgp悤ɂȂ܂B̂߁AvOCŊmۂ 
	PluginInfo ́AvOCŖIɉ悤ɂĂB
	
================================================================
	TTBPlugin_FreePluginInfo
================================================================
	extern void (WINAPI *TTBPlugin_FreePluginInfo)(PLUGIN_INFO *PluginInfo);
	TTTBPlugin_FreePluginInfo = procedure (PluginInfo: PPluginInfo); stdcall;
	
	@TTBase Ŋmۂꂽ (PLUGIN_INFO *) ^̃܂B
	@TTBPlugin_GetPluginInfo Ŏ擾́A API ֐gĉ
	ĂB
	
================================================================
	TTBPlugin_SetMenuProperty
================================================================
	extern void (WINAPI *TTBPlugin_SetMenuChecked)(DWORD hPlugin, 
	  int CommandID, DWORD ChagneFlag, DWORD Flag);
	TTTBPlugin_SetMenuChecked = procedure (hPlugin: DWORD; CommandID: Integer;
	  ChangeFlag, Flag: DWORD); stdcall;
	
	@hPlugin Ŏw肵vOĆACommandID ŎR}h́Aj
	[֌W̑ύX܂B
	
	ChangeFlag: ύX鑮̎ނw肵܂B̃tOaŎw肷
				Ƃł܂B
				DISPMENU_MENU	:	VXej[Ec[j[̎
									ύX܂B
									̃tOZbg dmToolMenuA
									dmSystemMenu ̗w肵ȂƁAj
									[ɕ\܂B
				DISPMENU_ENABLED:	j[O[AEg邩ǂw
									ł܂B
				DISPMENU_CHECKED:	j[Ƀ`FbN邩ǂw
									ł܂
	
	Flag	:	tOɂ́Aȉ̒l̘aƂĎw肵܂B
					dmNone       = 0;  // oȂ
					dmToolMenu   = 2;  // c[j[
					dmSystemMenu = 1;  // VXej[
					dmUnChecked  = 0;  //
					dmChecked    = 8;  // j[`FbNĂ
					dmEnabled    = 0;  // 
					dmDisabled   = 16; // j[OCAEgĂ
					
				ChangeFlag Ƃ̑gݍ킹ŁAʂ𔭊邩ǂ܂
				܂BƂ΁ADISPMENU_ENABLED w肵Ă鎞A
				dmToolMenu Ȃǂ Flag ɃZbgĂAʂ𔭊܂B
	
	  
================================================================
	TTBPlugin_GetAllPluginInfo
================================================================
	extern PLUGIN_INFO** (WINAPI *TTBPlugin_GetAllPluginInfo)(void);
	TPlugin_GetAllPluginInfo = function : PPluginInfoArray; stdcall;
	
	@TTBase ɓǂݍ܂Ă邷ׂẴvOC̃vOC\̂ւ
	|C^̔zւ̃|C^Ԃ܂B
	
	@Ō̃vOC\̂ւ̃|C^̎̔zvfɂ́ANULL i[
	Ă܂̂ŁAōŌ𔻒肵ĂB

================================================================
	TTBPlugin_FreePluginInfoArray
================================================================
	extern void (WINAPI *TTBPlugin_FreePluginInfoArray)(PLUGIN_INFO **PluginInfoArray);
	TPlugin_FreePluginInfoArray = procedure (PluginInfoArray: PPluginInfoArray); stdcall;
	
	@TTBPlugin_GetAllPluginInfo Ŏ擾APLUGIN_INFO_ARRAY 
	(PPluginInfoArray) ܂B

================================================================
	TTBPlugin_SetTaskTrayIcon
================================================================
	extern void (WINAPI *TTBPlugin_SetTaskTrayIcon)(HICON hIcon, const char *Tips);
	TTBPlugin_SetTaskTrayIcon = procedure (hIcon: THandle; Tips: PChar); stdcall;
	
	@TTBase ̃^XNgCACRύX܂B

	@hIcon 0 w肵ꍇ̓ftHgACR/Tipsɖ߂܂B

================================================================
	TTBPlugin_WriteLog
================================================================
	extern void (WINAPI *TTBPlugin_WriteLog)( DWORD hPlugin, int logLevel, const char *msg );
	TTBPlugin_WriteLog = procedure (hPlugin: DWORD; logLevel: Integer; msg: PChar); stdcall;

	Oo͂܂B
	Ot@C̕ۑƃȌo̓x TTBase.ini  Logging ZNVŐݒ肵܂B
	
	Âo[W TTBase Ƃ̌݊ێ邽߂ Plugin.cpp/Plugin.pas ɒ`Ă
	WriteLog ֐gp邱Ƃ𐄏܂B

================================================================
	ExecutePluginCommand
================================================================
	extern BOOL (WINAPI *TTBPlugin_ExecuteCommand)( const char *PluginName, int CmdID, HWND hWnd );
	TTTBPlugin_ExecuteCommand = function ( PluginName: PChar; CmdID: Integer; hWnd: HWND ): BOOL; stdcall;

	TTBase Ƀ[hĂ鑼̃vOC̃R}hĂяo܂B
	g̃R}hĂԂƂ͂ł܂B
	[hĂȂvOC܂͒`ĂȂR}hIDw肵ꍇ͉܂B

	 PluginName ɂ͌ĂяoR}h`ĂvOC PLUGIN_INFO/TPluginInfo \̂
	Name o̒lnĂB

	Âo[W TTBase Ƃ̌݊ێ邽߂ Plugin.cpp/Plugin.pas ɒ`Ă
	ExecutePluginCommand ֐gp邱Ƃ𐄏܂B

