OpenW вызывается Far Manager'ом для запуска плагина.
HANDLE WINAPI OpenW( const struct OpenInfo *Info );
OpenInfo.StructSize >= sizeof(OpenInfo).Eсли функция завершается успешно, то возвращаемое значение - описатель плагина. Этот описатель позже будет передаваться другим функциям плагина для того,
чтобы позволить им различать различные копии загруженного плагина. Формат и содержание описателя не важны для Far Manager'а - они могут быть, к примеру,
адресом внутреннего объекта плагина, или адресом структуры с данными плагина, или любым другим уникальным идентификатором, отличным от нуля.
В случае неудачного завершения функции, возвращаемое значение должно равняться NULL.
Внимание!
OPEN_FROMMACRO, то возвращаемое значение формируется по правилам:0, макросу возвращается false.1 или INVALID_HANDLE_VALUE, макросу возвращается true.Values структуры
FarMacroCall и вернуть в Far
Manager указатель на эту структуру. Элемент должен быть типа
FMVT_PANEL. Макросу возвращается значение true.
NULL.
PANEL_STOP.
HANDLE WINAPI OpenW(const struct OpenInfo *OInfo)
{
Plist* hPlugin = new Plist();
if (OInfo->OpenFrom == OPEN_COMMANDLINE && (NORM_M_PREFIX(reinterpret_cast< LPCWSTR >(OInfo->Data))))
{
if (!hPlugin->Connect((wchar_t*)OInfo->Data))
{
delete hPlugin;
hPlugin = nullptr;
}
}
return hPlugin;
}