Показать сообщение отдельно
  #4  
Старый 29.02.2008, 17:11
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
Подмигивание

Если кратко:
Qip загружает dll с твоим плагином и найдя в ней функцию CreateInfiumPLUGIN, вызывает ее
при этом он передает тебе интерфейс для связи с сервером - PluginService: IQIPPluginService
а ты ему свой интерфейс - типа IQIPPlugin
для того чтобы работал твой интерфейс из двух функций предварительно создается объект класса
TQipPlugin.Create(PluginService)
сервер видит только твой интерфейс
PHP код:
IQIPPlugin = interface
  
// сервер получает информацию о плагине
    
function  GetPluginInfopPluginInfostdcall;
  
// сервер вызывает чтобы сообщить плагину о событиях (плагин загружен, запуск плагина, останов и т.д.)
  // смотри реализацию в классе TQipPlugin там все подробно расписано на чистом англицком
    
procedure OnQipMessage(var PlugMsgTPluginMessage); stdcall;
  
end
в своем плагине ты сам пишешь как ты будешь реагировать на событи
в общемто все кроме инициализации, описаний интерфейсов и констант можешь менять

когда ты хочешь чтото сообщить или получить от сервера то используешь его интерфейс
PHP код:
IQIPPluginService = interface
    
// позволяет тебе сохранить или загрузить сохраненные опции
    
function  PluginOptions(DllHandleLongInt): pPluginSpecificstdcall;
    
// посылаешь серверу вообщение на которое он отреагирует
    
procedure OnPluginMessage(var PlugMsgTPluginMessage); stdcall;
  
end
который ты сохранил в
PHP код:
constructor TQipPlugin.Create(const PluginServiceIQIPPluginService);
begin
  FPluginSvc 
:= PluginService;
end

В общем гдето так
удачи
Ответить с цитированием