на главную предыдущая страница следующая страница

Первая программа: hello, world!

Настало время запустить первую программу.

static struct PluginStartupInfo Info;

void WINAPI GetGlobalInfoW(struct GlobalInfo *Info)
{
Info->StructSize=sizeof(GlobalInfo);
Info->MinFarVersion=FARMANAGERVERSION;
Info->Version=PLUGIN_VERSION;
}

void WINAPI SetStartupInfoW(const struct PluginStartupInfo *psi)
{
Info=*psi;
}

void WINAPI GetPluginInfoW(struct PluginInfo *Info)
{
Info->StructSize=sizeof(*Info);
static const wchar_t *PluginMenuStrings[1];
//сразу создаем пункты меню
PluginMenuStrings[0]=GetMsg(MTitle);
Info->PluginMenu.Guids=&MenuGuid;
Info->PluginMenu.Strings=PluginMenuStrings;
Info->PluginMenu.Count=ARRAYSIZE(PluginMenuStrings);
}

HANDLE WINAPI OpenW(const struct OpenInfo *OInfo)
{
const wchar_t *MsgItems[]=
{
GetMsg(MTitle),
GetMsg(MMessage1),
GetMsg(MMessage2),
GetMsg(MMessage3),
GetMsg(MMessage4),
L"\x01", /* separator line */
GetMsg(MButton),
};
Info.Message(&MainGuid, &MainGuid, /* GUID */
FMSG_WARNING|FMSG_LEFTALIGN, /* Flags */
L"Contents", /* HelpTopic */
MsgItems, /* Items */
ARRAYSIZE(MsgItems), /* ItemsNumber */
1); /* ButtonsNumber */
return INVALID_HANDLE_VALUE;
}

Так, что же, собственно, произошло?