Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Adam b4a8d373d8
Create README.md
4 years ago
..
contents initial commit 4 years ago
hdxcvt initial commit 4 years ago
hdxdll initial commit 4 years ago
afxres.h initial commit 4 years ago
build.txt initial commit 4 years ago
contents.h initial commit 4 years ago
dirs initial commit 4 years ago
exclm.ico initial commit 4 years ago
makefile initial commit 4 years ago
readme.txt initial commit 4 years ago
resource.h initial commit 4 years ago
sniff.bat initial commit 4 years ago
tchar.h initial commit 4 years ago
testdeco.hdx initial commit 4 years ago
testdeco.hlp initial commit 4 years ago
viewer.h initial commit 4 years ago
winres.h initial commit 4 years ago

readme.txt

See new features at the bottom
-----------------------------------------------------------------------------
To: Mark Walsen, Microsoft Corporation
From: Mike Orr, Windows Laboratories
Date: 1 October 1993

Re: 16-bit Contents Browser Delivery



This is to accompany my delivery today of the completed 16-bit Contents
Browser -- it amounts to a brief set of release notes for the delivered
programs. Because the 16-bit implementation has been generalized in several
ways as compared to the previous 32-bit version, this information is
necessary for anyone testing the delivery or building the components into
a Microsoft product.

The 16-bit browser consists of the following components:

HDXCVT.EXE This is a character-based DOS application that converts
a .GBD file into the .HDX file required by the Help
Browser.

HDXDLL.DLL This Win16 DLL implements the HelpIndex custom control
class required by the browser application. It has been
tested as an installable library with the version of
Dialog Editor that shipped with the 16-bit Windows
SDK.

CONTENTS.EXE This is a Win16 application which offers a HelpIndex-based
user interface for browsing a help index (.HDX) file and
launching the associated help topics in WinHelp. The
32-bit original of this program underlies the Books Online
component of MSVC/NT.



PERFORMANCE CONSIDERATIONS. The 16-bit Windows environment makes performance
a much more significant concern than in the 32-bit implementation. Although
the 16-bit browser, like the 32-bit version, uses the LZOpenFile() family of
functions to manipulate the help index, the performance with a file that is
actually compressed is very severely impaired -- the browser is unusable with
the compressed version of the BOOKS.HDX file (ca. 1.4MB) I've been testing
with.

Performance concerns have also motivated some techniques that impose capacity
limits on the 16-bit browser (specifically, the limits come from data
structures used to cache the index file and from the use of a non-virtual
listbox). As delivered, the 16-bit browser is limited to:

32,500 index entries

16 levels of nesting

8192 expanded outline items



HelpIndex CONTROL CLASS USAGE. The HelpIndex control class is a custom
control class conforming to the Windows 3.1 Dialog Editor's custom control
interface. It supports a single style, "HS_LINES", which specifies that
vertical connecting lines should be drawn between siblings in the help
topic outline structure, and forwards WM_VKEYTOITEM messages to its parent
window.

Once created, a HelpIndex must be enabled by setting its window text in
a prescribed way, for example, by specifying a text string in a resource
script or by calling SetWindowText() or SetDlgItemText(). The string
passed as window text must be of the form "<profilename>|<helpfilename>";
for example "msvc.ini|vcxxbks1.hlp".

This HelpIndex interface requires no action when the control is created by
the CONTENTS.EXE application.



CONTENTS.EXE APPLICATION USAGE. The browser application can/must be
configured using the command line and/or profile settings. In the field,
Setup would normally be responsible for creating profile settings and
Program Manager icons that interact properly, but initial internal users
will need to be careful to get them right by hand.

The CONTENTS.EXE command line supplies -- explicitly or by default -- two
unqualified (no path) filenames: a default help file name, and a profile
name. The defaults are "vcxxbks1.hlp" and "viewer.ini" for compatibility
with MSVC/NT Books Online; normally it's necessary to override them. In
addition to providing the name of the default help file, the first
argument's basename supplies the section name CONTENTS will use in the
specified profile. Here are three example command lines and the profile
sections they would each cause the browser to use:

Command line - CONTENTS.EXE
Profile sect - [VCXXBKS1] in VIEWER.INI

Command line - CONTENTS.EXE TEST.HLP
Profile sect - [TEST] in VIEWER.INI

Command line - CONTENTS.EXE TEST.HLP MSAPPS.INI
Profile sect - [TEST] in MSAPPS.INI

A number of other configurable strings control the browser's behavior.
These strings are identified by names; in most cases, there is a default
value specified by a string resource, as well as the possibility to
override the default by using the string name as a keyword in the profile
section specified by the command line.

In addition to the strings that can be specified on the command line,
the browser recognizes the following configuration strings:

Package Name
Default: MSVC
Overridable in profile: YES
Use: The browser stores app preferences (currently just the font)
in <Package Name>.ini.

Contents Viewer App Name
Default: CONTENTS
Overridable in profile: YES
Use: The app preferences section in <Package Name>.ini is
[<Contents Viewer App Name>]. (This is not the configuration
profile section and need not be touched by Setup or the user.)

Contents Viewer Version
Default: (none)
Overridable in profile: NO
Use: Printed in the user interface.

Contents Viewer Helpfile
Default: (none)
Overridable in profile: MANDATORY in profile
Use: Fully qualified path-and-file spec for the browser's own
help file; e. g., the CONTENTS.HLP in this delivery.

Contents Viewer Help Title
Default: "Books Online Help"
Overridable in profile: YES
Use: Becomes caption of the browser application help window.

Title
Default: "Visual C++ Books"
Overridable in profile: YES
Use: Becomes the caption of the WinHelp windows launched by the
browser for the default help file.

Title 2
Default: "Win32 SDK References"
Overridable in profile: YES
Use: Becomes the caption of WinHelp windows launched by the browser
for a secondary help file.

Path
Default: (none)
Overridable in profile: MANDATORY in profile
Use: Specifies the directory the browser is to search for the help
contents file and for helpfiles referenced by unqualified name
in the contents file.

Contents File
Default: BOOKS.HDX
Overridable in profile: YES
Use: Specifies the help contents file (HDXCVT output) containing
the help topic outline to be browsed.

When the browser uses a contents file that contains references to help
file(s) other than the default file, it searches the current profile for
sections named after the basenames of these files; e. g., [VCXXBKS2] if
there are references to vcxxbks2.hlp. These sections must be present and
each such section must provide a value for the Path keyword (even if the
path for a secondary help file is the same as for the default help file).
Other keywords are ignored in these sections.

That's it; good luck!

-----------------------------------------------------------------------------
10/20/93 [chauv] new features for Contents version 1.01 includes

1) Command line usage: Contents [helpfile] [profile] [expandlevel]

where [helpfile] = name of helpfile (i.e. Contents.hlp)
[profile] = name of profile file (i.e. Contents.ini)
[expandlevel] = number indicating which level Contents should
expand to after it's up. Lowest level is 2

example: Contents vc.hlp vc.ini 3

2) User can switch help/index file on the fly. This means that if Contents
is already running, the next command execution of Contents will automatically
updates Contents to the new index file.

example: Contents file1.hlp file1.ini ; run Contents the first time
Contents file2.hlp file2.ini ; Contents will be updated with file2

3) Single source tree buildable to 16-bit and 32-bit versions of Contents.
See build.txt for build detail.