Вопрос по написанию модулей
- qmor
- Не в сети
- New Member
Меньше
Больше
- Сообщений: 3
- Спасибо получено: 0
15 года 7 мес. назад #1
от qmor
qmor создал тему: Вопрос по написанию модулей
Хочу написать небольшой плагин для смены икс-статуса. Скачал SDK почитал API но все же не работает у меня смена статуса. Что я делаю не так?
function pluginFun (data:pointer):pointer;stdcall;
begin
result:=str2comm(char(206)+char(15)+_istring('1111')+_istring('esss'));
end;
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Vinum
- Не в сети
- Premium Member
Меньше
Больше
- Сообщений: 159
- Спасибо получено: 0
15 года 7 мес. назад #2
от Vinum
Vinum ответил в теме RE: Вопрос по написанию модулей
из апи:То есть примерно вот что должно получиться:
if cmd = PC_SET_XSTATUS // set user x-status
BYTE xstatus code
ISTRING xstatus name
ISTRING xstatus text
procedure SetXStatus(code: Byte; name,text: String);
begin
callStr(ansichar(PM_CMD)+ansichar(PC_SET_XSTATUS)+ansichar(code)+_istring(name)+_istring(text));
end;
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- qmor
- Не в сети
- New Member
Меньше
Больше
- Сообщений: 3
- Спасибо получено: 0
15 года 7 мес. назад #3
от qmor
переписал вот так, но эффекту не последовало
qmor ответил в теме RE: Вопрос по написанию модулей
function pluginFun (data:pointer):pointer;stdcall;
begin
result:=str2comm(ansichar(5)+ansichar(206)+ansichar(15)+_istring('1111')+_istring('esss'));
end;
переписал вот так, но эффекту не последовало
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Vinum
- Не в сети
- Premium Member
Меньше
Больше
- Сообщений: 159
- Спасибо получено: 0
15 года 7 мес. назад #4
от Vinum
При инициализации плагина должен выставиться допстатус.
Vinum ответил в теме RE: Вопрос по написанию модулей
function pluginFun(data: Pointer): Pointer; stdcall;
begin
Result := NIL;
if (data = NIL) or (_int_at(data) = 0) then exit;
case _byte_at(data, 4) of
PM_EVENT:
case _byte_at(data, 5) of
PE_INITIALIZE:
begin
callback:=_ptr_at(data, 6);
Result := str2comm(char(PM_DATA) + _istring('Имя плагина') + _int(APIversion));
callStr(ansichar(PM_CMD)+ansichar(PC_SET_XSTATUS)+ansichar(code)+_istring(name)+_istring(text));
end
end;
end;
end;
При инициализации плагина должен выставиться допстатус.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- qmor
- Не в сети
- New Member
Меньше
Больше
- Сообщений: 3
- Спасибо получено: 0
15 года 7 мес. назад #5
от qmor
qmor ответил в теме RE: Вопрос по написанию модулей
а где находится функция callstr? что то так не могу найти.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Vinum
- Не в сети
- Premium Member
Меньше
Больше
- Сообщений: 159
- Спасибо получено: 0
15 года 7 мес. назад #6
от Vinum
Vinum ответил в теме RE: Вопрос по написанию модулей
Дак это... в CallExec.pas
var
callback:TpluginFun; // &RQ callback function
outBuffer:string;
// convert a string to a "plugin communication"
function str2comm(s:string):pointer;
begin
outBuffer:=_int(length(s))+s;
result:=@outBuffer[1];
end; // str2comm
// execute callback on a string instead of pointer
function callStr(s:string):pointer;
begin
result:=callback(str2comm( s ))
end;
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Модераторы: dek, Rapid D
Время создания страницы: 0.462 секунд