Holman Bible Dictionary README.TXT File
Version 1.0c
February 1994

This "readme" file contains up-to-date information that
was not available at the time that the User's Guide was
printed, or information that is subject to change.
Information on the following topics is included.

***************************************************************
WARNING: If you have a version of PC Bible Atlas for Windows
         that predates version 1.0h you MUST install the PC
	  Bible Atlas for Windows upgrade. Failure to do so may
	  result in data loss and unpredictable behavior.
***************************************************************


Contents
--------

TOPIC 1: VSAFE
TOPIC 2: Compatibility with QuickVerse.
TOPIC 3: Compatibility with PC Bible Atlas.
TOPIC 4: File corruption
TOPIC 5: Features not covered in Users Guide.
TOPIC 6: DDE technical reference.



****************************************************************
TOPIC 1: VSAFE
****************************************************************

If you received this error message during installation:

	"VSAFE (or CPAV) will prevent this installation. Please 
	 consult your README.TXT for instructions."
	 
the error was caused by a conflict with the memory resident
virus protection programs CPAV (Central Point AntiVirus) or
VSAFE, the virus protection program that comes with DOS 6.0. 

Since Holman Bible Dictionary disks are write protected and
virus free, you should disable (remove from memory) your virus 
protection program before installing. To do this, follow the
instructions in your virus program manual or do one of the
following:

a.  Temporarily rename the AUTOEXEC.BAT, restart your computer,
and install Holman Bible Dictionary. Rename the AUTOEXEC.BAT
when the installation is complete.

b.  REMARK the lines from your AUTOEXEC.BAT that are 
related to the virus program. Restart your computer, and 
install Holman Bible Dictionary. Remove the remark statements
after installing Holman Bible Dictionary. (See your DOS manual
for instructions on the remark command.)



****************************************************************
TOPIC 2: Compatibility with QuickVerse.
****************************************************************

The Holman Bible Dictionary is compatible with QuickVerse for 
Windows version 1.0k or higher. An upgrade to QuickVerse 1.0k is 
included in this package. 

note: you must have a previously installed version of QuickVerse                                                            
      in order to install the upgrade.




****************************************************************
		Compatibility with PC Bible Atlas.
****************************************************************

The Holman Bible Dictionary is compatible with PC Bible Atlas 
for Windows version 1.0h or higher. An upgrade to PC Bible Atlas 
1.0h is included in this package. 

note: you must have a previously installed version of PC Bible
      Atlas for Windows in order to install the upgrade.

WARNING: If you have a version of PC Bible Atlas for Windows
         that predates version 1.0h you MUST install the PC
	  Bible Atlas for Windows upgrade. Failure to do so may
	  result in data loss and unpredictable behavior.



****************************************************************
			File corruption.
****************************************************************

In the event you exit HOLMAN BIBLE DICTIONARY in a 
nontraditional manner (for example, if you experience lightning 
or a power outage while the program is running), you may 
experience a File Handler message indicating there has been file 
corruption when you try to restart the program. In most every 
case, simply confirming the messages request to rebuild the 
files (by pressing Enter or clicking Yes) will successfully 
rebuild the files and the program will run as before.



****************************************************************
		Features not covered in Users Guide.
****************************************************************

Several feature were added to the Holman Bible Dictionary after 
the Users Guide went to the printers. These features are covered 
in detail in the on-line help.

a.	Context Sensitive Help   A new icon (a question mark and 
arrow) has been added to the toolbar for context sensitive help. 
Click on this icon and the cursor changes to an arrow and 
question mark. Use this cursor and click on an item on the 
screen -- the program will then display the related help topic 
if any.

b.  Find   A Find item has been added under the edit menu. This 
feature finds a word in the current article windows. The Find 
Dialog includes a Match Case button.

c. 	Repeat Find   This menu item is located in the edit menu. It 
causes the last find operation to be repeated.



****************************************************************
                  DDE Technical Reference
****************************************************************

INTRODUCTION TO DDE
-------------------

Dynamic Data Exchange (DDE) is a method whereby two 
applications can communicate with one another using a 
standardized format.  This communication takes place as 
applications send messages to each other to initiate 
conversations, to request and share data, and to terminate 
conversations. 

The WM_DDE_INITIATE and corresponding WM_DDE_ACK message must 
be sent using the SendMessage() API.  All other DDE messages 
Are issued using the PostMessage() API. 

The PostMessage calling format is as shown.

    PostMessage(hRecipient, Message, wParam, lParam);

where

    HRecipient - the window handle who receives the message 
    Message    - a DDE message to be sent 
    wParam     - for DDE message, this is generally the 
                 handle to the window that sent the message
    lParam     - additional message-specific arguments 

Atoms, which are WORD values that refer to character strings 
in a case-insensitive manner, play a very important role in 
DDE communication. Atoms are used for the DDE application 
(the server application name), topic (topic supported by the 
DDE server application) and item strings (data item within 
each topic supported by the DDE server application). 
Applications using these atoms must explicitly delete them to 
purge them from the atom list.  In all cases, the sender of a 
message must delete any atom that the intended receiver will 
not receive due to an error condition, such as failure of the 
PostMessage() function. 

In addition, the data structures that are transferred from 
one Windows program to another must be allocated using 
GlobalAlloc() with GMEM_DDESHARE option.  This allows the 
global memory block to be shared among multiple Windows 
programs. 

For more information about the DDE, please refer to Chapter 
17 of Petzold's "Programming Windows 2nd edition" and Chapter 
15 of Microsoft Windows SDK manual, volume 2. 

GENERAL METHODOLOGY
-------------------

Holman Bible Dictionary for Windows supports COLD DDE links.  
Cold links allow information to be passed from one application 
to another without any additional updating being required or 
requested.  

