Scripts discussion (2)
- Author
- Message
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
Andrey_A_A
See also:
in AkelEdit.h:
AEM_GETURLLEFTDELIMITERS
AEM_SETURLLEFTDELIMITERS
in AkelDLL.h:
AKD_GETFRAMEINFO
FI_URLLEFTDELIMITERS
Script example: ResetUrlDelimiters.js
See also:
in AkelEdit.h:
AEM_GETURLLEFTDELIMITERS
AEM_SETURLLEFTDELIMITERS
in AkelDLL.h:
AKD_GETFRAMEINFO
FI_URLLEFTDELIMITERS
Script example: ResetUrlDelimiters.js
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
KDJ
From About Rich Edit Controls on MSDN Where:
RICHEDIT_CLASS for v1.0 is "RICHEDIT" (only ANSI version)
RICHEDIT_CLASS for v2.0 & v3.0 is "RichEdit20" +"A"/"W"
MSFTEDIT_CLASS for v4.1 is "RICHEDIT50W" (only UCS2 version)
(This constants are define in Richedit.h header file in Platform SDK)
So solution for you is probably:
Insert this snippet before first reference to RichEdit control(on the very beginning of script is not bad choice):Insert this snippet when You will no need RichEdit any more(after destroying all RichEdit windows You have created)
NB: It is essential You not to forget about this last snippet especially when script execution can be terminated, in order to prevent resource leak.(Since module was manually loaded it must be manually unloaded).
PS: By the way, You completely forgot about error checking facility which can explain most of "Why this does not works?":
From About Rich Edit Controls on MSDN
And there is an table of versions of RichEdit functionality.Versions of Rich Edit
The original specification for rich edit controls is Microsoft Rich Edit 1.0; the current specification is Microsoft Rich Edit 4.1. Each version of rich edit is a superset of the preceding one, except that only Asian builds of Microsoft Rich Edit 1.0 have a vertical text option. Before creating a rich edit control, you should call the LoadLibrary function to verify which version of Microsoft Rich Edit is installed.
Code: Select all
Rich Edit version DLL Window Class
1.0 Riched32.dll RICHEDIT_CLASS
2.0 Riched20.dll RICHEDIT_CLASS
3.0 Riched20.dll RICHEDIT_CLASS
4.1 Msftedit.dll MSFTEDIT_CLASS
RICHEDIT_CLASS for v1.0 is "RICHEDIT" (only ANSI version)
RICHEDIT_CLASS for v2.0 & v3.0 is "RichEdit20" +"A"/"W"
MSFTEDIT_CLASS for v4.1 is "RICHEDIT50W" (only UCS2 version)
(This constants are define in Richedit.h header file in Platform SDK)
So solution for you is probably:
Insert this snippet before first reference to RichEdit control(on the very beginning of script is not bad choice):
Code: Select all
richdll = oSys.Call("kernel32::LoadLibrary"+_TCHAR,"Riched20.dll");
Code: Select all
oSys.Call("kernel32::FreeLibrary", richdll);
PS: By the way, You completely forgot about error checking facility which can explain most of "Why this does not works?":
Code: Select all
if(!oSys.Call("user32::CreateWindowEx"+_TCHAR,...))
{
WScript.Echo(oSys.GetLastError());
}
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
jsBeautifier.js
Released test version.
Updated: Remove some unneeded get_next_token args (#139)
Added Russian localization for some messages.
Released test version.
Updated: Remove some unneeded get_next_token args (#139)
Added Russian localization for some messages.
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
FeyFre
Thank you very much for your extensive explanation about RichEdit. Now I understand almost everything.
AkelPad does not use Riched20.dll library.
1. To create AkelEdit control in AkelPad, you can use the class name AkelEditA/W or RichEdit20A/W.
2. To create original RichEdit control in AkelPad, you must load Riched32.dll (Msftedit.dll) library and create a window with class name RICHEDIT (RICHEDIT50W).
3. To create RichEdit in ActiveX, you must load Riched32.dll (Riched20.dll, Msftedit.dll) and create a window with class name RICHEDIT (RichEdit20A/W, RICHEDIT50W).
4. Question, how to create AkelEdit control in ActiveX?
Thank you very much for your extensive explanation about RichEdit. Now I understand almost everything.
AkelPad does not use Riched20.dll library.
1. To create AkelEdit control in AkelPad, you can use the class name AkelEditA/W or RichEdit20A/W.
2. To create original RichEdit control in AkelPad, you must load Riched32.dll (Msftedit.dll) library and create a window with class name RICHEDIT (RICHEDIT50W).
3. To create RichEdit in ActiveX, you must load Riched32.dll (Riched20.dll, Msftedit.dll) and create a window with class name RICHEDIT (RichEdit20A/W, RICHEDIT50W).
4. Question, how to create AkelEdit control in ActiveX?
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
I have no means to compile AkelEdit source.Instructor wrote:Yes, if you compile AkelEdit.dll from sources and load library as you did with Riched20.dll.
Can you compile AkelEdit and put AkelEdit.dll on download page (or put it in Scripts.zip)?.
It will then be available to everyone.
Thank you very much.