Scripts plugin
- Author
- Message
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
No, I mean general purpose method to hide low-level details of interface implementation. Like that:
And it should be improved to use(automatic cleanup).
Code: Select all
function ImplementComInterface(
methods // [arrays of methods - imeplementations of interface]
) {
var psize = _X64?8:4;
var vtable = AkelPad.MemAlloc( methods.length*psize );
for(var idx: methods) {
var ptr = oSys.RegisterCallback(methods[i]);
AkelPad.MemCopy(_PtrAdd(vtablem idx*psize), ptr, 2);
}
return vtable;
}
function FreeVTable(vt, size) {
for(var i=0;i<size;i++) {
// unregister eachcallback
}
AkelPad.MemFree(vt);
}
var My_IntDef = [
My_QueryInterface,
My_AddRef,
My_Release,
My_ThisMethod,
My_ThatMethod,
My_OtherMethod,
My_YetAnotherMethod
];
var vt = ImplementComInterface(My_IntDef);
//! use it
FreeVTable(vt, My_IntDef.length);
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Добавлено: метод WScript.ConnectObject - подсоединиться к событиям объекта.
Добавлено: метод WScript.DisconnectObject - отсоединиться от событий объекта.
Добавлено: метод AkelPad.VarDispatch - получить IDispatch объект по указателю.
Added: WScript.ConnectObject method - connects to the object's events.
Added: WScript.DisconnectObject method - disconnects from the object's events.
Added: AkelPad.VarDispatch method - get IDispatch object of a pointer.
Scripts plugin v17.8
Добавлено: метод WScript.DisconnectObject - отсоединиться от событий объекта.
Добавлено: метод AkelPad.VarDispatch - получить IDispatch объект по указателю.
Added: WScript.ConnectObject method - connects to the object's events.
Added: WScript.DisconnectObject method - disconnects from the object's events.
Added: AkelPad.VarDispatch method - get IDispatch object of a pointer.
Scripts plugin v17.8
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Добавлено: возможность получить WScript объект AkelPad'а через AkelPad.WScript, когда скрипт запущен как ActiveX.
Added: possibility to get AkelPad's WScript object when script running as ActiveX via AkelPad.WScript.
Scripts plugin v17.9
Added: possibility to get AkelPad's WScript object when script running as ActiveX via AkelPad.WScript.
Scripts plugin v17.9
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
Instructor
As ActiveX still something wrong it works.
As ActiveX still something wrong it works.
Code: Select all
AkelPad.WScript.ScriptBaseName //-> "" (empty string)
AkelPad.WScript.ScriptFullName //-> "" (empty string)
AkelPad.WScript.ScriptName //-> "" (empty string)
AkelPad.WScript.FullName //-> "\.dll"
AkelPad.WScript.Quit() //WScript.exe hangs
AkelPad.WScript.ConnectObject(oWB, "WB_", "{34A715A0-6587-11D0-924A-0020AFC7AC4D}" /*DIID_DWebBrowserEvents2*/) //WScript.exe hangs
-
Offline
- Posts: 381
- Joined: Wed Sep 28, 2011 3:05 pm
Instructor
Почему-то такой код в скрипте не группирует действия в одно:
После отработки скрипта выделение не снимается, сколько ctrl + z не нажимай, как будто SetSel сам по себе. Фича, баг?
Почему-то такой код в скрипте не группирует действия в одно:
Code: Select all
AkelPad.SendMessage(hWndEdit, 3081 /*AEM_BEGINUNDOACTION*/, 0, 0);
AkelPad.SetSel(0, 15);
AkelPad.ReplaceSel("x");
AkelPad.ReplaceSel("y");
AkelPad.ReplaceSel("z");
AkelPad.SendMessage(hWndEdit, 3082 /*AEM_ENDUNDOACTION*/, 0, 0);
-
Offline
- Posts: 269
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
Instructor
Всё таки я решился озвучить одну идею (хотелку), прошу строго не судить.
Поскольку уже появились и плагин всё больше предоставляет для этого средства, то, пмсм, не хватает портабельности Scripts.dll (имеется в виду возможность регистрировать плагин в системе временно и/или с недостаточными правами пользователя). Для пользователей Total Commander (а таких, думаю, немало), хорошим решением могло бы стать добавление в Scripts.dll функционала wdx-плагина для TC (там, если я правильно понял, речь ): TC такие "wdx" может загружать при старте (и при любых правах) и их функции становятся доступны всем дочерним процессам TC. Примеры реализации: и .
Всё таки я решился озвучить одну идею (хотелку), прошу строго не судить.
Поскольку уже появились и плагин всё больше предоставляет для этого средства, то, пмсм, не хватает портабельности Scripts.dll (имеется в виду возможность регистрировать плагин в системе временно и/или с недостаточными правами пользователя). Для пользователей Total Commander (а таких, думаю, немало), хорошим решением могло бы стать добавление в Scripts.dll функционала wdx-плагина для TC (там, если я правильно понял, речь ): TC такие "wdx" может загружать при старте (и при любых правах) и их функции становятся доступны всем дочерним процессам TC. Примеры реализации: и .
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
See Scripts 18.0.KDJ wrote:As ActiveX still something wrong it works.
Группируются только изменения текста.Cuprum wrote:Почему-то такой код в скрипте не группирует действия в одно...
yozhic wrote:(имеется в виду возможность регистрировать плагин в системе временно и/или с недостаточными правами пользователя)
Code: Select all
reg QUERY "HKLM\SOFTWARE\Classes\CLSID\{DB045777-BAFF-416B-AA8E-A154E6A64A88}\ProgID" /ve
set ActiveXError=%ERRORLEVEL%
if %ActiveXError% == 1 regsvr32 /s Scripts.dll
wscript "Scripts\Translator.js"
if %ActiveXError% == 1 regsvr32 /u /s Scripts.dll
От меня ускользает практическая польза от этого.Для пользователей Total Commander (а таких, думаю, немало), хорошим решением могло бы стать добавление в Scripts.dll функционала wdx-плагина для TC ...