Warm links and hot links are not supported.

The Holman Bible Dictionary serves a DDE server and client.  
That is, it supplies information to other applications and 
requests information from other applications. 

A client application can use the WM_DDE_EXECUTE message to pass 
instructions to Holman Bible Dictionary.  



----------------------------------------------------------------
DDE Server Specification
----------------------------------------------------------------

INTRODUCTION
------------
A DDE Server is an application that responds to DDE commands 
sent by another application. For example: when QuickVerse asks 
Holman to display the article "Jerusalem," Holman is the Server 
and QuickVerse s the client. This section contains specific 
messages to which Holman acting as a DDE Server responds.


DDE SPECIFICATION FOR WM_DDE_EXECUTE
------------------------------------

The WM_DDE_EXECUTE message is used to pass commands to 
Holman Bible Dictionary.  Before using the WM_DDE_EXECUTE 
command, a DDE conversation must be initiated with an 
application of "QVWIN" and a topic of "Verses." 

In all cases, wParam of the WM_DDE_EXECUTE message is the 
handle to the DDE client window.  The low word of lParam is 
reserved.  The high word of lParam is the handle to global 
memory, allocated as GMEM_DDESHARE.  This global memory 
contains the item string, or the command string.  The client 
application should not assume that this memory will not be 
modified.  Holman Bible Dictionary may modify this memory in 
response to specific command messages. 

The following commands are supported.

Command:        WM_DDE_EXECUTE
Application:    "Holman"
Topic:          "Commands"
		

Item:  [HolmanPaste]

This command causes a dialog box to be displayed.  The 
user can select an article. The Article is copied to the 
clipboard and made available for pasting into other 
applications.


Item:  [Minimize]              

Minimize Holman. This command causes the whole         
QuickVerse application to be minimized, but does not         
activate it. 

Item:  [Activate]              

Activate Holman. This command causes Holman to be 
activated.  If the application is minimized, it is also 
restored to normal size. 

Item:  [Show("articlename")]

Show the specified article. This command cause Holman to 
search for an article beginning with the name passed in 
with the Show command. If a matching article exists it is 
opened in a new window or its window is made current and 
displayed.

Item:	[ShowCrossRefs("word")]

Show all references to the specified article. This 
command brings up the Holman Cross Reference search 
dialog. The word is placed in the search field and a list 
is of all articles that contain hotlinks to that word is 
displayed.

Item:	[ShowVerseRefs("book ch:verse")]

Show all references to a specific verse or range of 
verses. This command brings up the Holman Cross Reference 
search dialog. The verse or range is placed in the search 
field and a list is of all articles that contain hotlinks 
to that verse or range is displayed.

Item:	[LoadProgVersion(hmem)]

This command causes Holman to load the string identified 
by the memory handle "hmem" with the version of Holman. 
hmem is converted from a string value into an unsigned 
integer (memory handle) with little error checking 
provided.  An error occurs if hmem is not a valid memory 
handle, or if the memory it references is not large 
enough to contain the version string.  The version string 
is something like "1.0c" where 1.0 is the major version 
number and the last letter is the minor revision letter.


Item:	[LoadSyntaxVersion(hmem)]

This command causes Holman to load the syntax version 
that it supports into the memory identified by "hmem."  
hmem is converted from a string value into an unsigned 
integer (memory handle) with little error checking 
provided.  An error occurs if hmem is not a valid memory 
handle.  The memory identified is loaded with an integer 
value (i.e. not a string representation of an integer) 
such as 1, 2, etc.

It is recommended that client applications use this 
command to determine if Holman supports the commands that 
the client supports.


Each command must be enclosed by brackets [ ] and each command 
may be separated by a space. Spaces with each command are not 
allowed, except in quoted strings. Parenthesis ( ) are used to 
begin and end the parameter list. 

Holman will respond to the WM_DDE_EXECUTE message with a 
WM_DDE_ACK message. The low word of lParam will contain the  
DDEACK structure. The fAck flag will be set to TRUE (non-zero) 
if the command string was completely executed.  fAck is set to 
FALSE (zero) if the command string was not executed. 



----------------------------------------------------------------
DDE Client Specification
----------------------------------------------------------------

INTRODUCTION
------------
A DDE Client is an application that sends comands to another 
application. For example: when Holman asks QuickVerse to display 
the "John 3:16," Holman is the Client and QuickVerse is the 
server. This section contains specific messaes that Holman 
acting as a DDE Client sends to QuickVerse and PC Bible Atlas.


SPECIFICATION FOR THE INTERFACE TO A BIBLE ATLAS
------------------------------------------------

A Holman user can choose the Bible Atlas program that Holman 
interacts with. While Holman is designed to be used with PC 
Bible Atlas for Windows, any Bible Atlas program that supports 
the following WM_DDE_EXECUTE commands may be used.

    Application:    User defined
    Topic name:     Commands

          
    [Show("item")]             
    [Activate]                 
    [LoadSyntaxVersion(hmem)]  

Refer to the DDE Specification for PC Bible Atlas for Windows 
for more detail regarding these specific commands.


SPECIFICATION FOR THE INTERFACE TO A BIBLE CONCORDANCE
------------------------------------------------------

A Holman user can choose the bible program that Holman 
interacts with.  While Holman is designed to be used with the
QuickVerse for Windows, any concordance that supports the 
following WM_DDE_EXECUTE commands may be used.

Application:    User defined
Topic name:     Verses

[Activate]                
[GoTo("Book ch:vs")]
[QuickSearch("word")]
[LoadSyntaxVersion(hmem)]   
[Translation("name")]
[RefSearch("Book ch:vs")]
[LoadCurrentTranslation(hmem)]

Refer to the DDE Specification for the QuickVerse for Windows 
for more detail regarding these specific commands.








