/*//////////////////////////////////////////////////////////////////////////
// PluginFuncID.h プラグインに提供する機能の機能コードを定義
//
//////////////////////////////////////////////////////////////////////////*/

#if !defined( PLUGINFUNCID_H_INCLUDED_ )
#define PLUGINFUNCID_H_INCLUDED_

#include <wchar.h>

/* プラグインの関数に渡される関数ポインタの型 */
typedef void* (*PFT_GetAPIFunction)( int );

/* 機能コード */
#define PFID_GETCHAR			0
#define PFID_SETCHAR			1
#define PFID_GETSTRING			2
#define PFID_REPLACE			3
#define PFID_GETLINECOUNT		4
#define PFID_GETCHARCOUNT		5
#define PFID_GETCURSORPOSITION	6
#define PFID_SETCURSORPOSITION	7
#define PFID_GETSELECTIONRANGE	8
#define PFID_SETSELECTIONRANGE	9
#define PFID_GETCONFIGVALUE		10
#define PFID_GETFILENAME		11
#define PFID_SHOWINFORMATIONMSGBOX 12
#define PFID_SHOWQUESTIONMSGBOX	13
#define PFID_SHOWERRORMSGBOX	14
#define PFID_GETMODIFIEDFLG		15
#define PFID_GETVERSION			16
#define PFID_GETEXTENDINFOCOUNT	17
#define PFID_GETEXTENDINFO		18
#define PFID_SETEXTENDINFO		19
#define PFID_SAVEFILE			20
#define PFID_OPENFILE			21
#define PFID_OPENFILENEWWINDOW	22
#define PFID_ALLOCWORKMEMORY	23
#define PFID_FINDWORKMEMORY		24
#define PFID_FREEWORKMEMORY		25
#define PFID_ISCONSTRUCTIONMODE	26
#define PFID_SETCONSTRUCTION	27
#define PFID_SETSTANDALONE		28

/* 真偽値型 */
#define PFT_BOOL unsigned char
#define PFT_TRUE	1
#define PFT_FALSE	0

/* 関数ポインタの型 */
typedef PFT_BOOL (*PFT_GetChar)( unsigned long, unsigned long, wchar_t* );
typedef PFT_BOOL (*PFT_SetChar)( unsigned long, unsigned long, wchar_t );
typedef PFT_BOOL (*PFT_GetString)( unsigned long, unsigned long, unsigned long, unsigned long, wchar_t*, unsigned long );
typedef PFT_BOOL (*PFT_Replace)( unsigned long, unsigned long, unsigned long, unsigned long, const wchar_t* );
typedef PFT_BOOL (*PFT_GetLineCount)( unsigned long* );
typedef PFT_BOOL (*PFT_GetCharCount)( unsigned long, unsigned long* );
typedef PFT_BOOL (*PFT_GetCurPosition)( unsigned long*, unsigned long* );
typedef PFT_BOOL (*PFT_SetCurPosition)( unsigned long, unsigned long );
typedef PFT_BOOL (*PFT_GetSelectionRange)( unsigned long*, unsigned long*, unsigned long*, unsigned long* );
typedef PFT_BOOL (*PFT_SetSelectionRange)( unsigned long, unsigned long, unsigned long, unsigned long );
typedef const wchar_t* (*PFT_GetConfigValue)( const wchar_t* );
typedef const char* (*PFT_GetFileName)();
typedef void (*PFT_ShowInformationMsgBox)( const wchar_t * );
typedef int (*PFT_ShowQuestionMsgBox)( const wchar_t *, PFT_BOOL );
typedef void (*PFT_ShowErrorMsgBox)( const wchar_t * );
typedef PFT_BOOL (*PFT_GetModifiedFlg)();
typedef int (*PFT_GetVersion)();
typedef int (*PFT_GetExtendInfoCount)();
typedef PFT_BOOL (*PTF_GetExtendInfo)( unsigned long, unsigned long, PFT_BOOL* );
typedef PFT_BOOL (*PTF_SetExtendInfo)( unsigned long, unsigned long, PFT_BOOL );
typedef PFT_BOOL (*PFT_SaveFile)();
typedef PFT_BOOL (*PFT_OpenFile)( const char* );
typedef PFT_BOOL (*PFT_OpenFileNewWindow)( const char* );
typedef void* (*PFT_AllocWorkMemory)( unsigned long, const wchar_t*, PFT_BOOL );
typedef void* (*PFT_FindWorkMemory)( const wchar_t*, PFT_BOOL );
typedef void (*PFT_FreeWorkMemory)( const wchar_t*, PFT_BOOL );
typedef PFT_BOOL (*PFT_IsConstructionMode)();
typedef PFT_BOOL (*PFT_SetConstruction)( PFT_BOOL ShowMessage );
typedef PFT_BOOL (*PFT_SetStandalone)( PFT_BOOL ShowMessage );

#endif /* PLUGINFUNCID_H_INCLUDED_ */

