home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
wps
/
editor
/
epmtools
/
etkdoc
/
etke.inf
(
.txt
)
next >
Wrap
OS/2 Help File
|
1993-01-13
|
83KB
|
3,160 lines
ΓòÉΓòÉΓòÉ 1. Disclaimer - read first! ΓòÉΓòÉΓòÉ
The sample code for using the current version (5.51) of the E Toolkit and its
Enhanced Multi-Line Edit control (E-MLE) is being made available for the
benefit of those who need to use it now. It is being released "as-is", with no
promise of support, enhancement, or bug fixes. In addition, you should be
aware that we are currently working on a new, cleaner, API for the next major
update to EPM, which is not necessarily compatible with the one used in this
package.
In mentioning the "next major update", we are not guaranteeing that this will
ever be released outside of IBM. (That is not a decision that we can make.)
We are currently developing EPM 5.60, which includes long line support, pop-up
menus, and much more, and EPM 6.00, which is essentially a 32-bit version of
EPM 5.60.
If you have a need to develop on top of the newer E-MLE, then please send a
note to Gennaro Cuomo (gcuomo at watson.IBM.com) describing why you need it.
This will help us demonstrate demand for the new code, and *might* get you on
our beta-test list.
ΓòÉΓòÉΓòÉ 2. Introduction. ΓòÉΓòÉΓòÉ
The E-Toolkit assists a software developer in building applications that edit
multiple lines of text. The E-Toolkit gives developers access to OS/2
functions and PM messages that enable the creation and manipulation of an
advanced multi-line edit control window. This multi-line edit window contains
an advanced text editor engine based on the "E" text editor technology. (The E
Family of text editors include, E3 for DOS, E3AIX for AIX, EOS2 for Full Screen
OS/2, EPM and EPM/G for OS/2 Presentation Manager.) This multi-line edit
window is referred to as the E-MLE. The E-MLE is a versatile control window
that supports many primitive operations which allow easy access to powerful
text editing capabilities.
For example, The E-MLE supports the editing of large files (limited only by
system memory). Each E-MLE can store multiple files, each of which can be
viewed one at a time. (The feature is known as a "file RING") The E-MLE
supports text with associated attribute information. Using the attribute
feature your application can display text in Multiple Fonts, Multiple colors,
and even associate commands with regions of text. (Associating commands with
regions of text can be a way of implementing HyperText.) An advanced feature
is available which allows other window classes to be overlayed with in a E-MLE.
Using this "Overlay Window" feature, a E-MLE can incorporate images along with
text.
The E based editor engine runs in its own separate work thread. Therefore, when
primitive commands are executed (i.e. Load a file) the main process is not
blocked. This built-in feature leads to programs that efficiently use the
computers CPU.
The behavior of an E-MLE can be enhanced by adding new methods of behavior in
any of the following ways. The E-MLE can be sub-classed using traditional PM
functions written in C. (i.e WinSubclassWindow(...)). New methods can also be
added to an E-MLE by simply extending event definitions by writing E or REXX
macros.
This document describes the Application Program Interface (API) of the
E-Toolkit. Examples are provided that demonstrate some of the more popular way
in which an E-MLE can be used.
As mentioned above, The E-MLE can also be extended by writing Macros. The E
Technical Reference manual describes how macros can be written.
ΓòÉΓòÉΓòÉ 3. Writting programs using the E Toolkit ΓòÉΓòÉΓòÉ
There are four basic steps to creating an E-MLE window. The first step is to
Register the E-MLE window class. After Registration, a data structure,
describing the desired characteristics of your E-MLE, must be created. The
next step involves actually creating the E-MLE and an receiving a handle to the
E-MLE in return. This handle can now be used to manipulate the E-MLE window.
1. Register the E-MLE window Class.
2. Fill in Data Structure.
3. Create the E-MLE.
4. Manipulate E-MLE
ΓòÉΓòÉΓòÉ 4. Getting Started. ΓòÉΓòÉΓòÉ
In order to write application programs using the E-Toolkit you first need to
download the latest EPM/G package from OS2TOOLS. You will also need copies of
the OS/2 1.3 Programmers ToolKit, and the IBM C/2 compiler. (We currently
provide language bindings to the 'C' programming language. ('ETOOLKT.H')
Unpack the FLSBIN files that make up the EPM/G package. (Use LOADRAM to unpack
FLSBIN files.)
There are four major pieces that are essential to the building of your own
custom editor application.
1. ETKExxx.DLL - Heart of the E-Toolkit
2. ETKRxxx.DLL - Utility Resources
3. E-Macros - Utility Resources
4. Your Application/Sample Programs
ΓòÉΓòÉΓòÉ 4.1. ETKExxx.DLL - The "Heart" of the E-Toolkit ΓòÉΓòÉΓòÉ
The first file is ETKExxx.DLL. This is the dynamic link library that contains
the powerful functions that will allow you to create your own custom E-MLE
windows. Both messages and functions are available for a user to subclass the
behavior of an E-MLE. Sample functions include: EtkInsertText,
EtkProcessEditKey, and EtkSetFileField, and EtkQueryText Sample message include
the EPM_EDIT_COMMAND message allows any of the editor commands to be issued
against the receiving edit window. The API to this library is described in
detail in this document.
ΓòÉΓòÉΓòÉ 4.2. ETKRxxx.DLL - Utility Resources ΓòÉΓòÉΓòÉ
The second file of interest is ETKRxxx.DLL. This file contains Utility
Resources. We call this our ERES-Toolkit. It contains widgets that enhance
productivity when working with E-MLE's. Dialogs boxes such as the Search,
Bookmark, and Error Message dialog can be displayed using the
EResPopDialog(...) function. Other utility functions like
EResCountEditWindow(...) and EResOpenEditWindow(...) are examples of
functions provided so programmers need not write some of the most common
actions taken upon E-MLE windows. The API to this library is described in
detail in this document.
ΓòÉΓòÉΓòÉ 4.3. E-Macros - Utility Resources ΓòÉΓòÉΓòÉ
The set of E macros files can be use to build your own custom macros which will
enhance your applications E-MLE. For example, you can build new commands using
the E macros "defc" construct that can be executed in C using either the
EtkExecuteCommand function of the EPM_EDIT_COMMAND message.
ΓòÉΓòÉΓòÉ 4.4. Your Application/Sample Programs ΓòÉΓòÉΓòÉ
This is the program that you write. For example EPM.EXE. EPM.EXE is small
piece of code that creates E-MLE's and provides the proper glue needed to tie
in dialogs, help, macros, and etc. (The *source code* to EPM.EXE ver 5.50 is
available via request to EOS2. It will become a permanent piece of our toolkit
package.)
Note: It is important that the two dynalink libraries are placed in a
sub-directory that is specified in your LIBPATH environment variable. (Your
LIBPATH environment variable is found in your CONFIG.SYS file.)
Before you attempt to write you own application, you should examine the sample
programs provided with this package. A sample program named ESIMPLE is provided
to demonstrate the "basics" of an E-MLE application. The sample contains two
source files:
o ESIMPLE.C
o ESIMPLE.E
ESIMPLE.C creates a parent window containing a single E-MLE window. The
parent monitors cursor movement within the E-MLE by processing the
EPM_EDIT_CURSORMOVE message. When this message is received, a status line is
painted containing the line and column of the cursor.
ESIMPLE.E contains a definition of a handful of keys.
ESIMPLE.MAK is provided to compile and link all components of the ESIMPLE
example. (When you build your own custom application, be sure to use the same
link and compile options as used in the example.
You are now ready to write your own editor application using the Editor
Toolkit.
ΓòÉΓòÉΓòÉ 4.5. Special Notes!!! ΓòÉΓòÉΓòÉ
1. PM Queue size.
Take note of the PM Queue Size specified in the ESIMPLE program.
hmq = WinCreateMsgQueue(hab, 0x100); // Create Queue
We strongly recommend the above PM queue definition because the E-MLE
requires a large queue for message passing.
2. E-MLE window handles. (E-MLE Positioning)
The E-MLE window is a standard PM window. At minimum, it contains a frame
window as well as a client window. (You can us the PMstyle flag to add
any other standard window control as well.) To position the E-MLE window
one must use the frame window handle. The EtkCreate function returns a
handle to the E-MLE client window. The following is an example of
positioning an E-MLE window.
VOID PositionMLE( HWND hwndMLE, SHORT x, SHORT y, SHORT cx, SHORT cy)
{ HWND hMLEFrame=WinQueryWindow( hwndMLE, QW_PARENT, FALSE );
WinSetWindowPos(hMLEFrame, NULL, x ,y ,cx ,cy, SWP_MOVE | SWP_SIZE);
}
ΓòÉΓòÉΓòÉ 5. E Toolkit functions at a glance. ΓòÉΓòÉΓòÉ
The following functions are used to create and manage E-MultiLine Edit (E-MLE)
windows:
ΓòÉΓòÉΓòÉ 5.1. Register, Create, Delete functions (The basics) ΓòÉΓòÉΓòÉ
The following Dynalink functions are used to registration, initialization, and
destroy E-MLE windows.
EtkRegister
Register the E-MLE window class.
EtkCreate
Create an E-MLE Window.
EtkDestroy
Destroy a Edit Window.
EtkVersion
Retrieve the ETKxxx.DLL version number.
EtkGetProcAddrs
Retrieve function address of the "basic" functions.
ΓòÉΓòÉΓòÉ 5.2. Special Access- E-MLE Manipulation ΓòÉΓòÉΓòÉ
The following Dynalink functions are used to manipulate various aspects of an
E-MLE.
ΓòÉΓòÉΓòÉ 5.2.1. Event Execution. ΓòÉΓòÉΓòÉ
EtkExecuteCommand
Execute an command
EtkProcessEditKey
Execute a "built-in" key action
ΓòÉΓòÉΓòÉ 5.2.2. Text Minipulation ΓòÉΓòÉΓòÉ
EtkDeleteText
Delete a line of text.
EtkReplaceText
Replace a line of text with a new line.
EtkInsertText
Insert a new line of text.
EtkQueryText
Retreive a line of text.
EtkQueryTextBuffer
Retreive a range of lines.
EtkInsertTextBuffer
Insert a stream of text.
EtkFindAttribute
Search for an attribute associated with a line.
ΓòÉΓòÉΓòÉ 5.2.3. Text Selection ΓòÉΓòÉΓòÉ
EtkSetSelection
Select text
EtkQuerySelection
Query selection region.
EtkQuerySelectionType
Query Selection Type.
ΓòÉΓòÉΓòÉ 5.2.4. File Information ΓòÉΓòÉΓòÉ
EtkQueryFileID
Query the active files id.
EtkSetFileField
Set file related information
EtkQueryFileField
Query file related information
EtkQueryFileFieldString
Query file related information
ΓòÉΓòÉΓòÉ 5.2.5. Fonts ΓòÉΓòÉΓòÉ
EtkRegisterFont
Register a new font
EtkRegisterFont2
Register a new fixed pitch font.
ΓòÉΓòÉΓòÉ 5.2.6. Special Access. ΓòÉΓòÉΓòÉ
EtkAccessLowLevelData
It's a secret. :-)
ΓòÉΓòÉΓòÉ 6. Register, Create, Delete functions (The basics) ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 6.1. EtkRegister ΓòÉΓòÉΓòÉ
EtkRegister -
(Register an E-Multi-line Edit Window)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Register the E-Multi-Line Edit Window Class for this process.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkRegister ( hab, class_style , Window_Class_Name )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hab ( HAB ) - input
Application anchor block
class_style ( ULONG ) - input
Default window style. This can be any of the standard PM class styles
CS_*.
Returns
Window_Class_Name (PSZ ) -
Pointer to window-class-name string in which the editor window was
registered under.
Remarks
This call only needs to be called once per application. This function
issues a WinRegisterClass. Your application can customize this
registration process. The first 16 bytes of window storage is reserved
for the E-MLE window. You can use EtkWndProc as the default window
procedure for your custom class.
Example
WinRegisterClass( // Register Window Class
(HAB)hab, // Anchor block handle
(PSZ)classEwindow, // Window Class name
(PFNWP)EtkWndProc, // Address of Window Procedure
(ULONG)class_style, // class style
(USHORT)16 // ETK uses the first 16bytes of
); // the reserved long.
ΓòÉΓòÉΓòÉ 6.2. EtkCreate ΓòÉΓòÉΓòÉ
EtkCreate -
(Create a E-Multi-Line Edit Control Window)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Create a new E-Multi-line edit control window containing specified
file(s).
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkCreate ( epm_p, hwnd_p , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
epm_p ( PEDITORINFO ) - input
Pointer to Text Editor Information Structure.
.---------------------------------------------------------------------------.
| Editor Information Structure defined in 'C' |
|---------------------------------------------------------------------------|
| typedef struct EDIT_INFO_TYPE { |
| HAB hab; // application anchor block |
| HWND hwndparent; // handle to parent of edit window |
| HWND hwndowner; // handle to owner of edit window |
| PRECTL pswp // positioning of edit window |
| PSZ filename; // file to be edited (with wildcard) |
| HPOINTER hEditPtr; // handle to editor pointer icon. |
| HPOINTER hMarkPtr; // handle to mark pointer icon. |
| PVOID hEditorIcon; // editor ICON. |
| ULONG editorstyle; // internal editor options |
| ULONG pmstyle; // PM standard window styles (FCF_xxxx) |
| USHORT font; // - Not used in versions greater than 5.20 |
| PSZ exfile; // pre-compiled macro code file (EPM.EX) |
| PSZ *topmkr; // top and bottom of file marker |
| PSZ *botmkr; // |
| SHORT editid; // unique window id specified for edit window |
| PSZ exsearchpath; // a set of paths to search for ex's files |
| PSZ exe_path; // path where the application started |
| HINI hini; // handle to an opened ini profile |
| } EDITORINFO; |
| |
'---------------------------------------------------------------------------'
See Appendix A for a detailed description of the EDITORINFO structure.
hwnd_p ( PHWND) - output
Pointer to E-MLE's client window.
Returns
rc ( USHORT ) -
TRUE if a error occurred during E-MLE window creation.
Remarks
This call creates a unique E-MLE window. Each E-MLE is a complete new
instance of the text editor. Therefore, it knows little about any other
E-MLE windows that have been previously created. Each E-MLE window has
it's own marks, tabs, margins, and etc.
Starting with version 5.50, the E-MLE's use GPI fonts for text I/O. An
E-MLE window can render text in multiple font faces and sizes. (See
Appendix ???????)
An application can create as many E-MLE's as system memory will permit.
Each E-MLE instance can contain a ring a files. A RING can contain as
many files as system memory will permit.
ΓòÉΓòÉΓòÉ 6.3. EtkDestroy ΓòÉΓòÉΓòÉ
EtkDestroy -
(Destroy a Multi-line Edit Control Window)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Close a E-MLE window.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkDestroy ( hab, hwndOwner, hwndEdit , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hab ( HAB ) - input
Anchor block
hwndOwner ( HWND ) - input
Handle of the owner of the E-MLE window. Usually this is the
application client window.
hwndEdit ( HWND ) - input
E-MLE window to destroy
Returns
rc ( USHORT ) -
One of the following messages are returned. (These messages are defined
in EDLL.H)
o EPM_RC_DESTROYOK - E-MLE window has successfully closed.
o EPM_RC_DESTROYTIMEOUT - the interpreter has timed out because it was either
running a very long command, or it was executing a defexit that had a
problem.
o EPM_RC_DESTROYCANCEL - the user did not wish to close the E-MLE window.
Remarks
Since E is a memory based editor, the destroy function will not effect the
most recent copy of the text file on disk. The destroy function generates
a WM_DESTROY message. It is this message that actually closes the edit
window. You may choose to send this message directly instead of using the
destroy function. It is important to check the return code when sending
the E-MLE window a WM_DESTROY. If the E-MLE window receives a destroy
message, and a modified file exists in its ring, an EPM_EDIT_ASKTOCLOSE
message is sent to the application. (See EPM_EDIT_ASKTOCLOSE message in
the section "Editor Toolkit Messages" ) This message gives the application
a chance to display a dialog box asking the user if they want to "really
close" the window.
ΓòÉΓòÉΓòÉ 6.4. EtkVersion ΓòÉΓòÉΓòÉ
EtkVersion -
(Dynalink Version)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Get the version of the Editor dynalink library(ETKExxx.DLL)
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkVersion (version_str, )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
version_str ( PSZ ) - output
Pointer to a buffer of memory. This will be filled with the current
dynalink version. The return string is in the following format:
byte [1] - length of string to follow.
byte [2 - length] - Null terminated version string.
Returns VOID
Remarks
A constant, 'EVERSION', is provided in the EDLL.H file. This constant is
to be compared to the results of the EtkVersion procedure. An example
follows:
Example
CHAR EDLLVersion[20];
EtkVersion( EDLLVersion ); // Get Version from .DLL
vercmp=strcmp( EDLLVersion, EVERSION ); // compare version numbers
if (vercmp) {
WinMessageBox ((HWND)HWND_DESKTOP, // Display editor return code
(HWND)hwndAppFrame,
(PSZ)"Version Mismatch",
(PSZ)"Check ETKExxx.DLL version",
NULL,
MB_ICONEXCLAMATION
);
return(1);
}
ΓòÉΓòÉΓòÉ 7. Special Access Functions- E-MLE Manipulation ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 7.1. Event Execution. ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 7.2. EtkExecuteCommand ΓòÉΓòÉΓòÉ
EtkExecuteCommand -
(Execute an E -Command)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
This function will execute any predefined command.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkExecuteCommand ( hwndEdit, command , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle to the E-MLE in which the specified command will execute.
command ( PSZ ) - input
An asciiz command string that is defined as either an internal command,
an E macro, or a REXX macro.
Returns
rc ( ULONG ) -
TRUE if action failed.
Remarks
This is one of the more versatile commands available in the E Toolkit.
Three classes of commands can be executed:
o Internal Commands. (examples - SAVE, L[ocate], and C[hange]).
o Predefined E macros. (examples - ADD, DRAW, and GET)
o REXX macros commands. (examples - RX SORT.ERX, RX ADDMENU.ERX, RX NEW.ERX)
An example of how to use this function follows.
Example
{
HWND hwndEdit=QueryEditHandle( );
// issue a "save" command to an E-MLE. The data is saved in
// a file called temp.tmp.
EtkExecuteCommand( hwndEdit, "SAVE temp.tmp") ;
}
ΓòÉΓòÉΓòÉ 7.3. EtkProcessEditKey ΓòÉΓòÉΓòÉ
EtkProcessEditKey -
(Execute a editor action)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Execute a primitive editor action.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkProcessEditKey ( hwndEdit, key , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
hwndEdit ( HWND ) - input
Window handle of the E-MLE.
key ( USHORT ) - input
Built in key primitives:
ADJUST_BLOCK
BACKTAB Tab to the left.
BACKTAB_WORD Tab to the left one word.
BEGIN_LINE Move the cursor to the beginning of the line.
BOTTOM Move the cursor to the last line in the file.
COPY_MARK Copy the current selection to the cursor location.
DELETE_CHAR Delete the character in which the cursor is located.
DELETE_LINE Delete the line in which the cursor is located.
DELETE_MARK Delete the current selection.
DOWN Scroll down one line.
END_LINE Move the cursor to the end of the current line.
ERASE_END_LINE Erase from the cursor to the end of the line.
INSERT_LINE Insert a new line after the cursor.
INSERT_TOGGLE Toggle between insert and replace cursor.
JOIN Join next line with the line in which the cursor is located.
LEFT Scroll one character to the left.
MOVE_MARK Move the current selection to the cursor location.
NEXT_FILE Go to the next file in the Ring.
OVERLAY_BLOCK Overlay the current block selection to the cursor location.
PAGE_DOWN Scroll one page down.
PAGE_UP Scroll one page up.
PREVFILE_OP Go to the previous file in the Ring.
REFLOW Reflow the text according to the margins settings.
REPEAT_FIND Repeat the last find.
RIGHT Scroll right one character.
RUBOUT Move cursor to the left and delete character.
SHIFT_LEFT Shift the selected text one character to the left.
SHIFT_RIGHT Shift the selected text one character to the right.
SPLIT Split the current line at the cursor.
TAB Move cursor to the next tab position.
TAB_WORD Tab to the right one word.
TOP Move the cursor to the first line in the file.
UNDO_LINE Return the current line to its original state.
UNMARK Clear the current selection.
UP Scroll up one line.
Remarks
Example
ΓòÉΓòÉΓòÉ 7.4. Text Manipulation ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 7.5. EtkQueryText ΓòÉΓòÉΓòÉ
EtkQueryText -
(Retrieve a line)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Retrieve a line of text and its associated attributes.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkQueryText ( hwndEdit, fileid, linenum, Text, Attrs, ALAttr , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle to the E-MLE that will contain the selected text.
fileid ( ULONG ) - input
the fileid of the file containing the specified line. If 0 is
specified, the line will be retrieved from the visible file.
linenum ( ULONG ) - input
line number of interest.
Text ( PSZ * ) - output
Returns an indirect pointer to the text found on the specified line.
Attrs ( PVOID) - output
returns a pointer to an attribute structure that describes the
attributes (i.e. font, color) associated with that line.
ALAttrs ( PVOID ) - output
returns a pointer to an attribute structure that describes the
attributes (i.e. font, color) associated with that line.
Returns
rc ( ULONG ) -
TRUE if action failed.
Remarks
****************************************************************************
*** TODO - Need a section on how to interpret the attribute structures ***
****************************************************************************
Example
ΓòÉΓòÉΓòÉ 7.6. EtkDeleteText ΓòÉΓòÉΓòÉ
EtkDeleteText -
(Delete text)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Delete an area of text.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé ( hwndEdit, fileid, startline, number_oflines , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle to the E-MLE.
fileid ( ULONG) - input
the fileid of the file containing the specified line. If filid=0 is
specified, the line will be retrieved from the visible file.
startline ( ULONG ) - input
starting line number
num_of_lines ( ULONG ) - input
number of lines to delete. If (-1L) then lines are deleted from the
start line through the last line in the file.
Returns
rc ( ULONG ) -
TRUE if action failed.
Remarks
Example
ΓòÉΓòÉΓòÉ 7.7. EtkReplaceText ΓòÉΓòÉΓòÉ
EtkReplaceText -
(Replace a line)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Replace a line with a new single attributed string
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkReplaceText ( hwndEdit, fileid, linenum, AttrString, rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit (HWND ) - input
Window handle to the E-MLE that will contain the selected text.
fileid ( ULONG ) - input
the fileid of the file containing the specified line. If 0 is
specified, the line will be retrieved from the visible file.
linenum ( ULONG ) - input
starting line number
Attrs ( PVOID ) - input
a pointer to an attribute structure that describes the attributes (i.e.
font, color) associated with that line.
Returns
rc ( ULONG ) -
TRUE if action failed.
Remarks
****************************************************************************
*** TODO - Need a section on how to interpret the attribute structures ***
****************************************************************************
Example
ΓòÉΓòÉΓòÉ 7.8. EtkInsertText ΓòÉΓòÉΓòÉ
EtkInsertText -
(Add a line)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Insert a single attributed string
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkInsertText ( hwndEdit, fileid, linenum, AttrString, rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle to the E-MLE that will contain the selected text.
fileid ( ULONG ) - input
the fileid of the file containing the specified line. If 0 is
specified, the line will be retrieved from the visible file.
linenum ( ULONG ) - input
starting line number
Attrs ( PVOID ) - input
A pointer to an attribute structure that describes the attributes.
(i.e. font, color) associated with that line.
Returns
rc ( ULONG ) -
TRUE if action failed.
Remarks
****************************************************************************
*** TODO - Need a section on how to interpret the attribute structures ***
****************************************************************************
Example
ΓòÉΓòÉΓòÉ 7.9. EtkQueryTextBuffer ΓòÉΓòÉΓòÉ
EtkQueryTextBuffer -
(Query Text Buffer)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Retrieve a stream of text within a specified line range.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkQueryTextBuffer ( hwndEdit, startline, lastline, TotalLen, buffer , characters )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle of the E-MLE.
startline ( ULONG ) - input
First line in text range.
lastline ( ULONG ) - input
Last Line in range.
TotalLen ( ULONG ) - input
Size of buffer
buffer ( PSZ ) - output
Buffer where text stream will be returned.
Returns
characters (ULONG) -
The number of characters in the buffer is returned. If 0 is returned,
it is likely that a problem occured. (Most likely an invalid line
number)
Remarks
If startline and lastline are zero (0), the entire file will be returned.
The Buffer contains a stream of characters where each line ends in CR-LF.
ΓòÉΓòÉΓòÉ 7.10. EtkInsertTextBuffer ΓòÉΓòÉΓòÉ
EtkInsertTextBuffer -
(Insert Text Buffer)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Enter a stream of text starting at a specified point.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkInsertTextBuffer ( hwndEdit, startline, TotalLen, Text , lines )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle of the E-MLE.
startline ( ULONG ) - input
Insert starting at this line.
TotalLen ( ULONG ) - input
Size of buffer
Text ( PSZ ) - input
Text stream to insert.
Returns
lines ( ULONG ) -
The number of lines inserted in to the E-MLE. If 0 is returned, it is
likely that a problem occured. (Most likely an invalid line number)
Remarks
If startline is zero (0), the Text is inserted at the current cursor
position.
The Text buffer should contain a stream of characters where each line ends
in CR-LF.
Example
{
UCHAR string[512],
strcpy(string, "1: This is a test\r\n2: This is line 2\r\n");
EtkInsertTextBuffer( hwndEdit, 1, strlen(string), string);
}
ΓòÉΓòÉΓòÉ 7.11. EtkFindAttribute. ΓòÉΓòÉΓòÉ
EtkFindAttribute. -
(Retrieve a line attribute)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Search for an attribute associated with a line.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkFindAttribute ( hwndEdit, fileid, linenum, Column, ColumnOffset, Attribute, pFound , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle to the E-MLE that will contain the selected text.
fileid ( ULONG) - input
the fileid of the file containing the specified line. If 0 is
specified, the line will be retrieved from the visible file.
linenum ( ULONG ) - input
starting line number
Column ( USHORT ) - input
starting column
ColumnOffset ( USHORT ) - input
Column Offset.
Attrs ( PVOID ) - input
A pointer to an attribute structure that describes the attributes (i.e.
font, color) associated with that line.
pFound ( BOOLEAN *) - output
found flag.
Returns
rc ( ULONG ) -
TRUE if action failed.
Remarks
****************************************************************************
*** TODO - Need a section on how to interpret the attribute structures ***
****************************************************************************
Example
ΓòÉΓòÉΓòÉ 7.12. Text Selection. ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 7.13. EtkQuerySelectionType ΓòÉΓòÉΓòÉ
EtkQuerySelectionType -
(Query Current Selection Type)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Returns the current selection type. The E Toolkit supports three types of
text selection. Character, Line, and Block.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkQuerySelectionType ( hwndEdit, marktype, rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle of the E-MLE.
marktype ( PUSHORT) - output
The E Toolkit will fill this value with a constant that represents the
type of mark contained in the visible file.
#define LINEMARK 0
#define CHARMARK 1
#define BLOCKMARK 2
#define CHARMARKG 3
#define BLOCKMARKG 4
#define NOMARK -1
Returns
rc ( USHORT) -
TRUE if action failed.
Remarks
Example
{
HWND hwndEdit=QueryEditHandle( );
USHORT marktype;
UCHAR outmsg[MAXSTR];
strcpy( outmsg, "Your file contains ");
EtkQuerySelectionType( hwndEdit, &marktype);
switch (marktype) {
case LINEMARK: strcat( outmsg, "a Line Mark"); break;
case CHARMARK: strcat( outmsg, "a Character Mark"); break;
case CHARMARKG: strcat( outmsg, "a Special Character Mark");break;
case BLOCKMARK: strcat( outmsg, "a Block Mark"); break;
case BLOCKMARKG: strcat( outmsg, "a Special Block Mark"); break;
default:
strcat( outmsg, "no mark.");
break;
}
}
ΓòÉΓòÉΓòÉ 7.14. EtkQuerySelection ΓòÉΓòÉΓòÉ
EtkQuerySelection -
(Selection Location)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Returns the coordinates of the selected text area.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkQuerySelection ( hwndEdit, firstline, lastline, firstcol, lastcol, markfileid, respectattributes, relative2file , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle of the E-MLE that contains selected text.
firstline, lastline ( PULONG ) - output
returns the first and last lines in the selected area.
firstcol, lastcol ( PUSHORT ) - output
returns the first and last columns in the selected area.
markfileid ( PULONG ) - output
returns the fileid of the file containing the selected text.
respectattributes ( PUSHORT ) - output
If TRUE, Font and color attribute information will be taken into
consideration.
relative2file ( PUSHORT ) - output
Should always be set to TRUE.
Returns
rc (USHORT) -
TRUE if action failed.
Remarks
Example
{
ULONG firstline, lastline;
USHORT firstcol, lastcol;
LONG markfileid;
SHORT marktype;
USHORT respectattributes=FALSE, relative2file=TRUE;
EtkQuerySelectionType( hwndEdit, &marktype);
if (marktype!=NOMARK) {
EtkQuerySelection(QueryActiveEdit(),
&firstline, &lastline,
&firstcol, &lastcol,
&markfileid,
respectattributes, relative2file);
}
}
ΓòÉΓòÉΓòÉ 7.15. EtkSetSelection ΓòÉΓòÉΓòÉ
EtkSetSelection -
(Select Text)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Specifiy the type of selection along with the area of text to be selected.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkSetSelection ( hwndEdit, firstline, lastline, firstcol, lastcol, firstoff, lastoff, marktype, fileid , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle to the E-MLE that will contain the selected text.
firstline, lastline ( ULONG ) - input
The first and last lines in the selected area.
firstcol, lastcol ( USHORT ) - input
The first and last columns in the selected area.
firstoff, lastoff ( USHORT ) - input
The attribute offset associated with the first and last column. (If
color or font attributes are not being used, set to 0)
marktype ( USHORT ) - input
#define LINEMARK 0
#define CHARMARK 1
#define BLOCKMARK 2
#define CHARMARKG 3
#define BLOCKMARKG 4
#define NOMARK -1
markfileid ( USHORT ) - input
the fileid of the file containing the selected text. If -1 is
specified, the text will be selected in the visible file.
Returns
rc (USHORT) -
TRUE if action failed.
Remarks
Example
{
ULONG firstline, lastline;
USHORT firstcol, lastcol;
LONG markfileid;
SHORT marktype;
USHORT respectattributes=FALSE, relative2file=TRUE;
EtkQuerySelectionType( hwndEdit, &marktype);
if (marktype!=NOMARK) {
HWND hwndEdit=QueryActiveEdit();
EtkQuerySelection(hwndEdit,
&firstline, &lastline,
&firstcol, &lastcol,
&markfileid,
respectattributes, relative2file);
// extend the mark one line.
EtkSetSelection(hwndEdit,
firstline, lastline+1,
firstcol, lastcol, 0, 0,
marktype,
markfileid);
}
}
ΓòÉΓòÉΓòÉ 7.16. File Information ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 7.17. EtkQueryFileID ΓòÉΓòÉΓòÉ
EtkQueryFileID -
(Query a files identifier)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Retrieve the visible files file identifier.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkQueryFileID ( hwndEdit, fileid , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle to the E-MLE that will contain the selected text.
fileid ( PUSHORT ) - input
returns the fileid of the visible file.
Returns
rc (USHORT) -
TRUE if action failed.
Remarks
The file identifier is an constant that is used by certian functions to
identify a particular file in an E-MLE window Ring.
Example
ΓòÉΓòÉΓòÉ 7.18. EtkSetFileField ΓòÉΓòÉΓòÉ
EtkSetFileField -
Set some file characteristic
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Set information pertaining to some aspect of a file. (i.e. Margin, Name,
etc)
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkSetFileField (hwndEdit, field, fileid, indata , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit ( HWND ) - input
Window handle of the E-MLE.
field. ( ULONG) - input
See Appendix A1 for field constants and values expected by each field.
fileid (ULONG) - input
the fileid
indata (PVOID) - input
The input data varies depending on the field being set. See Appendix
A-1 for field constants and values expected by each field.
Returns
rc (USHORT) -
TRUE if action failed.
Remarks
Example
{
UCHAR s[MAXSTR];
ULONG Browse;
Browse = 0L; // turn OFF browse mode - the file can now be modified.
EtkSetFileField(hwndMLE,(ULONG)READONLY_FIELD,(ULONG)0,(PVOID)Browse);
// Insert a stream of text...
strcpy( s,"Hello World\r\nAnother Line\r\nAnd another...");
EtkInsertTextBuffer( hwndMLE, 1, strlen(s), s);
Browse = 1L; // turn ON browse mode - the file is now read only!
EtkSetFileField(hwndMLE,(ULONG)READONLY_FIELD,(ULONG)0,(PVOID)Browse);
}
ΓòÉΓòÉΓòÉ 7.19. EtkQueryFileField ΓòÉΓòÉΓòÉ
EtkQueryFileField -
(Query some file characteristic)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Query information pertaining to some aspect of a file. (i.e. Margin, Name,
etc)
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé EtkQueryFileField ( hwndEdit, field, fileid, returndata , rc )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
hwndEdit (HWND) - input
Window handle of the E-MLE.
field. (ULONG) - input
See Appendix A1 for field constants and values expected by each field.
fileid (ULONG) - input
the fileid
returndata (PVOID) - output
data returned. This data varies depending on the field being queried.
See Appendix A1 for field constants and values expected by each field.
Returns
rc (USHORT) -
TRUE if action failed.
Remarks
Example
{
ULONG numlines;
// query the number of lines in a given file.
EtkQueryFileField(hwndMLE,(ULONG)LAST_FIELD,(ULONG)0,(PVOID)&numlines);
}
ΓòÉΓòÉΓòÉ 8. E Toolkit Messages ΓòÉΓòÉΓòÉ
Purpose The following messages are used to interact with an edit window object.
Remarks The numbering of the following messages are: (using C and PM
standards)
EPM_BROADCASTHELP
EPM_EDIT_OPTION
EPM_EDIT_PLAYKEY
EPM_EDIT_ACTIVATEFILEID
EPM_EDIT_POSTDONE
EPM_EDIT_ACTIVEHWND
EPM_EDIT_ASKTOCLOSE
EPM_EDIT_ASKTODONE
EPM_EDIT_ASKTOFAILED
EPM_EDIT_QUERYRECORDKEY
EPM_EDIT_ASKTOQUIT
EPM_EDIT_QUERY_HELP_INSTANCE
EPM_EDIT_CHANGEFONT * (to be implemented for 5.50)
EPM_EDIT_RECORDKEY
EPM_EDIT_CHAR
EPM_EDIT_RETCODE
EPM_EDIT_CLIPBOARDCOPY
EPM_EDIT_SAYERROR
EPM_EDIT_CLIPBOARDPASTE
EPM_EDIT_COMMAND
EPM_EDIT_SHOW
EPM_EDIT_COMMAND2
EPM_EDIT_TURN_OFF_HIGHLIGHT
EPM_EDIT_CONTROLTOGGLE * ( need access to CONTROL constants.)
EPM_EDIT_CURSORMOVE
EPM_EDIT_VERSION
EPM_EDIT_WIN2DOC * (Jason needs to document this one.)
EPM_EDIT_DESTROYNOTIFY
EPM_EDIT_DESTROYRC
EPM_EXTRAWINDOW_REFRESH
EPM_EDIT_DOC2WIN * (Jason needs to document this one.)
EPM_FRAME_MESSAGELINE
EPM_FRAME_STATUSLINE
EPM_EDIT_ENDRECORDKEY
EPM_EDIT_TASKLIST
------------- TODO ----------------
EPM_EDIT_EXEC_DYNALINK * (GAC has to document this one.)
EPM_GET_ERROR_MESSAGE
EPM_EDIT_EXEC_PROC
EPM_IS_HELP_LOADED
EPM_EDIT_GETMEM
EPM_PRINT_RENDERPAGE
EPM_EDIT_GETPROFILE
EPM_PRINT_RENDERPAGERC
EPM_EDIT_HELPNOTIFY
EPM_QHELP_TABLE
EPM_EDIT_ID
EPM_QUERY_GLOBDATA
EPM_EDIT_MINMAXFRAME
EPM_SEND_MACROS_ERRORS
EPM_EDIT_NEWFILE
-----------------------------------
Note: Editor messages are either send messages or receive messages. The send
messages are sent from your application to the edit window. The receive
messages are sent by an edit window to the registered owner's window procedure.
ΓòÉΓòÉΓòÉ 8.1. EPM_FRAME_STATUSLINE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.1.1. (Update Status Line) - Sent TO an E-MLE window ΓòÉΓòÉΓòÉ
Purpose Updates the status line's template and color.
Message Parameter 1 status_template (PSZ) Status temple string to be filled in
by status line. (See Remarks for status_template format)
Message Parameter 2 statusline_color( USHORT) (LOCHAR)foreground color
(HICHAR)background color
Return NULL
Remarks
If a color is not specified, then the current color is used. The pointer passed
in Message Parameter 1 IS FREED by this message. It must be allocated using
DosAllocSeg, because it is freed using DosFreeSeg.
The following tags are supported in the status template:
%l current line number.
%c current column number.
%f files in E-MLE Ring.
%m displays "Modified" if visible file is modified.
%i Displays "Insert" or "Replace"
%z - %x Displays character at cursor is ascii(%z) or in hex(%x).
%s Total number of lines in file.
%a Autosave value.
For example, if the following template string was passed:
Line=%l Column=%C Mode=%i, The Ring contains %f
The status line would display:
Line=1290 Column=72 Mode=Insert, The Ring contains 2 Files.
ΓòÉΓòÉΓòÉ 8.2. EPM_FRAME_MESSAGELINE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.2.1. (Update Message Line) - Sent TO an E-MLE window ΓòÉΓòÉΓòÉ
Purpose Updates the message line's text and color.
Message Parameter 1 message (PSZ) string to appear on message line
Message Parameter 2 messageline color( USHORT) (LOCHAR)foreground color
(HICHAR)background color
Return NULL
Remarks
If a color is not specified, then the current color is used. The pointer passed
in Message Parameter 1 IS FREED by this message. It must be allocated using
DosAllocSeg, because it is freed using DosFreeSeg.
ΓòÉΓòÉΓòÉ 8.3. EPM_EDIT_VERSION ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.3.1. (E-MLE Version) - Sent TO an E-MLE window ΓòÉΓòÉΓòÉ
Purpose Return the E-Toolkit version number.
Message Parameter 1 not used (LONG)
Message Parameter 2 not used()
Return NULL
Remarks
ΓòÉΓòÉΓòÉ 8.4. EPM_EDIT_TURN_OFF_HIGHLIGHT ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.4.1. (Turn Off Highlight) - Sent TO an E-MLE window ΓòÉΓòÉΓòÉ
Purpose Clear text circled by the CIRCLEIT macro.
Message Parameter 1 not used (LONG)
Message Parameter 2 not used()
Return NULL
Remarks
ΓòÉΓòÉΓòÉ 8.5. EPM_EDIT_QUERY_HELP_INSTANCE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.5.1. (Query Help Instance) - Sent FROM an E-MLE window ΓòÉΓòÉΓòÉ
Purpose The following is a request from the etoolkit for the handle of the help
instance
Message Parameter 1 not used (LONG)
Message Parameter 2 not used()
Return NULL
Remarks
This is how EPM.EXE handles this messages.
case EPM_EDIT_QUERY_HELP_INSTANCE:
if(!GlobData->hwndHelpInstance) {
GlobData->hwndHelpInstance = WinCreateHelpInstance(GlobData->hAB,&GlobData->hmiHelpData);
}
return(GlobData->hwndHelpInstance);
break;
ΓòÉΓòÉΓòÉ 8.6. EPM_BROADCASTHELP ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.6.1. (Broadcast Help) - Sent FROM E-MLE ΓòÉΓòÉΓòÉ
Purpose EPM_BROADCASTHELP is sent a E-MLE application when the help instance
has been initialized. To insure that all existing edit windows add their
helpsub tables to the help instance EPM_QHELP_TABLE is broadcasted to all edit
windows on the desktop informing them that help has been loaded. If no edit
windows are running then EPM_EDIT_QUERY_HELP_INSTANCE is issued to the shell in
order to create the help instance.
Message Parameter 1 not used (LONG)
Message Parameter 2 not used()
Return NULL
Remarks
This is how EPM.EXE handles this messages.
case EPM_BROADCASTHELP:
{
USHORT rc;
rc=ERESBroadcastMsgToEditWindows(GlobData, EPM_QHELP_TABLE, 0L,0L);
if(!rc) {
WinSendMsg(GlobData->eres.hwndAppClient,
EPM_EDIT_QUERY_HELP_INSTANCE, 0L, 0L);
}
}
break;
ΓòÉΓòÉΓòÉ 8.7. EPM_EDIT_DELETEFILE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.7.1. (Delete file from disk) ΓòÉΓòÉΓòÉ
Purpose Delete the file specified in mp1 from disk and free pointer
Message Parameter 1 filename(PSZ) Fully qualified file name.
Message Parameter 2 not used()
Return NULL
Remarks
ΓòÉΓòÉΓòÉ 8.8. EPM_EDIT_ACTIVATEFILEID ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.8.1. (Activate a file) ΓòÉΓòÉΓòÉ
Purpose Activate a file corresponding to the specified file identifier.
Message Parameter 1 fileid (LONG) A file identifier that could be obtained
using the EtkQueryFileID function.
Message Parameter 2 not used()
Return NULL
Remarks
ΓòÉΓòÉΓòÉ 8.9. EPM_EDIT_CHAR ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.9.1. (Issue a WM_CHAR message) ΓòÉΓòÉΓòÉ
Purpose An alternitive to the WM_CHAR message. It is handled exactly in the
same manner as WM_CHAR.
Message Parameter 1 mp1(MPARAM) See WM_CHAR in the PM Tech. Ref.
Message Parameter 2 mp2(MPARAM) See WM_CHAR in the PM Tech. Ref.
Return
Remarks
ΓòÉΓòÉΓòÉ 8.10. EPM_EDIT_CLIPBOARDCOPY ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.10.1. (Insert text into the PM Clipboard) ΓòÉΓòÉΓòÉ
Purpose Fast path to inserting text into the PM Clipboard.
Message Parameter 1 pTextBuf(PVOID) Pointer to a memory buffer containing text
to copy to the clipboard. The text is in a format described by mp2.
Message Parameter 2 mp2() Flag that describes what format of the memory
buffer, which was passed in mp1.
0 = CF_TEXT type buffer, terminated by nul
1 = EPM shared memory buffer (32byte head)
Return
Remarks
When the contents of mp1 is copied to the clipboard a EPM defc event is called
by the name of PROCESSCLIPBOARDCOPY. Arg(1) of this function is the original
buffer passed in as mp1. The caller may choose to free the buffer during this
command. If zero is passed as arg(1), an error was encountered. An error
message should be displayed at this point.
ΓòÉΓòÉΓòÉ 8.11. EPM_EDIT_COMMAND ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.11.1. (Editor Command Message - E-MLE) ΓòÉΓòÉΓòÉ
Purpose Issue a command to the E-MLE
Message Parameter 1 Edit command (PSZ) Any legal editor command. (See Appendix
B for a complete list of commands)
Message Parameter 2 command flags(USHORT) The following command flags can be
set with the EPM_EDIT_COMMAND message:
o COMMAND_SYNC - the command is sent to the edit interpreter thread and is
executed immediately or after the last command.
o COMMAND_FREESEL - free the selector of parameter one when done.
o COMMAND_GETABLE - the selector in parameter one is a getable shared segment.
Returns void
Remarks This message is the main source of communication to editor windows.
To send a message to a specific file, send any legal editor command (in string
form) to the associated edit window handle. Legal editor commands consist of
any of the base editor commands or any user defined commands. User commands
can be created within the editor macro language via DEFC's. For command
return codes see the EPM_EDIT_RETCODE message. See Appendix B for a complete
list of commands By default all commands sent or posted to edit windows are
copied and posted to the editor interpreter thread. By setting the
COMMAND_SYNC flag the command is sent to the editor interpreter, therefore it
will be executed immediately or after the last command is finished executing.
When an application other then the one that created an edit window wishes to
send a command to an edit window, that application must allocate a shared
segment for the command string (parameter one). The COMMAND_GETABLE flag
notifies the E Toolkit that the pointer in parameter one is that of a getable
shared segment. When an application wants the selector sent in parameter one
to be freed after it is used by the E Toolkit, the COMMAND_FREESEL flag must
be set. This flag is only valid for selectors allocated within the application
that created the edit window. A selector of a getable shared segment can't be
freed by the E Toolkit with this message.
ΓòÉΓòÉΓòÉ 8.12. EPM_EDIT_COMMAND2 ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.12.1. (Execute Command) - Sent TO an E-MLE window ΓòÉΓòÉΓòÉ
Purpose Same as EPM_EDIT_COMMAND, but if the command does not exist, no error
message is generated.
Message Parameter 1 See EPM_EDIT_COMMAND
Message Parameter 2 See EPM_EDIT_COMMAND
Return See EPM_EDIT_COMMAND
Remarks
ΓòÉΓòÉΓòÉ 8.13. EPM_EDIT_CHANGEFONT ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.13.1. (Change E-MLE's Font) ΓòÉΓòÉΓòÉ
Purpose Change E-MLE's base font.
Message Parameter 1 name(PSZ) Font Face Name.
Message Parameter 2 size(USHORT) Point Size. style(USHORT) Attribute Style.
Remarks
ΓòÉΓòÉΓòÉ 8.14. EPM_EDIT_TASKLIST ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.14.1. (Show/Hide Task list enty) ΓòÉΓòÉΓòÉ
Purpose This message can either show or hide a task list entry corresponding to
an E-MLE window. It also allows an application to set a prefix string before
the task list entry, which typically contains the name of the visible file.
Message Parameter 1 flag(LOUSHORT) Show task list entry flag TRUE=Show entry
FALSE = Hide entry
Message Parameter 2 Prefix_string(PSZ) String to be pre-pended to the task
list entry
Remarks This message can be either sent of posted, however, if this message is
posted, the application is responsible for freeing the string.
ΓòÉΓòÉΓòÉ 8.15. EPM_EDIT_RETCODE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.15.1. (Editor Command Message Return Code) ΓòÉΓòÉΓòÉ
Purpose Send to the registered owner in response to a edit command.
Message Parameter 1 Return string (PSZ) Text describing the return code.
Message Parameter 2 return code (USHORT) specific editor return code.
Remarks Sent to owner registered in the Editor Information structure. (See
Appendix A for more details on the Edit Information structure.) This message is
in response to a internal editor return code/ error code. See Appendix C for
editor return codes.
ΓòÉΓòÉΓòÉ 8.16. EPM_EDIT_CURSORMOVE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.16.1. (Editor Cursor Moved) ΓòÉΓòÉΓòÉ
Purpose The cursor has changed position in the edit window.
Message Parameter 1 row (ULONG) row of cursor in file
Message Parameter 2 column (ULONG) column of cursor in file
Remarks Sent to owner registered in the Editor Information structure. (See
Appendix A for more details on the Edit Information structure.) This message
gives the owner the capability to track the editor's cursor.
ΓòÉΓòÉΓòÉ 8.17. EPM_EDIT_ACTIVEHWND ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.17.1. (Editor received focus) ΓòÉΓòÉΓòÉ
Purpose Notify application that a specific edit window has become active.
Message Parameter 1 Edit Window Handle (HWND) Handle of active edit window.
Message Parameter 2 active file name (PSZ) Full path of top most file being
edited in active edit window.
Remarks Processing this message is useful if more than one edit window is
being used by a given application. The application does not need to keep
global information on each edit window because it is returned via this message.
ΓòÉΓòÉΓòÉ 8.18. EPM_EDIT_OPTIONS ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.18.1. (Get Editor Option Information) - Sent TO E-MLE ΓòÉΓòÉΓòÉ
Purpose Get a specified piece of editor information.
Message Parameter 1 Option Number (LONG) OPTIONS_xxxxx constant. (See
Remarks.)
Message Parameter 2 [Buffer](PVOID) Used by some options.
Return The returned value depends on the option selected. Constant that
specifies one of the following options:
OPTIONS_MARGINS Returns 4 bytes containing (lo to hi): left marg (CHAR), right
marg (CHAR), paragraph margin (CHAR), 0 (CHAR).
OPTIONS_LINE Returns line of file that contains the cursor. (ULONG)
OPTIONS_COLUMN Returns column of file that contains the cursor. (ULONG)
OPTIONS_INSERT Returns TRUE if cursor is in insert mode. (ULONG)
OPTIONS_AUTOSAVE Returns the number of changes before autosave. (ULONG)
OPTIONS_NTABS Returns the number of tab stops. (ULONG)
OPTIONS_NROWS Returns the total number of rows visible in the E-MLE. (uses the
default font height as a measument.)
OPTIONS_NCOLS Returns the total number of columns visible in the E-MLE. (uses
the default font width as a measument.) (ULONG)
OPTIONS_MODIFY Returns TRUE if the file has been modified. (last save) (ULONG)
OPTIONS_TAB Returns a pointer to a byte-table of tab values. The table is
terminated by a NULL character. (PBYTE)
OPTIONS_SEARCH Returns the last string searched by locate or change. (PSZ)
OPTIONS_GETTEXT Returns the line of text specified by high word of option
parameter. If high word is NULL the the line in which the cursor is
currently on is returned. Parameter 2 must contain a pointer to a
255 byte character array. The specified line will be placed into
this buffer. (PSZ)
OPTIONS_NAME Returns the name of the visible file.
OPTIONS_HWNDEXTRA Returns the handle to the extra area window. (HWND)
OPTIONS_HWNDEIOBJECT Returns the handle to the EI Work Thread. (PVOID)
OPTIONS_TEXTCOLOR Returns the text Foreground (LOUSHORT) and Background
(HIUSHORT).
OPTIONS_RING Returns a buffer filled with the name of the files within the
E-MLE ring. The buffer has the following format:
USHORT - length of filenames
UCHAR - delimitor
ULONG - fileid
CHAR[] - delimited string
OPTIONS_FILEID Returns the File ID of the visible file.
OPTIONS_QSELECTION Returns the type of selection.
This message is send to a edit window to get a specified option. All options
are returned in the form of a 4 byte return code. Here is an example of using
the Option message to get the total numbers of visible lines in a edit window.
VisibleLines = (ULONG)WinSendMsg( hwndEditWindow,
EPM_EDIT_OPTIONS,
OPTIONS_NROWS,
0L
);
ΓòÉΓòÉΓòÉ 8.19. EPM_EDIT_ID ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.19.1. Query Editor ID number ΓòÉΓòÉΓòÉ
Purpose Determine if a window handle is your E-MLE window.
Message Parameter 1 NULL not used
Message Parameter 2 NULL not used
Remarks This message is used to determine if a window handle is a edit window
handle. This message returns a 4byte return code. The way to determine if the
specified handle is a edit window is by checking if the Hi-order word contains
the value of EPM_EDIT_ID and the Lo-order word contains the value specified in
the create structure field, 'editid'. If a match is found in the Hi-order word
then the window handle is a edit window. If a match is found in both the
Hi-order word and the Lo-order word, then the window handle is a edit window
created by your application. An example follows:
result = WinSendMsg( hwndE, EPM_EDIT_ID, 0L, 0L );
match = MPFROM2SHORT(epm.editid,EPM_EDIT_ID);
if (result==match) {
/* Edit window found */
}
ΓòÉΓòÉΓòÉ 8.20. EPM_EDIT_SHOW ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.20.1. (Make edit window visible/invisible) ΓòÉΓòÉΓòÉ
Purpose Refresh and Show/Hide the edit window specified.
Message Parameter 1 Show Flag(Bool) TRUE = Show and Refresh edit window
FALSE = Hide edit window
Message Parameter 2 NULL not used
Remarks When an edit window is created (using EtkCreate) the WS_VISIBLE flag
is not used as a window style. Therefore, the edit window is not visible upon
creation. It is recommended that an EPM_EDIT_SHOW message be sent to the edit
window to be displayed instead of WinShowWindow(...). The difference between
sending the EPM_EDIT_SHOW verses the WinShowWindow is that the EPM_EDIT_SHOW
forces a window repaint.
ΓòÉΓòÉΓòÉ 8.21. EPM_EDIT_NEWFILE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.21.1. (Open a new edit window) ΓòÉΓòÉΓòÉ
Purpose Open a new edit window with the specified file.
Message Parameter 1 file name(PSZ) Asciiz string pointer to any legal file
name. (Wildcards are supported)
Message Parameter 2 string flags (MPARAM) Flags specifying how to handle the
pointer in parameter one. The following are flags that can be set.
o COMMAND_GETABLE - The pointer is a getable shared segment. Use
DosGetSeg(SELECTOROF(mp1) ) to access the pointer.
o COMMAND_FREESEL - The selector must be freed after it is used by the
application. Use DosFreeSeg( FP_SEG(mp1) ) to free the selector.
Returns void
Remarks An edit window is requesting that another edit window be opened.
This message should be handled by calling EtkCreate.
The macros used by the EPM editor use this message to implement the 'OPEN'
command.
The Flags in parameter two are checked by anding parameter two with the
constants COMMAND_GETABLE and COMMAND_FREESEL. For example to check if the
COMMAND_GETABLE flag is set do the folowing:
if( LONGFROMMP(mp2) & COMMAND_FREESEL ) {
/* the free selector flag is set */
}
ΓòÉΓòÉΓòÉ 8.22. EPM_EDIT_DESTROYNOTIFY ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.22.1. (A E-MLE has been closed) ΓòÉΓòÉΓòÉ
Purpose Notify owner that an E-MLE window has been closed.
Message Parameter 1 edit handle(HWND) Handle to the client window of the
E-MLE window that was just closed.
Message Parameter 2 message queue(HMQ) Handle to the message queue formally
being used by the E-MLE window that was just closed.
Returns void
Remarks Sent to owner registered in the Editor Information structure. (See
Appendix A for more details on the Edit Information structure.) This message
gives the owner the ability to take some action when a edit window is closed.
Note that the window handle passed is not valid. It is to be used for
reference only.
ΓòÉΓòÉΓòÉ 8.23. EPM_EXTRAWINDOW_REFRESH ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.23.1. (Refresh Extra Window Control) ΓòÉΓòÉΓòÉ
Purpose Repaint the optional editor extra window, updating all values.
Message Parameter 1 NULL(MPARAM) not used
Message Parameter 2 NULL (MPARAM) not used
Returns VOID
Remarks The Extra Window control can provide two extra lines of text, the
status area and the message area.
To obtain the extra window handle, send a EPM_EDIT_OPTION message to the edit
window in question. When sending the option message specify OPTION_HWNDEXTRA
as message parameter one.
ΓòÉΓòÉΓòÉ 8.24. EPM_EDIT_CONTROLTOGGLE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.24.1. (Toggle or Query the status of a base edit window control) ΓòÉΓòÉΓòÉ
Purpose Toggle a editor control on/off or force the control on/off.
Message Parameter 1 Id(LOUSHORT) Control identifier; See table below. rce
ON/OFF(HIUSHORT) Set to 2=ON, or 1=OFF
Message Parameter 2 Query flag (MPARAM) TRUE if control is to be Queried,
otherwise FALSE.
Returns void
Remarks This message is send to an edit window to toggle (turn ON or OFF) some
editor control window. The message can also be used to force a particular
control on or off.
The lo-ordered short of the first message parameter contains an id number that
determines the control window. The id constants are as follows:
EDITSTATUSAREA Status area of extra window control.
EDITMSGAREA Message area of extra window control
EDITVSCROLL Vertical scroll bar
EDITHSCROLL Horizontal scroll bar
EDITTITLEBAR Stops automatic updating of title bar with filename. This is
useful if the application requires the title bar to display text
other then the current file being edited.
EDITCURSOR Editor cursor
The hi-ordered short of the first message parameter contains an optional
value. If the value is null then the control is toggled. If it is non- zero
the control status is set to one less the value. This value should be set to
2 if you want to force the control on, or one if you want to force the control
off. Parameter contain the Query Flag. If parameter is non-zero the status
of the specified control is returned. That is, TRUE is returned if the
control is active or FALSE if it is not.
ΓòÉΓòÉΓòÉ 8.25. EPM_EDIT_RECORDKEY- ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.25.1. (Start recording keystrokes) ΓòÉΓòÉΓòÉ
Purpose Start the recording of keystrokes (WM_CHAR messages) sent to the edit
window.
Message Parameter 1 NULL (MPARAM) not used
Message Parameter 2 NULL (MPARAM) not used
Returns void
Remarks
ΓòÉΓòÉΓòÉ 8.26. EPM_EDIT_ENDRECORDKEY- ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.26.1. (Stop storing keystrokes) ΓòÉΓòÉΓòÉ
Purpose Terminates the storing of keystrokes (WM_CHAR messages) started by the
EPM_EDIT_RECORDKEY message.
Message Parameter 1 NULL (MPARAM) not used
Message Parameter 2 NULL (MPARAM) not used
Returns void
Remarks
ΓòÉΓòÉΓòÉ 8.27. EPM_EDIT_PLAYKEY ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.27.1. (Execute stored keystrokes) - Sent TO an E-MLE ΓòÉΓòÉΓòÉ
Purpose Generate keystrokes (WM_CHAR messages) saved since the
EPM_EDIT_RECORDKEY message has been sent.
Message Parameter 1 NULL (MPARAM) not used
Message Parameter 2 NULL (MPARAM) not used
Returns void
Remarks It is recommend that a EPM_EDIT_ENDRECORDKEY message be sent before
this message is sent. If the edit window is still in record mode when the
message is sent an error message is sent to the owner window.
ΓòÉΓòÉΓòÉ 8.28. EPM_EDIT_QUERYRECORDKEY ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.28.1. (Determine record key state) ΓòÉΓòÉΓòÉ
Purpose Returns TRUE if edit window is recording keys.
Message Parameter 1 NULL (MPARAM) not used
Message Parameter 2 NULL (MPARAM) not used
Returns TRUE = edit window is recording keys.
Remarks
ΓòÉΓòÉΓòÉ 8.29. EPM_EDIT_ASKTOQUIT ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.29.1. (Request to quit a modified file) ΓòÉΓòÉΓòÉ
Purpose Notify application that a request has been sent to quit a file which
has been modified.
Message Parameter 1 filename (PSZ) Name of file that has been modified.
Message Parameter 2 heditwnd (HWND) The edit window's handle.
Remarks This message is sent after the E toolkit has received notice to quit a
modified file. The application must respond to this message by sending an
EPM_EDIT_ASKTODONE message. When an application receives this message it is a
good time to pop a dialog to the user asking what action to take. (See the
Quitbox dialog for an example )
Related Messages
EPM_EDIT_ASKTOCLOSE
EPM_EDIT_ASKTOFAILED
EPM_EDIT_ASKTODONE
ΓòÉΓòÉΓòÉ 8.30. EPM_EDIT_ASKTOCLOSE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.30.1. (Request to close an edit window) ΓòÉΓòÉΓòÉ
Purpose Notify application that a request has be sent to close an edit window
which contains a file that has been modified.
Message Parameter 1 filename (PSZ) Name of file that has been modified.
Message Parameter 2 heditwnd (HWND) The edit window's handle.
Remarks This message is sent after the E toolkit has received notice to close
an edit window which contains a modified file. The application must respond to
this message by sending an EPM_EDIT_ASKKTODONE message.
Related Messages
EPM_EDIT_ASKTOQUIT
EPM_EDIT_ASKTOFAILED
EPM_EDIT_ASKTODONE
ΓòÉΓòÉΓòÉ 8.31. EPM_EDIT_ASKTODONE ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.31.1. (Respond to EPM_EDIT_ASKTOxxx message) ΓòÉΓòÉΓòÉ
Purpose Respond to one of the EPM_EDIT_ASKTOxxx messages from the E toolkit.
Message Parameter 1 retcode (MPFROMSHORT) Response message sent to E toolkit.
One of the following messages can be used:
o ERES_CANCEL - Cancel the closing of the file or edit window.
o ERES_DISCARD - Discard the modifications and continue closing.
o ERES_SAVE - Save file as message parameter two and continue closing.
Message Parameter 2 filename (PSZ) Name of file to save modifications in if
EPM_SAVE is sent. This pointer must be the same pointer sent to the
applications with one of the EPM_EDIT_ASKTOxxx messages.
Remarks This message allows the application control the saving or discarding
of a modified file when an edit window is closing, a quit file message has
been sent, or when a previous EPM_EDIT_ASKTODONE message returned
EPM_EDIT_ASKTOFAILED.
Related Messages
EPM_EDIT_ASKTQUIT
EPM_EDIT_ASKTOCLOSE
EPM_EDIT_ASKTODONE
ΓòÉΓòÉΓòÉ 8.32. EPM_EDIT_ASKTOFAILED ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.32.1. (Last EPM_EDIT_ASKTODONE failed) ΓòÉΓòÉΓòÉ
Purpose Notify application that the file name sent with the last
EPM_EDIT_ASKTODONE message could not be saved with the name specified.
Message Parameter 1 filename (filename) File name used which caused an error
in saving.
Message Parameter 2 heditwnd (HWND) The edit window's handle.
Remarks This message informs the application that the file name sent with the
EPM_EDIT_ASKTODONE message and message parameter EPM_SAVE, was a bad file name.
The application should correct the file name and send another
EPM_EDIT_ASKTODONE message.
Related Messages
EPM_EDIT_ASKTQUIT
EPM_EDIT_ASKTOCLOSE
EPM_EDIT_ASKTOFAILED
ΓòÉΓòÉΓòÉ 9. ERES.DLL ΓòÉΓòÉΓòÉ
ERES.DLL exports a set a general purpose functions that can be used by an
application that contains E-MLE's. These functions are detailed in this
section. In order to use these functions an application must do the following
in the order given:
1. Include ETOOLKT.H in all source files that use ERES.DLL functions. The
main source file of the application should define the constant
INCL_DONT_EXT_GLOB before including etoolkt.h. For example:
#define INCL_DONT_EXT_GLOB
#include <ETOOLKT.H>
2. Declare a variable of type GLOBDATA in the main source file of the
application.
3. Load the ERES.DLL module and initialize the "eresModule" field of the
GLOBDATA variable with the ERES.DLL module handle.
// Note that GlobData is a variable of type GLOBDATA
DosLoadModule((PSZ)NULL,(USHORT)0,(PSZ)"ERES",(PHMODULE)&GlobData.eresModule );
4. The following three function calls must be called next.
ERESRegisterEtkFunctions((PFN) EtkCreate, CREATE_FUNC);
ERESRegisterEtkFunctions((PFN) EtkDestroy, DESTROY_FUNC);
ERESRegisterEtkFunctions((PFN) EtkVersion, VERSION_FUNC);
(See ERESRegisterEtkFunctions in the section "ERES.DLL Exported Functions"
for an explanation of these function calls)
5. Call the function ERESInitEresGlob() in order to initialize the internal
data of ERES.DLL.
6. Required fields of the variable of type GLOBDATA must be initialized.
These are:
o eres.exfilename - name of the applications EX file.
o ApplicationName - name of the application.
o ExSearchPath - search path for EX files. Set to NULL if search
path includes only the current directory.
o ApplicationID - a unique ID that distinguishes the edit windows
of the application.
ΓòÉΓòÉΓòÉ 9.1. ERES.DLL - Exported Functions ΓòÉΓòÉΓòÉ
The following functions are exported from ERES.DLL
.--------------------------------------------------------------------------.
| Dynalink functions found in ERES.DLL |
|--------------------------------------------------------------------------|
| |
| ERESRegisterEtkFunctions - Register pointer to E.DLL functions |
| ERESCommonWndProc - Common window procedure |
| EresSaveLists - Saves internal list data to ini file |
| ERESRetrieveLists - Retrieves internal list data from ini file |
| ERESOpenEditWindow - Opens a new edit window |
| ERESCountEWindows - Counts the number of edit windows |
| ERESPopDlgBox - Pop Dialog box |
| ERESIsAnEditWin - Is an edit window |
| ERESEwindowValid - Edit window valid |
| ERESSendOpenMsgToApp - Send open message to application |
| ERESShutDown - Shut down all edit windows |
| ERESInitEResStruct - Initialize the ERES structure |
| ERESCheckVersion - Check the E.DLL version |
| ERESProcessCommands - Process command messages. |
| ERESEditWindowlist - Show listing of available edit windows. |
| |
.--------------------------------------------------------------------------.
ΓòÉΓòÉΓòÉ 9.2. ERESRegisterEtkFunctions ΓòÉΓòÉΓòÉ
ERESRegisterEtkFunctions -
(Registers pointers to E.DLL functions)
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Allows ERES.DLL to call E.DLL functions without having to import them.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöé ERESRegisterEtkFunctions ( , )
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Parameters
FuncPtr (PFN) - input
Pointer to E.DLL function. One of the following can be used:
o EtkCreate
o EtkDestroy
o EtkVersion
ID (USHORT) - input
Function identifier. One of the following can be used:
o CREATE_FUNC - EditWindowCreate
o DESTROY_FUNC - EditWindowDestroy
o VERSION_FUNC - EditVersion
Returns Void
Remarks
Currently an application must send the pointers of E.DLL functions
required by ERES.DLL in order to avoid reloading of the E.DLL module. Due
to an a debug in the operating system if two modules in the same
application import the same module, that module is reloaded. Therefore,
this function avoids the costly reloading of the E.DLL module. Util this
problem is resolved the following code must be placed after an application
loades eres.dll:
Example
ERESRegisterEtkFunctions((PFN) EtkCreate, CREATE_FUNC);
ERESRegisterEtkFunctions((PFN) EtkDestroy, DESTROY_FUNC);
ERESRegisterEtkFunctions((PFN) EtkVersion, VERSION_FUNC);
ΓòÉΓòÉΓòÉ 9.3. ERESCommonWndProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.3.1. (Common window procedure) ΓòÉΓòÉΓòÉ
Purpose Handles default window message processing of E toolkit applications.
Prototype
ERESCommonWndProc
Parameters hwnd (HWND) The window handle of the application. msg (HWND) The
window message. mp1 (MPARAM) Message parameter one. mp2 (MPARAM) Message
parameter two.
Returns VOID
Remarks Applications that choose to call this function as their default window
procedure will have the default message processing for E toolkit messages. (See
Appendix H for a description of these messages) The Window ULONG of the
applications window handle must be set to the address of the GLOBDATA structure
in order to process application specific information.
ΓòÉΓòÉΓòÉ 9.4. ERESSaveLists ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.4.1. (Saves internal list data to ini file) ΓòÉΓòÉΓòÉ
Purpose Saves the internal data structures of the Open File, List Box, and
Command Dialog boxes in the ini file specified in the GLOBDATA structure.
Prototype
ERESSaveLists
Parameters GlobData (GLOBDATA *) Pointer to application instance data.
Returns Void
Remarks GlobData->IniApplicationName contains the name of the ini file to
store the structures in. GlobData->eres contains the structures cmd, msg, and
open1 which are the structures used by the three dialog boxes.
ΓòÉΓòÉΓòÉ 9.5. ERESRetrieveLists ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.5.1. (Retrieves internal list data from ini file) ΓòÉΓòÉΓòÉ
Purpose Retrieves the internal data structures of the Open File, List Box, and
Command Dialog boxes from the ini file specified in the GLOBDATA structure.
Prototype
ERESRetrieveLists
Parameters GlobData (GLOBDATA *) Pointer to application instance data.
Returns VOID
Remarks GlobData->IniApplicationName contains the name of the ini file to
retrieve the structures from. GlobData->eres contains the structures cmd, msg,
and open1 which are the structures used by the three dialog boxes. These will
be filled with the data in the specified ini file.
ΓòÉΓòÉΓòÉ 9.6. ERESOpenEditWindow ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.6.1. (Opens a new edit window) ΓòÉΓòÉΓòÉ
Purpose Initializes the EDITORINFO structure with application specific data and
calls the EPM_CreateEditWindow function of E.DLL .
Prototype
ERESOpenEditWindow
Parameters filename (char far *) Pointer to the string containing the file to
edit. GlobData (GLOBDATA *) Application instance data.
Returns hwndEdit (HWND) The window handle of the new edit window.
Remarks
ΓòÉΓòÉΓòÉ 9.7. ERESCountEWindows ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.7.1. (Counts the number of E-Multi-line Edit windows) ΓòÉΓòÉΓòÉ
Purpose Determines the number of available edit windows.
Prototype
ERESCountEWindows
Parameters GlobData (GLOBDATA *) Pointer to application instance data.
Returns count (USHORT) The total number of E-Multi-line edit windows that
belong to an application.
Remarks GlobData->CountOnlyVisibleWindows determines whether to count only
visible windows. Some applications might create edit windows, keep them hidden,
and use them at some later time.
ΓòÉΓòÉΓòÉ 9.8. ERESPopDlgBox ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.8.1. (Pop Dialog Box) ΓòÉΓòÉΓòÉ
Purpose Display the specified dialog box. If the dialog is already being
displayed bring it to the top.
Prototype
ERESPopDlgBox(
Parameters proc (PFNWP) Pointer to the window procedure of the dialog. dlgin
(USHORT) Pointer to dialog input information. ModuleType (PSZ) Specifies the
module that contains the dialogs resource information excluding the ".DLL"
extension. If set to NULL then the dialog resource is contained in ERES.DLL.
ownertype (USHORT) The owner of the dialog. This can be set to one of four
values:
o OT_DEFAULT - Checks the value of the active edit window. If it is valid
make it the owner, else make the handle to the applications frame
the owner.
o OT_ACTIVE_EDIT - Make the active edit window the owner.
o OT_APP_FRAME - Make the applications frame the owner.
o OT_DESKTOP - Make the desktop window the owner.
GlobData (GLOBDATA *) Application instance data.
Returns VOID
Remarks
ΓòÉΓòÉΓòÉ 9.9. ERESIsAnEditWin ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.9.1. (Is an edit Window) ΓòÉΓòÉΓòÉ
Purpose Test if a given window is an edit window.
Prototype
ERESIsAnEditWin
Parameters hwnd (HWND) Window handle of the window to test. GlobData
(GLOBDATA *) Pointer to application instance data.
Returns rc(BOOL)
o TRUE - The window is an edit window.
o FLASE - The window is not an edit window.
Remarks
ΓòÉΓòÉΓòÉ 9.10. ERESEwindowValid ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.10.1. (Is an Edit Window valid) ΓòÉΓòÉΓòÉ
Purpose Tests whether the active edit window of the application instance data
is valid.
Prototype
ERESEwindowValid
Parameters GlobData (GLOBDATA *) Pointer to application instance data.
Returns rc(BOOL)
o TRUE - The the active edit window handle is valid.
o FLASE - The the active edit window handle is not valid.
Remarks
ΓòÉΓòÉΓòÉ 9.11. ERESSendOpenMsgToApp ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.11.1. (Send open message to application) ΓòÉΓòÉΓòÉ
Purpose Finds the handle of applications client window, and posts it a message
to open the files in the shared message buffer of the application instance
data.
Prototype
ERESSendOpenMsgToApp
Parameters ID (USHORT) Message response to sending the EPM_BOOK_ID message to
the applications window.
Returns VOID
Remarks This function traverses through all existing frame windows searching
for the applications window. The Custom message EPM_BOOK_ID is used to test
whether a windows is that of the application. If a window responds to an
EPM_BOOK_ID message with ID then it is the applications window.
GlobData->ShrMsgBuff contains the name of the file to open.
ΓòÉΓòÉΓòÉ 9.12. ERESShutDown ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.12.1. (Shut Down) ΓòÉΓòÉΓòÉ
Purpose Systematically closes all E-MLE's associated with an application.
Prototype
ERESShutDown
Parameters GlobData (GLOBDATA *) Pointer to application instance data.
Returns rc(BOOL)
o TRUE - A given file in an edit window does not wish to close down because
it has yet to be saved.
o FLASE - Shut down of all edit windows completed.
Remarks
ΓòÉΓòÉΓòÉ 9.13. ERESInitEResStruct ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.13.1. (Initialize the ERES structure) ΓòÉΓòÉΓòÉ
Purpose Initializes the eres field of the GlobData structure.
Prototype
ERESInitEResStruct
Parameters hwnd (HWND) The window handle of the applications client window.
GlobData (GLOBDATA *) Pointer to applications instance data.
Returns VOID
Remarks The pointer to this structure is copied and used internally in
ERES.DLL.
ΓòÉΓòÉΓòÉ 9.14. ERESCheckVersion ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.14.1. (Check ERES.DLL version) ΓòÉΓòÉΓòÉ
Purpose Compare the ERES.DLL's version number with that of E.DLL .
Prototype
ERESCheckVersion
Parameters No Parameters
Returns rc (BOOL)
o TRUE - The Version numbers are the same.
o FLASE - Version conflict exits.
ΓòÉΓòÉΓòÉ 9.15. ERESProcessCommands ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.15.1. (Process command messages) ΓòÉΓòÉΓòÉ
Purpose Process WM_COMMAND messages sent to the applications default window
procedure.
Prototype
ERESProcessCommands
Parameters mp1 (MPARAM) WM_COMMAND message parameter. mp2 (MPARAM) Pointer to
dialog input information. GlobData (GLOBDATA *) Pointer to application
instance data.
Returns VOID
Remarks This functions is used when ERESCommonWndProc() is the default window
procedure of the application.
ΓòÉΓòÉΓòÉ 9.16. ERESEditwindowList ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.16.1. (Show listing of available edit windows) ΓòÉΓòÉΓòÉ
Purpose Create a Popup menu that contains the names of the available edit
windows which the user can transfer control to.
Prototype
ERESEditwindowList
Parameters GlobData (GLOBDATA *) Pointer to application instance data.
Returns VOID
Remarks GlobData->EditWindowListStyle controls the positioning of the edit
list window dialog relative to the applications client window. (See Appendix F
for the available options)
ΓòÉΓòÉΓòÉ 10. ERES.DLL - Exported Dialog Box Procedures ΓòÉΓòÉΓòÉ
The following dialog box procedures are exported by ERES.DLL. In order to use
any of these dialogs an application must adhere to the required code outlined
in the previous section.
o ERESOpenDlgProc Open dialog procedure. Full file selection dialog box
includes fields specifying drives, directories, files, path name, and a file
name entry field.
o ERESOpen1DlgProc Open dialog procedure. Contains a list of previously
entered file names, and an entry field.
o ERESCommandDlgProc Edit window command dialog box.
o FindChangeDlgProc Allows find/change commands to be enter from dialog box.
o ConfigDlgProc Configuration edit window dialog procedure.
o EntryBoxDlgProc General purpose entry dialog box.
o ListBoxDlgProc
o QuitBoxDlgProc Quit box dialog.
ΓòÉΓòÉΓòÉ 10.1. ERESOpen1DlgProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.1.1. (Open dialog procedure one) ΓòÉΓòÉΓòÉ
Purpose Open1 dialog box procedure.
Prototype
ERESOpen1DlgProc
Parameters hwnd (HWND) The handle to the dialog box. message (USHORT)
Window message. lparm1 (MPARAM) Message parameter one. lparm2 (MPARAM)
Message parameter two.
Returns VOID
Remarks This dialog contains a list of previously entered file names, and an
entry field. This dialog can be called using the WinDlgBox() function. For
example:
WinDlgBox(Parent, Owner, DlgProc, Resource, Dlgid, CreatParam);
o Parent - Window handle of the parent of the dialog
o Owner - Window handle of the owner of the dialog
o DlgProc - Window procedure of the dialog (ERESOpen1DlgProc)
o Resource - Where the dialog resource is located (ERES)
o Dlgid - Dialog id (DLG_OPEN1)
o CreateParam - Dialog creation parameter. Must be set to(&GlobData->eres).
ΓòÉΓòÉΓòÉ 10.2. ERESCommandDlgProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.2.1. (Command dialog procedure) ΓòÉΓòÉΓòÉ
Purpose Edit window command line dialog procedure.
Prototype
ERESCommandDlgProc
Parameters hwnd (HWND) The handle to the dialog box. message (USHORT)
Window message. lparm1 (MPARAM) Message parameter one. lparm2 (MPARAM)
Message parameter two.
Returns VOID
Remarks This is an edit window command line dialog box, which includes an
entry field and a scrollable list of previous commands. This dialog can be
called using the WinDlgBox() function. For example:
WinDlgBox(Parent, Owner, DlgProc, Resource, Dlgid, CreatParam);
o Parent - Window handle of the parent of the dialog
o Owner - Window handle of the owner of the dialog
o DlgProc - Window procedure of the dialog (ERESCommandDlgProc)
o Resource - Where the dialog resource is located (ERES)
o Dlgid - Dialog id (IDM_COMMANDS)
o CreateParam - Dialog creation parameter. Must be set to(&GlobData->eres).
ΓòÉΓòÉΓòÉ 10.3. ERESFindChangeDlgProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.3.1. (Find/Change dialog procedure) ΓòÉΓòÉΓòÉ
Purpose Find/Change commands dialog procedure.
Prototype
ERESFindChangeDlgProc
Parameters hwnd (HWND) The handle to the dialog box. message (USHORT)
Window message. lparm1 (MPARAM) Message parameter one. lparm2 (MPARAM)
Message parameter two.
Returns VOID
Remarks This dialog allows find/change commands to be entered directly from
it. This dialog can be called using the WinDlgBox() function. For example:
WinDlgBox(Parent, Owner, DlgProc, Resource, Dlgid, CreatParam);
o Parent - Window handle of the parent of the dialog
o Owner - Window handle of the owner of the dialog
o DlgProc - Window procedure of the dialog (ERESFindChangeDlgProc)
o Resource - Where the dialog resource is located (ERES)
o Dlgid - Dialog id (DLG_CHANGE).
o CreateParam - Dialog creation parameter. Must be set to(&GlobData->eres).
ΓòÉΓòÉΓòÉ 10.4. ERESConfigDlgProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.4.1. (Configuation dialog procedure) ΓòÉΓòÉΓòÉ
Purpose Allow edit window options to be configured from dialog box.
Prototype
ERESConfigDlgProc
Parameters hwnd (HWND) The handle to the dialog box. message (USHORT)
Window message. lparm1 (MPARAM) Message parameter one. lparm2 (MPARAM)
Message parameter two.
Returns VOID
Remarks This dialog allows configuration of edit window options. These options
include setting margins, autosave level, tabs, colors, and paths. This dialog
can be called using the WinDlgBox() function. For example:
WinDlgBox(Parent, Owner, DlgProc, Resource, Dlgid, CreatParam);
o Parent - Window handle of the parent of the dialog
o Owner - Window handle of the owner of the dialog
o DlgProc - Window procedure of the dialog (ERESConfigDlgProc)
o Resource - Where the dialog resource is located (ERES)
o Dlgid - Dialog id (DLG_CONFIG)
o CreateParam - Dialog creation parameter. Must be set to(&GlobData->eres).
ΓòÉΓòÉΓòÉ 10.5. EntryBoxDlgProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.5.1. (Entry dialog box procedure) ΓòÉΓòÉΓòÉ
Purpose General purpose entry dialog box.
Prototype
EntryBoxDlgProc
Parameters hwnd (HWND) The handle to the dialog box. message (USHORT)
Window message. lparm1 (MPARAM) Message parameter one. lparm2 (MPARAM)
Message parameter two.
Returns VOID
Remarks This dialog can be called using the WinDlgBox() function. For example:
WinDlgBox(Parent, Owner, DlgProc, Resource, Dlgid, CreatParam);
o Parent - Window handle of the parent of the dialog
o Owner - Window handle of the owner of the dialog
o DlgProc - Window procedure of the dialog (EntryBoxDlgProc)
o Resource - Where the dialog resource is located (ERES)
o Dlgid - Dialog id (IDD_ENTRYBOX)
o CreateParam - Dialog creation parameter. Must be set to(PENTRYBOXINFO).
Check eres.h for a desription of the structure ENTRYBOXINFO. A
pointer to this structure must be allocated and passed into the
dialog procedure via this parameter.
ΓòÉΓòÉΓòÉ 10.6. ListBoxDlgProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.6.1. (List box dialog procedure) ΓòÉΓòÉΓòÉ
Purpose General purpose list dialog procedure.
Prototype
ListBoxDlgProc
Parameters hwnd (HWND) The handle to the dialog box. message (USHORT)
Window message. lparm1 (MPARAM) Message parameter one. lparm2 (MPARAM)
Message parameter two.
Returns VOID
Remarks This dialog can be called using the WinDlgBox() function. For example:
WinDlgBox(Parent, Owner, DlgProc, Resource, Dlgid, CreatParam);
o Parent - Window handle of the parent of the dialog
o Owner - Window handle of the owner of the dialog
o DlgProc - Window procedure of the dialog (ListBoxDlgProc)
o Resource - Where the dialog resource is located (ERES)
o Dlgid - Dialog id (ID_LISTBOX)
o CreateParam - Dialog creation parameter. Must be set to(PLISTBOXINFO).
Check eres.h for a description of the LISTBOXINFO structure. A
pointer to this structure must be allocated and passed into the
dialog procedure via this parameter.
ΓòÉΓòÉΓòÉ 10.7. QuitBoxDlgProc ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.7.1. (Quit box dialog procedure) ΓòÉΓòÉΓòÉ
Purpose Sample Quit box dialog which handles EPM_EDIT_ASKTOxxx messages.
Prototype
QuitBoxDlgProc
Parameters hwnd (HWND) The handle to the dialog box. message (USHORT)
Window message. lparm1 (MPARAM) Message parameter one. lparm2 (MPARAM)
Message parameter two.
Returns VOID
Remarks This dialog informs the user that a file has been modified. It
includes an entry field to specify what name the modifications should be saved
as, and the pushbuttons: Save , Discard, Cancel, and Help. This dialog can be
called using the WinDlgBox() function. For example:
WinDlgBox(Parent, Owner, DlgProc, Resource, Dlgid, CreatParam);
o Parent - Window handle of the parent of the dialog
o Owner - Window handle of the owner of the dialog
o DlgProc - Window procedure of the dialog (QuitBoxDlgProc)
o Resource - Where the dialog resource is located (ERES)
o Dlgid - Dialog id (IDD_QUITBOX)
o CreateParam - Dialog creation parameter. Must be set to(PQUITBOXINFO).
See eres.h for a description of the QUITBOXINFO structure. A
pointer to this structure must be allocated and passed into the
dialog via this parameter.
Returns This dialog returns one of the following codes.
o ERES_SAVE - Save was selected. File name is stored in
QUITBOXINFO->filename
o ERES_CANCEL - Cancel was selected.
o ERES_DISCARD - Discard was selected.
ΓòÉΓòÉΓòÉ 11. Example E Toolkit Application ΓòÉΓòÉΓòÉ
The following sample source code demonstrates how an application can use
various features of the E Toolkit. The source files included are:
o Edllsamp.c - creates a sample edit window using E.DLL
o edllsamp.e - macros defining the edit windows profile
o eressamp.c - dialog resource management functions
o sampdlg.c - sample dll which demonstrates two types of PM dialogs.
o sampdlg.e - macros demonstrating how to invoke the sampdlg.c dialogs.
ΓòÉΓòÉΓòÉ 12. Appendix ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.1. Appendix A - ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.1.1. Description of the Editor Information Structure. (EDITORINFO) ΓòÉΓòÉΓòÉ
___________________________
.------------------------------------------------------------------------.
| Editor Information Structure defined in 'C' |
|------------------------------------------------------------------------|
| typedef struct EDIT_INFO_TYPE { |
| HAB hab; /* application anchor block */|
| HWND hwndparent; /* handle to parent of edit window */|
| HWND hwndowner; /* handle to owner of edit window */|
| PRECTL rect; /* positioning of edit window */|
| PSZ filename; /* file to be edited (with wildcard) */|
| HPOINTER hEditPtr; /* handle to editor pointer icon. */|
| HPOINTER hMarkPtr; /* handle to mark pointer icon. */|
| VOID FAR *hEditorIcon; /* editor ICON. */|
| ULONG editorstyle; /* internal editor options */|
| ULONG pmstyle; /* PM standard window styles (FCF_xxxx) */|
| USHORT font; /* TRUE = LARGE FONT, FALSE = SMALL FONT*/|
| PSZ exfile; /* pre-compiled macro code file (xxx.EX) */|
| PSZ *topmkr; /* top and bottom of file marker */|
| PSZ *botmkr; /* */|
| SHORT editid; /* unique window id specified for window |
| PSZ exsearchpath; /* environment varible-search for .ex files|
| SHORT reserved0; /* for future use. */|
| } EDITORINFO; |
| |
`------------------------------------------------------------------------'
hab Application Anchor Block. To obtain the applications anchor block use the
WinInitialize function. (example: hab = WinInitialize(NULL); )
hwndparent Window handle of the edit window parent. Effects the positioning of
the edit window. In EPM, for example, the parent to the edit window is the
desk top window (HWND_DESKTOP). This is why the edit windows created by EPM
are free to roam the entire desk top.
hwndowner Window handle of the edit window owner. Determines which window
receives messages from the edit window. For example, if a command is send to
the edit window (via the EPM_EDIT_COMMAND message), and the command generates
some type of return code. The return code is put into message form (via the
EPM_EDIT_RETCODE message), and passed to the edit window owner.
rect Pointer to a PM rectangle structure. Determines the positioning of the
edit window. The '.xLeft' and '.yBottom' fields set the lower lefthand corner
of the edit window. The '.xRight' and '.yTop' fields set the width and height
of the edit window. Since this is a pointer to a rectangle structure, pass the
address of a RECTL in the following manner: epm.rect = ▭
filename Pointer to a Asciiz string that contains a fully qualified path. If
'filename' is NULL then a blank file will be edited. The blank file will be
named '.Unnamed file'. 'filename' can contain wildcards. For example, if
'*.dat' were specified, all the files with the extension '.dat' will be placed
in the newly created edit window.
hEditPtr Handle to a pointer icon that will become active when the mouse
pointer is over the client area of the edit window. Use
WinQueryPointer(HWND_DESKTOP); to use current mouse pointer.
hMarkPtr Handle to a pointer that will be displayed when editor is marking
text.
hEditIcon Handle to a icon that will be displayed when the edit window is
minimized.
editorstyle Internal Editor style flags. Logical 'OR' these flags together to
form desired editor configuration.
o EDIT_STYLE_BROWSE - browse file (view file only )
o EDIT_STYLE_ACTIVEFOCUS - when edit window becomes active it will
take focus.
o EDIT_STYLE_STATUSLINE - Create edit window with status line
o EDIT_STYLE_MESSAGELINE - Create edut window with message line
pmstyle Standard PM window FCF_xxx styles. For example, if you want to
create a edit window with a Title Bar, Vertical Scroll Bar, and Size Border,
you would use the following flags: FCF_TITLEBAR | FCF_SIZEBORDER |
FCF_VERTSCROLL
nt Flag that specifies the size font to use in the edit window. If font is
TRUE, the largest possible system AVIO font will be used. If font is FALSE,
the smallest possible system AVIO font will be used.
exfile Pointer to a asciiz string containing the name of a .EX file. A .EX
file contains compiled macro code. The file must be created using ETPM.EXE.
If this parameter is NULL, "EPM.EX" is used.
topmkr Pointer to a asciiz string containing the text that will be used to
denote the top of file.
botmkr Pointer to a asciiz string containing the text that will be used to
denote the bottom of file.
editid A unique editor id number that is used to identify edit windows created
by a particular application.
exsearchpath A pointer to a string that contains the name of an environment
variable. The internal toolkit will use the paths associated with this
environment variable to search for .ex files specified during the life of an
edit window. If this field is NULL, EPMPATH is searched by default.
reserved0 Reserved for future enhancements.
ΓòÉΓòÉΓòÉ 12.2. Appendix A1 - ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.2.1. Field Constants ΓòÉΓòÉΓòÉ
Used by EtkSetFileField(...), EtkQueryFileField, and EtkQueryFileFieldString.
ATTRIBUTE_SUPPORT_LEVEL - 0 = No Attributes supported
AUTOSAVE_FIELD - File Modifies Before Autosaving
CODEPAGE_FIELD - Code page
COL_FIELD - Column of Cursor.
CURSORX_FIELD - X Cursor Position in pels.
CURSORYG_FIELD -
CURSORY_FIELD - Y Cursor Position in pels.
CURSOR_COLUMN - column of the cursor
CURSOR_OFFSET -
DRAGCOLOR_FIELD - drag shadow
DRAGSTYLE_FIELD - drag type (linbe, block, character)
EA_AREA_FIELD - pointer to extended attribute area
FILENAME_FIELD - file name
FONTHEIGHT_FIELD - average font width
FONTWIDTH_FIELD - average font height
FONT_FIELD - internal font identifier string
KEYSET_FIELD - Key set name
LAST_FIELD - Number of last line in file. (absolute position)
LINEG_FIELD -
LINE_FIELD - Number of line where cursor is located. (absolute position)
LOCKHANDLE_FIELD - TRUE = File is locked
MARGINS_FIELD - Margin String. ( Left Right Paragraph )
MARKCOLOR_FIELD - Color of selected text
MODIFY_FIELD - number of file modifications
MOUSEX_FIELD - x position of mouse
MOUSEY_FIELD - y position of mouse
READONLY_FIELD - TRUE = BROWSE MODE
SCROLLX_FIELD - x scroll increment
SCROLLY_FIELD - y scroll increment
TABS_FIELD - Tab rack.
TEXTCOLOR_FIELD - forground and background text color
TITLETEXT_FIELD - text to be placed on title bar
USERSTRING_FIELD - string to be used by user
VISIBLE_FIELD - file visible flag (FALSE=NOT in ring)
WINDOWHEIGHTG_FIELD -
WINDOWHEIGHT_FIELD - height of window in pels
WINDOWWIDTHG_FIELD -
WINDOWWIDTH_FIELD - width of window in pels
WINDOWX_FIELD - starting x position of window
WINDOWY_FIELD - starting x position of window
ΓòÉΓòÉΓòÉ 12.3. Appendix B - ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.3.1. Editor Commands. ΓòÉΓòÉΓòÉ
See EPM Users guide for a list of editor Command. (EPM SCRIPT)
ΓòÉΓòÉΓòÉ 12.4. Appendix C - ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.4.1. Editor Return Codes ΓòÉΓòÉΓòÉ
.----------------------------------------------------------.
| Descriptor Constant | Return Code Value |
|----------------------------------------------------------|
| SEE_MESSAGE | 0 |
|----------------------------------------------------------|
| FILE_NOT_FOUND_RC | -2 |
|----------------------------------------------------------|
| PATH_NOT_FOUND_RC | -3 |
|----------------------------------------------------------|
| TOO_MANY_OPEN_FILES_RC | -4 |
|----------------------------------------------------------|
| ACCESS_DENIED_RC | -5 |
|----------------------------------------------------------|
| MEMORY_CONTROL_BLOCKS_RC | -7 |
|----------------------------------------------------------|
| INSUFFICIENT_MEMORY_RC | -8 |
|----------------------------------------------------------|
| INVALID_DRIVE_RC | -15 |
|----------------------------------------------------------|
| NO_MORE_FILES_RC | -18 |
|----------------------------------------------------------|
| NUMERIC_OVERFLOW_RC | -254 |
|----------------------------------------------------------|
| INVALID_NUMBER_ARGUMENT_RC | -255 |
|----------------------------------------------------------|
| RECURSION_TOO_DEEP_RC | -256 |
|----------------------------------------------------------|
| INVALID_NUMBER_OF_PARAMETERS_RC | -257 |
|----------------------------------------------------------|
| OUT_OF_STRING_SPACE_RC | -258 |
|----------------------------------------------------------|
| EXPRESSION_STACK_OVERFLOW_RC | -259 |
|----------------------------------------------------------|
| INVALID_FILEID_RC | -260 |
|----------------------------------------------------------|
| ILLEGAL_OPCODE_RC | -261 |
|----------------------------------------------------------|
| TOO_MANY_WINDOWS_RC | -262 |
|----------------------------------------------------------|
| INVALID_ARGUMENT_RC | -263 |
|----------------------------------------------------------|
| LOOP_STACK_OVERFLOW_RC | -264 |
|----------------------------------------------------------|
| DIVIDE_BY_ZERO_RC | -265 |
|----------------------------------------------------------|
| UNABLE_TO_SHRINK_RC | -266 |
|----------------------------------------------------------|
| INVALID_CALL_BY_REFERENCE_RC | -267 |
|----------------------------------------------------------|
| PROCEDURE_NEEDS_MORE_ARGUMENTS_ | -268 |
|----------------------------------------------------------|
| BREAK_KEY_PRESSED_RC | -269 |
|----------------------------------------------------------|
| NOT_ENOUGH_MEMORY_RC | -270 |
+.---------------------------------------------------------+
+----------------------------------------------------------+
| ERROR_IN_MARGIN_SETTINGS_RC | -271 |
|----------------------------------------------------------|
| ERROR_IN_TAB_SETTINGS_RC | -272 |
|----------------------------------------------------------|
| STRING_NOT_FOUND_RC | -273 |
|----------------------------------------------------------|
| UNKNOWN_COMMAND_RC | -274 |
|----------------------------------------------------------|
| MISSING_FILENAME_RC | -275 |
|----------------------------------------------------------|
| LINE_TOO_LONG_TO_JOIN_RC | -276 |
|----------------------------------------------------------|
| TOO_MANY_FILES_RC | -277 |
|----------------------------------------------------------|
| LINES_TRUNCATED_RC | -278 |
|----------------------------------------------------------|
| TEXT_ALREADY_MARKED_RC | -279 |
|----------------------------------------------------------|
| TEXT_NOT_MARKED_RC | -280 |
|----------------------------------------------------------|
| SOURCE_DEST_CONFLICT_RC | -281 |
|----------------------------------------------------------|
| NEW_FILE_RC | -282 |
|----------------------------------------------------------|
| LINE_MARK_REQUIRED_RC | -283 |
|----------------------------------------------------------|
| ERROR_OPENING_FILE_RC | -284 |
|----------------------------------------------------------|
| ERROR_WRITING_FILE_RC | -285 |
|----------------------------------------------------------|
| ERROR_READING_FILE_RC | -286 |
|----------------------------------------------------------|
| INSUFFICIENT_DISK_SPACE_RC | -287 |
|----------------------------------------------------------|
| BLOCK_MARK_REQUIRED_RC | -288 |
|----------------------------------------------------------|
| TOO_MANY_RINGS_RC | -289 |
|----------------------------------------------------------|
| INCORRECT_VERSION_RC | -290 |
|----------------------------------------------------------|
| NO_MAIN_ENTRY_POINT_RC | -291 |
|----------------------------------------------------------|
| ERROR_CLOSING_FILE_RC | -292 |
|----------------------------------------------------------|
| CMDLINE_TOO_LONG_RC | -300 |
|----------------------------------------------------------|
| CANT_UNLINK_MOD_IN_USE_RC | -301 |
|----------------------------------------------------------|
| CANT_UNLINK_KEY_MOD_RC | -302 |
|----------------------------------------------------------|
| INTERNAL_INVALID_MOD_NBR_RC | -303 |
|----------------------------------------------------------|
| LINK_MODULE_ERROR_RC | -304 |
+----------------------------------------------------------+
+----------------------------------------------------------+
| MAIN_NOT_FOUND_RC | -305 |
|----------------------------------------------------------|
| INIT_NOT_FOUND_RC | -306 |
|----------------------------------------------------------|
| LOADFILE_FINDFILE_RC | -307 |
|----------------------------------------------------------|
| LOADFILE_MAKEFILE_RC | -308 |
|----------------------------------------------------------|
| LOADFILE_ALREADYLINKED_RC | -309 |
|----------------------------------------------------------|
| UNLINK_UNKNOWN_MODULE_RC | -310 |
|----------------------------------------------------------|
| UNLINK_BAD_MODULE_FN_RC | -311 |
|----------------------------------------------------------|
| CALL_DUPLICATED_PROC_RC | -312 |
|----------------------------------------------------------|
| CALL_UNKNOWN_PROC_RC | -313 |
|----------------------------------------------------------|
| GREP_MEMORY_ERROR | -314 |
|----------------------------------------------------------|
| GREP_MISSING_BRACKET | -315 |
|----------------------------------------------------------|
| GREP_BAD_RANGE | -316 |
|----------------------------------------------------------|
| GREP_EMPTY_RANGE | -317 |
|----------------------------------------------------------|
| GREP_REGULAR_EXPRESSION_LONG | -318 |
|----------------------------------------------------------|
| DYNALINK_INCORRECT_PARAMETERS | -319 |
|----------------------------------------------------------|
| CANNOT_FIND_KEYSET | -321 |
|----------------------------------------------------------|
| BAD_LIBRARY_OR_PROC | -322 |
|----------------------------------------------------------|
| INVALID_LINE_NUMBER | -323 |
|----------------------------------------------------------|
| KBDSETSTATUS_FAILED | -324 |
|----------------------------------------------------------|
| BUFFER_CREATE_SIZE | -325 |
|----------------------------------------------------------|
| BAD_PROCEDURE | -326 |
`----------------------------------------------------------'
ΓòÉΓòÉΓòÉ 12.5. Appendix E - ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.5.1. Description of the Global Data Structure. (GLOBDATA) ΓòÉΓòÉΓòÉ
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+------------------------------------------------------------------------+
| Global Data Structure defined in 'C' |
|------------------------------------------------------------------------|
| typedef struct { |
| HAB hAB; |
| EPMRES eres; |
| HMODULE eresModule; |
| HMQ hmq; |
| HDC hDCApp; |
| PFNWP DefFrameProc; |
| PSZ ShrMsgBuff; |
| RECTL rc; |
| USHORT stagcount; |
| CHAR LastCmdLine[256]; |
| CHAR EPMClass[32]; |
| CHAR AllowMultProcesses; |
| HWND hwndHelpInstance; |
| HELPINIT hmiHelpData; |
| CHAR IniApplicationName[20]; |
| PSZ ExSearchPath; |
| BOOL CountOnlyVisibleWindows; |
| USHORT ApplicationID; |
| CHAR ApplicationName[20]; |
| ULONG EditWindowListStyle; |
| } GLOBDATA; |
| |
+------------------------------------------------------------------------+
hAB The Application Anchor Block. To obtain the applications anchor block use
the WinInitialize function. (example: hab = WinInitialize(NULL); )
eres Structure shared between applications and ERES.DLL. The pointer to this
structure is passed into ERES.DLL where it is used internally. (See Appendix G
for a description of this structure)
eresModule Module handle of ERES.DLL. Optained with the DosLoadModule function.
hmq The handle to the applications message queue.
hDCApp The handle to the applications window device context.
DefFrameProc Used internally.
ShrMsgBuff The pointer to the applications shared message buffer.
rc Used in positioning editwindows.
stagcount Stagger window count.
LastCmdLine The last command line used to open an edit window.
EPMClass Edit window class name. Used to identify edit windows.
AllowMultProcesses Flag to allow multiple processes
hwndHelpInstance Window handle of the a help instance of the information
presentation facility
hmiHelpData Hook for the information presentation facility.
IniApplicationName Name of the ini file to save and retrieve internal data
from.
ExSearchPath Ex file search path.
CountOnlyVisibleWindows When set this flag insures that ERESCountEwindows
returns only the number of visible edit windows.
ApplicationID Unique window id specified for editwindows.
ApplicationName Name of application.
EditWindowListStyle Edit window list dialog style flag. The following flags can
be used to position the edit window list dialog.
o EWindow_List_Window_Middle - display in the middle of the active window.
o EWindow_List_Window_Corner - display in the lower right corner of the
active window.
ΓòÉΓòÉΓòÉ 12.6. Appendix F - ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.6.1. Description of the Eres Data Structure. (EPMRES) ΓòÉΓòÉΓòÉ
_____________________
.------------------------------------------------------------------------.
| Eres Data Structure defined in 'C' |
|------------------------------------------------------------------------|
| typedef struct EPMRES_TYPE { |
| HAB hAB; |
| HWND hwndAppFrame; |
| HWND hwndAppClient; |
| HWND hwndActiveEdit; |
| HWND hwndActiveDlgBox; |
| HWND hwndSearchReplaceBox; |
| CHAR exfilename[MAXFILENAME]; |
| LISTDLG cmd; |
| LISTDLG msgbox; |
| LISTDLG open1; |
| BOOL skipopen1; |
| CHAR saveretpath[MAXFILENAME]; |
| PVOID dlgin; |
| PVOID internal; |
| } EPMRES; |
.------------------------------------------------------------------------.
hAB The Application Anchor Block. To obtain the applications anchor block use
the WinInitialize function. (example: hab = WinInitialize(NULL); )
hwndAppFrame The applications frame window handle.
hwndAppClient The applications client window handle.
hwndActiveEdit The window handle of the active edit window.
hwndActiveDlgBox The window handle of the active dialog box.
hwndSearchReplaceBox The window handle of the Search Replace dialog box.
exfilename String containing the name of the main ex file.
cmd Structure used to store entries in the command dialog box.
msgbox Structure used to store entries in the Message box dialog.
open1 Structure containing previous entries in the open dialog box.
skipopen1 When set skips the open1 dialog box and presents the list dialog box.
saveretpath The name of the file containing retrieve list data.
dlgin Pointer to dialog input information.
internal Used internally in ERES.DLL.
ΓòÉΓòÉΓòÉ 12.7. Appendix G - ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 12.7.1. Description the messages handled by ERESCommonWndProc() ΓòÉΓòÉΓòÉ
_____________________ The Following message are handled by
ERESCommonWndProc():
o WM_COMMAND
o EPM_EDIT_NEWFILE
o EPM_EDIT_HELPNOTIFY
o EPM_EDIT_RETCODE
o EPM_EDIT_DESTROYNOTIFY
o EPM_POPCMDLINE
o EPM_POPMSGBOX
o EPM_POPOPENDLG
o EPM_POPCHANGEDLG
o EPM_POPCONFIGDLG
o EPM_POPHELPBROWSER
o EPM_POPHELPMGRPANEL
o EPM_OPEN_EDITWINDOW
o EPM_SAVE_LISTS
o EPM_RETRIEVE_LISTS
o EPM_EDIT_ACTIVEHWND
WM_COMMAND Process a message from the system menu bar. Message parameter one
is the id of the item selected.
EPM_EDIT_NEWFILE An existing edit window is requesting to open up a new edit
window. ERESOpenEditWindow is called to handle it.
EPM_EDIT_HELPNOTIFY This message is in response to a WM_HELP message that was
received by an edit window. It is handled by either creating a help manager
panel, or create a file with the help brower file.
EPM_EDIT_RETCODE Used internally.
EPM_EDIT_DESTROYNOTIFY This message notifies EPM that a edit window has been
closed. If it was the last edit window and the search replace dialog exists,
destroy that dialog.
EPM_POPCMDLINE This message is handled by poping the command line dialog box.
EPM_POPMSGBOX This message is handled by poping the message dialog box.
EPM_POPOPENDLG This message is handled by poping the open1 dialog box.
EPM_POPCHANGEDLG This message is handled by poping the find/change dialog box.
EPM_POPCONFIGDLG This message is handled by poping the configuration dialog
box.
EPM_POPHELPBROWSER This message is handled by poping an edit window containing
the help browser file.
EPM_POPHELPMGRPANEL This message pops a help manager panel.
EPM_OPEN_EDITWINDOW Used internally by EPM
EPM_SAVE_LISTS Calls ERESSaveLists()
EPM_RETRIEVELIST Calls ERESRetrieveList()
EPM_EDIT_ACTIVEHWND Used internally.