kolibrios-fun/programs/fs/kfar/trunk/api.txt

150 lines
8.7 KiB
Plaintext
Raw Normal View History

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E2A0A2><EFBFBD><EFBFBD><><E1AEA1> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><E0ACA0> COFF),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5><EFBFBD><20>㭪樨 <20> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A2AE><EFBFBD><EFBFBD>).
<EFBFBD>㭪樨 <20><><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E0A5A3><EFBFBD><EFBFBD><EFBFBD>. kfar <20><><EFBFBD><E0A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E8A5AD><EFBFBD><> <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> DF
<EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20>㭪権 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><> <20><><EFBFBD> callback-<2D>㭪権.
int version;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A5A9> kfar, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2.
int __stdcall plugin_load(kfar_info* info);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
typedef struct
{
int StructSize; // = sizeof(kfar_info)
int kfar_ver; // 10000h*major + minor
/* <20><><EFBFBD> callback-<2D>㭪樨 <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><><E0A5A3><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><EFBFBD><E7A5AD><EFBFBD> eax. */
/* <20>㭪樨 ࠡ<><E0A0A1><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD>: */
void* open; // HANDLE __stdcall open(const char* name, int mode);
// mode - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2AEA2><><E4ABA0><EFBFBD>
// O_READ = 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E2A5AD>
// O_WRITE = 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// O_CREATE = 4 - <20>᫨ 䠩<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD>
// O_TRUNCATE = 8 - <20><><EFBFBD><EFBFBD><EFBFBD><> <20><> <20><EFBFBD><E3ABA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
void* open2; // HANDLE __stdcall open2(int plugin_id, HANDLE plugin_instance,
// const char* name, int mode);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮 open, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// open2(0,<anything>,name,mode) = open(name,mode)
void* read; // unsigned __stdcall read(HANDLE hFile, void* buf, unsigned size);
void* write; // <20><><EFBFBD> <20><><><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void* seek; // void __stdcall seek(HANDLE hFile, int method, __int64 newpos);
void* tell; // __int64 __stdcall tell(HANDLE hFile);
void* flush; // <20><><EFBFBD> <20><><><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void* filesize; // __int64 __stdcall filesize(HANDLE hFile);
void* close; // void __stdcall close(HANDLE hFile);
/* <20>㭪樨 ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>筮): */
void* pgalloc; // in: ecx=size, out: eax=pointer or NULL
// <20><><EFBFBD> <20><>墠⪥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD> <20><><EFBFBD><EFBFBD><ECA7AE><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL
void* pgrealloc; // in: edx=pointer, ecx=new size, out: eax=pointer or NULL
// <20><><EFBFBD> <20><>墠⪥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD> <20><><EFBFBD><EFBFBD><ECA7AE><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL
void* pgfree; // in: ecx=pointer
void* getfreemem; // unsigned __stdcall getfreemem(void);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>
void* pgalloc2; // void* __stdcall pgalloc2(unsigned size);
void* pgrealloc2; // void* __stdcall pgrealloc2(void* pointer, unsigned size);
void* pgfree2; // void __stdcall pgfree2(void* pointer);
/* <20>㭪樨 ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: */
void* menu; // int __stdcall menu(void* variants, const char* title, unsigned flags);
// variants 㪠<><EFBFBD><EBA2A0> <20><><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFA7AD> ᯨ᪥
void* menu_centered_in; // int __stdcall menu_centered_in(unsigned left, unsigned top,
// unsigned width, unsigned height,
// void* variants, const char* title, unsigned flags);
void* DialogBox; // int __stdcall DialogBox(DLGDATA* dlg);
void* SayErr; // int __stdcall SayErr(int num_strings, const char** strings,
// int num_buttons, const char** buttons);
void* Message; // int __stdcall Message(const char* title,
// int num_strings, const char** strings,
// int num_buttons, const char** buttons);
// may be x=-1 and/or y=-1
struct {unsigned width;unsigned height;}* cur_console_size;
} kfar_info;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
0 = <20>ᯥ譠<E1AFA5> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1 = <20><EFBFBD><E8A8A1> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD>樨 (kfar <20><EFBFBD><EBA4A0><><EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><ECA7AE><EFBFBD>)
2 = <20><EFBFBD><E8A8A1> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD>樨 (kfar <20><EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><EFBFBD><E9A5AD>)
void __stdcall plugin_unload(void);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A5AD><><E0A0A1><EFBFBD> kfar).
HANDLE __stdcall OpenFilePlugin(HANDLE basefile,
const void* attr, const void* data, int datasize,
int baseplugin_id, HANDLE baseplugin_instance, const char* name);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E3ABA8><EFBFBD>騩 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><><E4A0A9> (<28><><EFBFBD><EFBFBD><E0A8AC>, <20><><EFBFBD>).
basefile - <20><><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> (<28> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 read <20> seek <20><> kfar_info)
attr - 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><E0ACA0> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20>㭪樨 70.1
data - <20><><EFBFBD><EFBFBD><EFBFBD>, ᮤ<>ঠ騩 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><><E4A0A9> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><><E4A0A9>)
datasize - ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> data. <20><>饩 ॠ<><E0A5A0><EFBFBD><EFBFBD>樨 min(1024,ࠧ<><E0A0A7><EFBFBD><><E4A0A9>)
baseplugin_id - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD><>;
0 <20> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
baseplugin_instance - <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>㭪樨 GetOpenPluginInfo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<20><><EFBFBD><E0A5A4><EFBFBD><EFA5AC><EFBFBD> <20><> baseplugin_id
name - <20><><EFBFBD><><E4A0A9> (<28><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 baseplugin)
<EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A1><EFBFBD><EBA2A0> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><20><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD> kfar <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E9A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20> <20><20><><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A0AC><EFBFBD><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> basefile <20>㭪樥<E3ADAA> close <20><> kfar_info (<28><><EFBFBD><EFBFBD><E0A8AC>,
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ClosePlugin <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A2A5><EFBFBD> <20> OpenFilePlugin,
<EFBFBD>᫨ basefile <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><> <20><EFBFBD>).
<EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0A0A1><EFBFBD><EBA2A0> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.
<EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A2A0> <20><><EFBFBD><EFBFBD><ECA7AE><EFBFBD><E2A5AB>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> -1.
void __stdcall ClosePlugin(HANDLE hPlugin);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> OpenFilePlugin <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
void __stdcall GetOpenPluginInfo(HANDLE hPlugin, OpenPluginInfo* Info);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
typedef struct
{
unsigned flags; // <20><><EFBFBD> 0: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '..', <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD> 1: <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A1><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20>㭪樥<E3ADAA> GetFiles
} OpenPluginInfo;
void __stdcall GetPanelTitle(HANDLE hPlugin, char title[1024],
const char* host_file, const char* curdir);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><E0A0AC><EFBFBD> host_file ᮢ<><E1AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>, <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD> OpenFilePlugin. <20><><EFBFBD><E0A0AC><EFBFBD> curdir ᮢ<><E1AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SetFolder.
int __stdcall ReadFolder(HANDLE hPlugin, unsigned dirinfo_start,
unsigned dirinfo_size, void* dirdata);
<EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. hPlugin - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> OpenFilePlugin <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
dirinfo_start - <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, dirinfo_size - ᪮<>쪮 䠩<><E4A0A9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20> dirdata <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><E2A2AE><EFBFBD><EFBFBD> <20>㭪樨 70.1.
bool __stdcall SetFolder(HANDLE hPlugin, const char* relative_path, const char* absolute_path);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. relative_path - <20><EFBFBD><E2ADAE><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (".." <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>),
absolute_path - <20><><EFBFBD><E1AEAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>).
void __stdcall GetFiles(HANDLE hPlugin, int NumItems, void* items[], void* addfile, void* adddir);
bool __stdcall addfile(const char* name, void* bdfe_info, HANDLE hFile);
bool __stdcall adddir(const char* name, void* bdfe_info);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>, <20><20><><><E4ABA0><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> GetOpenPluginInfo, <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 1.
<EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD><><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20> <20><><EFBFBD>砥, <20><20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A5AA><EFBFBD><E1A8A2><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
hPlugin - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> OpenFilePlugin.
NumItems - <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢.
items - <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3AAA0><EFBFBD><E2A5AB> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BDFE.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砩 NumItems=-1, items=NULL <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><><E4A0A9>" (<28><><20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
addfile, adddir - callback-<2D>㭪樨 kfar'<27>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> false <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><E0A2A0> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>".
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> name <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 ⥪<><20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><E0A0AC><EFBFBD> bdfe_info -
<EFBFBD><EFBFBD><EFBFBD> <20><><><E1AEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (40 <20><><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> <20>㭪樨 70.5.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> hFile <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E3ADAA><EFBFBD> addfile <20><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><EFBFBD><E3ADAA><EFBFBD> read.
int __stdcall getattr(HANDLE hPlugin, const char* filename, void* info);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20><><E4A0A9>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> info <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><E2A2AE><EFBFBD><EFBFBD>
<EFBFBD>㭪樨 70.5.
HANDLE __stdcall open(HANDLE hPlugin, const char* filename, int mode);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> filename. <20><><EFBFBD><E0A0AC><EFBFBD> mode <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2> <20> <20><><20><><EFBFBD>ᨨ kfar <20><EFBFBD><E1A5A3><><E0A0A2> 1.
unsigned __stdcall read(HANDLE hFile, void* buf, unsigned size);
<EFBFBD><EFBFBD><EFBFBD> size <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> buf <20><><><E4A0A9> hFile, ࠭<><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>१ open.
kfar <20><><EFBFBD><E0A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> size <20><><EFBFBD>⥭ 512 <20><><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>: <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD> <20><><EFBFBD><EFBFBD>, -1 <20><><EFBFBD> <20><EFBFBD><E8A8A1>.
void __stdcall setpos(HANDLE hFile, __int64 pos);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9> hFile, ࠭<><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>१ open, <20> pos.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> pos <20><><EFBFBD>⭮ 512 <20><><EFBFBD><EFBFBD>.
void __stdcall close(HANDLE hFile);