Diff of /docs/trunk/oodialog/en-US/userInput.xml [r9437] .. [r9438] Maximize Restore

  Switch to side-by-side view

--- a/docs/trunk/oodialog/en-US/userInput.xml
+++ b/docs/trunk/oodialog/en-US/userInput.xml
@@ -126,10 +126,6 @@
 <entry>Pops up a message box containing the specified question, a Yes, and a No push button.</entry>
 </row>
 <row>
-<entry><xref linkend="clsBrowseForFolder"/> class</entry>
-<entry>Provides access to the Windows <emphasis role="italic">Browse For Folder</emphasis> dialog, allowing complete configuration of the dialog.</entry>
-</row>
-<row>
 <entry><xref linkend="clsCheckList"/> class</entry>
 <entry>A dialog with a group of one or more check boxes.</entry>
 </row>
@@ -204,14 +200,6 @@
 <row>
 <entry><xref linkend="clsProgressDialog"/> class</entry>
 <entry>A pre-built dialog with a progress bar that can be used to show the progress of a lengthy operation in an application</entry>
-</row>
-<row>
-<entry><xref linkend="clsSimpleFolderBrowse"/> class</entry>
-<entry>Allows the display of a simple to use, but non-configurable, Windows <emphasis role="italic">Browse For Folder</emphasis> dialog.</entry>
-</row>
-<row>
-<entry><xref linkend="rtnSimpleFolderBrowse"/> routine</entry>
-<entry>A short cut routine for the <computeroutput>SimpleFolderBrowse</computeroutput> dialog.</entry>
 </row>
 <row>
 <entry><xref linkend="clsSingleSelection"/> class</entry>
@@ -272,2333 +260,6 @@
 Public Routines <link linkend="sctPublicRoutines">section</link> of this chapter.
 </para></listitem></varlistentry>
 </variablelist>
-
-
-<section id="clsBrowseForFolder" xreflabel="BrowseForFolder"><title>BrowseForFolder Class</title>
-<indexterm><primary>BrowseForFolder class</primary></indexterm>
-<para>
-  A BrowseForFolder object represents the Windows <emphasis role="italic">Browse For Folder</emphasis> common dialog. The
-  Windows operating system provides a number of common dialogs for use by applications to allow presenting the user with an
-  unified generic method to do common tasks. The purpose of the Browse For Folder dialog is specifically to allow the user to
-  open or choose folders.
-</para>
-
-<section id="sctShellCOMConsiderations"><title>Shell / COM considerations</title>
-<indexterm><primary>BrowseForFolder class</primary><secondary>Shell / COM considerations</secondary></indexterm>
-
-<para>
-  The browse for folder dialog is part of the Windows Shell. Shell objects are implemented using COM (the Component Object
-  Model, a standard introduced by Microsoft.) The Windows Shell should not be confused with the Windows window manager, which
-  is responsible for the windowing system in Windows. ooDialog is primarily concerned with, and deals with, the windowing
-  system. However, in a modern Windows system, not all tasks can be done through the windowing system. Selecting or choosing
-  a folder is an example of task that is not done through the window manager.
-</para>
-<para>
-  In general, the Rexx programmer can work with the <computeroutput>BrowseForFolder</computeroutput> class in the same way as
-  working with any other ooDialog dialog classes. However, because the underlying Windows object is a COM object rather than
-  the usual windowing system window, there are a few considerations the programmer needs to be aware of.
-</para>
-<variablelist>
-  <varlistentry id="varCOMLibrary" xreflabel="COM library"><term><emphasis role="bold">COM Library / Threading:</emphasis></term>
-  <listitem>
-  <para>
-    The use of COM objects requirers that the COM library be initialized and released for <emphasis
-    role="italic">each</emphasis> thread that a COM object is used in. Normally the Rexx programmer does not need to be much
-    aware of threading and thread issues. However the COM requiement that the library be initialized and released on each
-    thread changes that. The normal usage pattern for a browse for folder object would be:
-  </para>
-  <itemizedlist>
-  <listitem>
-  <para>
-    <emphasis role="italic">Instantiate a <computeroutput>BrowseForFolder</computeroutput> object.</emphasis>
-  </para>
-  </listitem>
-  <listitem>
-  <para>
-    Configure the browse for folder object.
-  </para>
-  </listitem>
-  <listitem>
-  <para>
-    Show the dialog and get the user's selection.
-  </para>
-  </listitem>
-  </itemizedlist>
-  <para>
-    As long as this is all done on one thread, there is no problem. The ooDialog framework initializes COM when the object is
-    instantiated and releases COM when the underlying dialog is closed, that is when the <xref linkend="mthGetFolder"/> or
-    <xref linkend="mthGetItemIDList"/> method returns. However, if the programmer wants, or needs, to implement a different
-    usage pattern, then it becomes the programmer's responsibility to ensure that COM is initialized and released properly on
-    each thread. The <computeroutput>BrowseForFolder</computeroutput> class provides the tools the programmer needs to do
-    that. If COM is not initialized on a thread the browse for folder object is running on, then methods invoked on the
-    object may fail. If COM is not released on a thread it <emphasis role="italic">was</emphasis> initialized on, then system
-    resource leaks can occur.
-  </para>
-  <para>
-    This is not that complicated and is not really that different than other areas of ooDialog concerning system resources. If
-    the programmer wants to use a different font for a dialog control, the <xref linkend="mthSetFont"/> method will fail unless
-    the programmer has first initialized a font. If the programmer initializes a font using the <xref
-    linkend="mthCreateFontEx"/> method and does not release the font, then system resource leaks can ocurr. The only difference
-    here is that this <emphasis role="italic">initialize / release</emphasis> cycle is on a per thread basis.
-  </para>
-  <para>
-    The documentation for the individual attributes and methods of the <computeroutput>BrowseForFolder</computeroutput> class
-    will make note of when the programmer needs to consider these threading issues when using the attribute or method. In
-    addition, the <xref linkend="clsSimpleFolderBrowse"/> class provides an interface to the Browse For Folder dialog where
-    the Rexx programmer does not need to be aware of COM.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry id="varItemIDList" xreflabel="item ID list"><term><emphasis role="bold">Item ID List</emphasis></term>
-  <listitem>
-  <para>
-    The Windows Shell identifies objects in the Shell using a device called an item ID list. Files, folders, printers,
-    remote computers all have an item ID list that is used to uniquely identify them to the Shell. The ooDialog programmer
-    does not really need to know about the details of these item ID lists. However, it is difficult to document the
-    <computeroutput>BrowseForFolder</computeroutput> class without making references to an item ID list. Although technically
-    incorrect, the programmer can just think of them as <link linkend="defHandle">handles</link>.
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-
-</section> <!-- End Shell / COM considerations section -->
-
-
-<section id="sctSpecialFolderNames" xreflabel="Special Folder Names"><title>Special Folder Names</title>
-<indexterm><primary>BrowseForFolder</primary><secondary>Special Folder Names</secondary></indexterm>
-<indexterm><primary>SimpleFolderBrowse</primary><secondary>Special Folder Names</secondary></indexterm>
-
-<para>
-  Windows uses CSIDL (constant special item ID list) names to provide a unique system-independent way to identify special
-  folders used frequently by applications. These folders may not have the same name or location on any given system. For
-  example, the system folder may be <emphasis role="italic">C:\Windows</emphasis> on one system and <emphasis
-  role="italic">C:\Winnt</emphasis> on another.
-</para>
-<para>
-  In Windows Vista and later the CSIDL values have been replaced by Known Folder values, but for compatibility the CSIDL
-  values still work. ooDialog does not yet support the known folder values, only the CSIDL names. Some of the methods of the
-  <computeroutput>BrowseForFolder</computeroutput> class and the <xref linkend="clsSimpleFolderBrowse"/> class accept the
-  CSIDL names listed below for arguments. Future enhancements to ooDialog may also accept the CSIDL names, so they are listed
-  here in one place. The names are not case sensitive, but are otherwise spelled exactly as Microsoft does. Google can be
-  used to research any of the names further. Only the names listed are recognized in ooDialog.
-</para>
-
-<variablelist>
-  <varlistentry><term>CSIDL_ADMINTOOLS:</term>
-  <listitem>
-  <para>
-    The file system directory that is used to store administrative tools for an individual user.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_ALTSTARTUP:</term>
-  <listitem>
-  <para>
-    The file system directory that corresponds to the user's nonlocalized Startup program group. This value is recognized in
-    Windows Vista for backward compatibility, but the folder itself no longer exists.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_APPDATA:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for application-specific data.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_BITBUCKET:</term>
-  <listitem>
-  <para>
-    The virtual folder that contains the objects in the user's Recycle Bin.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_CDBURN_AREA:</term>
-  <listitem>
-  <para>
-    The file system directory that acts as a staging area for files waiting to be written to a CD.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_ADMINTOOLS:</term>
-  <listitem>
-  <para>
-    The file system directory that contains administrative tools for all users of the computer.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_ALTSTARTUP:</term>
-  <listitem>
-  <para>
-    The file system directory that corresponds to the nonlocalized Startup program group for all users. Valid only for
-    Microsoft Windows NT systems. This value is recognized in Windows Vista for backward compatibility, but the folder itself
-    no longer exists.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_APPDATA:</term>
-  <listitem>
-  <para>
-    The file system directory that contains application data for all users. This folder is used for application data that is not user specific. For example, an application can
-    store a spell-check dictionary, a database of clip art, or a log file in the CSIDL_COMMON_APPDATA folder. This
-    information will not roam and is available to anyone using the computer.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_DESKTOPDIRECTORY:</term>
-  <listitem>
-  <para>
-    The file system directory that contains files and folders that appear on the desktop for all users.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_DOCUMENTS:</term>
-  <listitem>
-  <para>
-    The file system directory that contains documents that are common to all users.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_FAVORITES:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for favorite items common to all users
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_MUSIC:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a repository for music files common to all users.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_OEM_LINKS:</term>
-  <listitem>
-  <para>
-    This value is recognized in Windows Vista for backward compatibility, but the folder itself is no longer used.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_PICTURES:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a repository for image files common to all users
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_PROGRAMS:</term>
-  <listitem>
-  <para>
-    The file system directory that contains the directories for the common program groups that appear on the Start menu for
-    all users.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_STARTMENU:</term>
-  <listitem>
-  <para>
-    The file system directory that contains the programs and folders that appear on the Start menu for all users
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_STARTUP:</term>
-  <listitem>
-  <para>
-    The file system directory that contains the programs that appear in the Startup folder for all users.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_TEMPLATES:</term>
-  <listitem>
-  <para>
-    The file system directory that contains the templates that are available to all users.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMMON_VIDEO:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a repository for video files common to all users.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COMPUTERSNEARME:</term>
-  <listitem>
-  <para>
-    The folder that represents other computers in your workgroup.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_CONNECTIONS:</term>
-  <listitem>
-  <para>
-    The virtual folder that represents Network Connections, that contains network and dial-up connections.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_CONTROLS:</term>
-  <listitem>
-  <para>
-    The virtual folder that contains icons for the Control Panel applications.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_COOKIES:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for Internet cookies.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_DESKTOP:</term>
-  <listitem>
-  <para>
-    The virtual folder that represents the Windows desktop, the root of the namespace.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_DESKTOPDIRECTORY:</term>
-  <listitem>
-  <para>
-    The file system directory used to physically store file objects on the desktop (not to be confused with the desktop
-    folder itself.)
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_DRIVES:</term>
-  <listitem>
-  <para>
-    The virtual folder that represents My Computer, containing everything on the local computer: storage devices, printers,
-    and Control Panel.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_FAVORITES:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for the user's favorite items.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_FONTS:</term>
-  <listitem>
-  <para>
-    A virtual folder that contains fonts.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_HISTORY:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for Internet history items.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_INTERNET:</term>
-  <listitem>
-  <para>
-    A virtual folder for Internet Explorer.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_INTERNET_CACHE:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for temporary Internet files
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_LOCAL_APPDATA:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a data repository for local (nonroaming) applications.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_MYDOCUMENTS:</term>
-  <listitem>
-  <para>
-    The virtual folder that represents the My Documents desktop item.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_MYMUSIC:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for music files.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_MYPICTURES:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for image files.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_MYVIDEO:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for video files
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_NETHOOD:</term>
-  <listitem>
-  <para>
-    A file system directory that contains the link objects that may exist in the My Network Places virtual folder. It is not
-    the same as CSIDL_NETWORK, which represents the network namespace root.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_NETWORK:</term>
-  <listitem>
-  <para>
-    A virtual folder that represents Network Neighborhood, the root of the network namespace hierarchy.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PERSONAL:</term>
-  <listitem>
-  <para>
-    The virtual folder that represents the My Documents desktop item.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PRINTERS:</term>
-  <listitem>
-  <para>
-    The virtual folder that contains installed printers.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PRINTHOOD:</term>
-  <listitem>
-  <para>
-    The file system directory that contains the link objects that can exist in the Printers virtual folder.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PROFILE:</term>
-  <listitem>
-  <para>
-    The user's profile folder. Applications should not create files or folders at this level; they should put their data
-    under the locations referred to by CSIDL_APPDATA or CSIDL_LOCAL_APPDATA.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PROGRAM_FILES:</term>
-  <listitem>
-  <para>
-    The Program Files folder.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PROGRAM_FILES_COMMON:</term>
-  <listitem>
-  <para>
-    A folder for components that are shared across applications.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PROGRAM_FILES_COMMONX86:</term>
-  <listitem>
-  <para>
-    Listed in the MSDN documentation with no explanation.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PROGRAM_FILESX86:</term>
-  <listitem>
-  <para>
-    Listed in the MSDN documentation with no explanation.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_PROGRAMS:</term>
-  <listitem>
-  <para>
-    The file system directory that contains the user's program groups (which are themselves file system directories.)
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_RECENT:</term>
-  <listitem>
-  <para>
-    The file system directory that contains shortcuts to the user's most recently used documents.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_RESOURCES:</term>
-  <listitem>
-  <para>
-    Windows Vista. The file system directory that contains resource data.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_RESOURCES_LOCALIZED:</term>
-  <listitem>
-  <para>
-    Listed in the MSDN documentation with no explanation.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_SENDTO:</term>
-  <listitem>
-  <para>
-    The file system directory that contains Send To menu items.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_STARTMENU:</term>
-  <listitem>
-  <para>
-    The file system directory that contains Start menu items.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_STARTUP:</term>
-  <listitem>
-  <para>
-    The file system directory that corresponds to the user's Startup program group. The system starts these programs whenever
-    any user logs onto Windows.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_SYSTEM:</term>
-  <listitem>
-  <para>
-    The Windows System folder.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_SYSTEMX86:</term>
-  <listitem>
-  <para>
-    Listed in the MSDN documentation with no explanation.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_TEMPLATES:</term>
-  <listitem>
-  <para>
-    The file system directory that serves as a common repository for document templates
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term>CSIDL_WINDOWS:</term>
-  <listitem>
-  <para>
-    The Windows directory or SYSROOT. This corresponds to the %windir% or %SYSTEMROOT% environment variables.
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-
-</section> <!-- End Special Folder Names section -->
-
-<section id="sctMethodsBrowseForFolder"><title>Method Table</title>
-<para>
-  The following table lists the class and instance methods of the <computeroutput>BrowseForFolder</computeroutput> class:
-
-<table id="tblMethodsBrowseForFolder" frame="all"> <title>BrowseForFolder Class Method Reference</title>
-<tgroup cols="2">
-<colspec colwidth="1*" />
-<colspec colwidth="4*" />
-<thead>
-<row>
-<entry>Method</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="center"><emphasis role="bold">Class Methods</emphasis></entry>
-<entry align="center"><emphasis role="bold">Class Methods</emphasis></entry>
-</row>
-<row>
-<entry><xref linkend="mthNewClsBrowseForFolder"/></entry>
-<entry>Instantiates a new <computeroutput>BrowseForFolder</computeroutput> object</entry>
-</row>
-<row>
-<entry align="center"><emphasis role="bold">Attribute Methods</emphasis></entry>
-<entry align="center"><emphasis role="bold">Attribute Methods</emphasis></entry>
-</row>
-<row>
-<entry><xref linkend="atrBanner"/> </entry>
-<entry>Reflects the banner text for this browse for folder object.</entry>
-</row>
-<row>
-<entry><xref linkend="atrDlgTitle"/> </entry>
-<entry>Reflects the title to be used in the browse for folder dialog.</entry>
-</row>
-<row>
-<entry><xref linkend="atrHint"/> </entry>
-<entry>Reflects the hint text to be used in the browse for folder dialog</entry>
-</row>
-<row>
-<entry><xref linkend="atrInitialThread"/></entry>
-<entry>Reflects the thread ID of the thread this browse for folder object was instantiated on.</entry>
-</row>
-<row>
-<entry><xref linkend="atrOptions"/> </entry>
-<entry>Reflects the Browse For Folder dialog options set for this object.</entry>
-</row>
-<row>
-<entry><xref linkend="atrOwner"/> </entry>
-<entry>Reflects the Rexx dialog that is the owner of this browse for folder dialog. By default there is no owner.</entry>
-</row>
-<row>
-<entry><xref linkend="atrRoot"/> </entry>
-<entry>Reflects the folder that will be set as the root folder of the tree-view control in the browse for folder dialog.</entry>
-</row>
-<row>
-<entry><xref linkend="atrStartDir"/> </entry>
-<entry>Reflects a directory, a folder, that should be pre-selected when the browse for folder dialog first opens.</entry>
-</row>
-<row>
-<entry><xref linkend="atrUsePathForHint"/> </entry>
-<entry>Reflects the status of the internal flag controlling whether the hint text should be set to the selected folder's path.</entry>
-</row>
-<row>
-<entry align="center"><emphasis role="bold">Instance Methods</emphasis></entry>
-<entry align="center"><emphasis role="bold">Instance Methods</emphasis></entry>
-</row>
-<row>
-<entry><xref linkend="mthGetDisplayName"/> </entry>
-<entry>Returns the display name for an item <link linkend="varItemIDList">ID</link> list.</entry>
-</row>
-<row>
-<entry><xref linkend="mthGetFolder"/> </entry>
-<entry>Shows the browse for folder dialog configured as defined by the current values of the attributes of this object.</entry>
-</row>
-<row>
-<entry><xref linkend="mthGetItemIDList"/> </entry>
-<entry>Shows the browse for folder dialog and retrieves the item <link linkend="varItemIDList">ID</link> list the user picks.</entry>
-</row>
-<row>
-<entry><xref linkend="mthInitCOM"/> </entry>
-<entry>Initializes the COM <link linkend="varCOMLibrary">library</link> on the current thread.</entry>
-</row>
-<row>
-<entry><xref linkend="mthReleaseCOM"/> </entry>
-<entry>Releases the COM <link linkend="varCOMLibrary">library</link> on the current thread.</entry>
-</row>
-<row>
-<entry><xref linkend="mthReleaseItemIDList"/> </entry>
-<entry></entry>
-</row>
-</tbody></tgroup>
-</table>
-</para>
-</section>
-
-<section id="mthNewClsBrowseForFolder" xreflabel="new"><title>new (Class Method)</title>
-<indexterm><primary>new</primary><secondary>BrowseForFolder class</secondary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>new</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--new(--+---------+--+----------+--+--------+--+------------+--)-------------><
-          +--title--+  +-,-banner-+  +-,-hint-+  +-,-startDir-+
-]]>
-</programlisting>
-
-<para>
-  Instantiates a new <computeroutput>BrowseForFolder</computeroutput> object.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The arguments are:
-  </para>
-  <variablelist>
-    <varlistentry><term>title [optional]</term>
-    <listitem>
-    <para>
-      Specifies a caption, or title, for the dialog. The Windows default title is <emphasis role="italic">Browse For
-      Folder</emphasis>. If this argument is used, the <xref linkend="atrDlgTitle"/> attribute is set using the value
-      specified.
-    </para>
-    <para>
-      If this argument is omitted, the default ooDialog value, <emphasis role="italic">ooDialog Browse for Folder</emphasis>,
-      is set for the <emphasis role="italic">dlgTitle</emphasis> attribute. To prevent the ooDialg default value from being
-      used and have the Windows default used, set this argument to the <computeroutput>.nil</computeroutput> object, or to the empty string.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>banner [optional]</term>
-    <listitem>
-    <para>
-      Specifies text to use for what Windows calls the <emphasis role="italic">banner</emphasis> for the dialog.  This string
-      is displayed above the tree view control in the dialog box. The string can be used to specify instructions to the user.
-      By default, Windows, does not display the banner and the area above the tree view is blank. If this argument is
-      used, the <xref linkend="atrBanner"/> attribute is set to the value specified.
-    </para>
-    <para>
-      If this argument is omitted, the default ooDialog value, <emphasis role="italic">Select the folder needed</emphasis>,
-      is set for the <emphasis role="italic">banner</emphasis> attribute. To prevent the ooDialg default value from being
-      used and have the Windows default used, set this argument to the <computeroutput>.nil</computeroutput> object, or to
-      the empty string.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>hint [optional]</term>
-    <listitem>
-    <para>
-      Specifies text to use for a <emphasis role="italic">hint</emphasis> in the dialog. The hint is displayed below the
-      bottom of the tree view control and above the bottom row of buttons of the dialog. By default, Windows does not display
-      a hint, and the area where the hint would go is removed from the dialog. That is, the bottom row of buttons is placed
-      directly below the tree view. If this argument is used, the <xref linkend="atrHint"/> attribute is set to the value
-      specified.
-    </para>
-    <para>
-      If this argument is omitted, the default ooDialog value, <emphasis role="italic">If the needed folder does not exist it
-      can be created</emphasis>, is set for the <emphasis role="italic">hint</emphasis> attribute. To prevent the ooDialg
-      default value from being used and have the Windows default used, set this argument to the
-      <computeroutput>.nil</computeroutput> object, or to the empty string.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>startDir [optional]</term>
-    <listitem>
-    <para>
-      Specifies an initial selected folder for the dialog. By default, Windows opens the dialog with the top-most item in the
-      tree view selected. If a start folder is specified, the folder is selected and, if needed, the tree view items are
-      expanded and the tree view is scrolled so that the starting folder is visible in the tree view. If this argument is
-      used, the <xref linkend="atrStartDir"/> attribute is set to the value specified.
-    </para>
-    <para>
-      Testing indicates that the folder specified must be a fully qualified path name of an existing directory. If not, the
-      operating system seems to just ignore it.
-    </para>
-    <para>
-      If this argument is omitted, the ooDialog framework sets the <emphasis role="italic">startDir</emphasis> attribute to
-      the empty string. The causes Windows to use its default behaviour.
-    </para>
-    </listitem></varlistentry>
-  </variablelist>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    Returns a newly instantiated <computeroutput>BrowseForFolder</computeroutput> object.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    During instantiation, the <xref linkend="atrOptions"/>, <xref linkend="atrRoot"/>. and the <xref
-    linkend="atrInitialThread"/> attributes are also set.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect arguments are detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example instantiates a new <computeroutput>BrowseForFolder</computeroutput> object with a title, banner, and hint:
-<programlisting>
-<![CDATA[
-
-  -- Set title, banner, and a hint for the dialog.
-  title  = 'Browse For a Printer'
-  banner = 'Select the printer to use for this test.'
-  hint   = 'This is only a demonstration, no printing will be done.'
-
-  bff = .BrowseForFolder~new(title, banner, hint)
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::new() -->
-
-<section id="atrBanner" xreflabel="banner"><title>banner (Attribute)</title>
-<indexterm><primary>banner</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>banner</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--banner---------------------------------------><
-
->>--banner = text--------------------------------><
-]]>
-</programlisting>
-
-<para>
-  Reflects the banner text for this browse for folder object. The <emphasis role="italic">banner</emphasis> is an area above
-  the tree-view control in the dialog that can be used to display a few lines of text. By default, Windows leaves this area
-  blank.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">banner get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the banner text for this object, or the empty string if the Windows default behaviour for the banner is to be
-    used.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">banner set:</emphasis></term>
-  <listitem>
-  <para>
-    To use a non-default banner, set this attribute to the text desired. To specify that the default Windows behaviour
-    regarding the banner be used, set this attribute to the empty string or to the <computeroutput>.nil</computeroutput>
-    object.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    By default, the text, <emphasis role="italic">Select the folder needed</emphasis> is set for the banner by the ooDialog
-    framework. By default, Windows will not use a baner. To use the Windows default behaviour rather than the ooDialog
-    default banner, set the <emphasis role="italic">banner</emphasis> attributed to the empty string, or the the
-    <computeroutput>.nil</computeroutput> object.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example example configures a browse for folder object to not display a banner:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new('Choose the Backup Folder')
-  bff~banner = .nil
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::banner() [attribute]  -->
-
-<section id="atrDlgTitle" xreflabel="dlgTitle"><title>dlgTitle (Attribute)</title>
-<indexterm><primary>dlgTitle</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>dlgTitle</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--dlgTitle-------------------------------------><
-
->>--dlgTitle = title-----------------------------><
-]]>
-</programlisting>
-
-<para>
-  Reflects the title to be used in the browse for folder dialog.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">dlgTitle get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the text to be used for the dialog title, or the empty string if the Windows default title will be used.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">dlgTitle set:</emphasis></term>
-  <listitem>
-  <para>
-    Set this attribute to the title desired for the dialog, if the ooDialog default is not desired. Set this attribute to the
-    empty string or to the <computeroutput>.nil</computeroutput> object to specify that the Windows default title be used.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    By default the ooDialog framework sets the <emphasis role="italic">dlgTitle</emphasis> attribute to <emphasis
-    role="italic">ooDialog Browse for Folder</emphasis>. The Windows default title is <emphasis role="italic">Browse fo
-    Folder.</emphasis> To have the dialog use the Windows default, set this attribute to the empty string or the
-    <computeroutput>.nil</computeroutput> object.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example instantiates a browse for folder dialog and then sets a custom title for the dialog:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new
-  bff~dlgTitle ='Choose the Backup Folder'
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::dlgTitle() [attribute]  -->
-
-<section id="atrHint" xreflabel="hint"><title>hint (Attribute)</title>
-<indexterm><primary>hint</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>hint</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--hint-----------------------------------------><
-
->>--hint = hint----------------------------------><
-]]>
-</programlisting>
-
-<para>
-  Reflects the hint text to be used in the browse for folder dialog. The <emphasis role="italic">hint</emphasis> is an area
-  between the bottom of the tree-view and above the bottom rows of buttons that can be used to display a line of text. By
-  default, Windows removes this area from the dialog.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">hint get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the text of the hint for this browse for folder dialog. Returns the empty string if no hint is to be displayed.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">hint set:</emphasis></term>
-  <listitem>
-  <para>
-    Set this attribute to the text to display in the hint area, if the default ooDialog hint is not appropriate. Set this
-    attribute to the empty string or the <computeroutput>.nil</computeroutput> object to restore the default Windows
-    behaviour, which is to remove the hint area altogether.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    By default, the ooDialog framework sets this attribute to <emphasis role="italic">If the needed folder does not exist it
-    can be created</emphasis>. To prevent this text being used, either set the <emphasis role="italic">hint</emphasis>
-    attriubte to the text desired, or set it to the empty string to remove the hint area altogether.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example instantiates a browse for folder object and then sets the hint to text that informs the user what to do:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new
-  bff~hint ='Choose the folder to place your back up files in.'
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::hint() [attribute]  -->
-
-<section id="atrInitialThread" xreflabel="initialThread"><title>initialThread (Attribute)</title>
-<indexterm><primary>initialThread</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>initialThread</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--initialThread--------------------------------><
-]]>
-</programlisting>
-
-<para>
-  Reflects the thread ID of the thread this browse for folder object was instantiated on.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">initialThread get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the thread ID for the thread that this object was instantiated on.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">initialThread set:</emphasis></term>
-  <listitem>
-  <para>
-    The <emphasis role="italic">initialThread</emphasis> attribute can not be set by the programmer. It is set by the
-    ooDialog framework and can not be changed.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    When the browse for folder dialog is first instantiated, the ooDialog framework <link
-    linkend="varCOMLibrary">initializes</link> the COM library on the thread that is executing and records the
-    thread ID in the <emphasis role="italic">initialThread</emphasis> attribute. If the application makes use of the browse
-    for folder object in multiple threads, the value of the initial thread ID is helpful in determining if the COM library
-    needs to be initialized or not on the currently executing thread. The <xref linkend="mthThreadID"/> method of the <xref
-    linkend="clsDlgUtil"/> class can be used to determine the ID of the currently executing.
-  </para>
-  <para>
-    The recomendation is that the browse for folder dialog should be instantiated, used, and disposed of all on the same
-    thread. However, if the programmer has a need, or even just the desire, to use the browse for folder object on multiple
-    threads, there is no reason why that can not be done. The programmer just needs to manage the initialization and release
-    of the COM library herself.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example shows a browse for folder object that is reused for the life-time of the dialog.  In the onBrowse() method,
-    if the method is not running on the same thread as the BrowseForFolder object was instantiated on, then COM is
-    initialized and released each time the object is used.  If it is the same thread, COM is not initialized and not
-    released.
-  </para>
-  <para>
-    Finally, during the leaving() method, if the method is running on the same thread as the browse for folder was
-    instantiated on, the item <link linkend="varItemIDList">ID</link> list and COM are released.
-  </para>
-  <para>
-    Note that this example does run correctly. But, if it were to turn out that the leaving() method was not running on the
-    same thread as the define() method had run on, then COM and the item ID list would not be released correctly. It was only
-    after some testing that it was determined that the program ran correctly:
-<programlisting>
-<![CDATA[
-
-::method defineDialog
-  expose bff pidl
-
-  ...
-
-  say 'defineDialog() thread ID' .DlgUtil~threadID
-  say
-  bff = .BrowseForFolder~new
-  bff~usePathForHint = .true
-  bff~hint = ''
-
-  pidl = .nil
-
-::method onBrowse unguarded
-  expose bff pidl
-
-  say 'onBrowse() thread:' .DlgUtil~threadID
-  say
-
-  newThread = (bff~initialThread == .DlgUtil~threadID)
-
-  if newThread then bff~initCOM
-
-  if pidl \== .nil then bff~releaseItemIDList(pidl)
-  if bff~owner \== .nil then bff~owner = self
-
-  pidl = bff~getItemIDList(.true)
-
-  if pidl \== .nil then say 'The user picked:' bff~getDisplayName(pidl)
-  else say 'The user canceled'
-  say
-
-  if newThread then bff~releaseCOM
-
-  return 0
-
-::method leaving unguarded
-  expose bff pidl
-
-  if bff~initialThread == .DlgUtil~threadID then do
-      say 'leaving() thread ID' .DlgUtil~threadID
-      if pidl \== .nil then bff~releaseItemIDList(pidl)
-      bff~releaseCOM
-  end
-
-/* Output from a typical session:
-
-defineDialog() thread ID 4032
-
-onBrowse() thread: 3320
-
-The user picked: C:\Rexx\ooRexx.3.0.0.release
-
-onBrowse() thread: 3320
-
-The user canceled
-
-onBrowse() thread: 3320
-
-The user picked: U:\PictureFiles
-
-leaving() thread ID 4032
-
-*/
-
-]]>
-</programlisting>
-  </para>
-  <para>
-    The recommendation is to simply instantiate a browse for folder object, use it, and dispose of it. The above example
-    could have just as easily, and perhaps more easily, been written this way:
-
-<programlisting>
-<![CDATA[
-
-::method defineDialog
-
-  ...
-
-  say 'defineDialog() thread ID' .DlgUtil~threadID
-  say
-  return 0
-
-
-::method onBrowse unguarded
-
-  say 'onBrowse() thread:' .DlgUtil~threadID
-  say
-
-  bff = .BrowseForFolder~new
-  bff~usePathForHint = .true
-  bff~hint = ''
-  bff~owner = self
-
-  pidl = bff~getItemIDList(.true)
-
-  if pidl \== .nil then say 'The user picked:' bff~getDisplayName(pidl)
-  else say 'The user canceled'
-  say
-
-  if pidl \== .nil then bff~releaseItemIDList(pidl)
-  bff~releaseCOM
-
-  return 0
-
-::method leaving unguarded
-
-  say 'leaving() thread ID' .DlgUtil~threadID
-  return 0
-
-/* Output from a typical session:
-
-defineDialog() thread ID 3580
-
-onBrowse() thread: 3960
-
-The user picked: C:\Rexx\ooRexx.3.2.0.debug
-
-onBrowse() thread: 3960
-
-The user picked: U:\MovieFiles\2013\Santa Fe New Mexico
-
-onBrowse() thread: 3960
-
-The user canceled
-
-onBrowse() thread: 3960
-
-The user picked: C:\Tools\TortoiseSVN
-
-leaving() thread ID 3580
-
-*/
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::initialThread() [attribute]  -->
-
-<section id="atrOptions" xreflabel="options"><title>options (Attribute)</title>
-<indexterm><primary>options</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>options</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--options--------------------------------------><
-
->>--options = keywords---------------------------><
-
-]]>
-</programlisting>
-
-<para>
-  Reflects the Browse For Folder dialog options set for this object.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">options get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns a list of the keywords that specify the Browse For Folder dialog options that are currently set for this object.
-    The kewyords are listed and explained in the remarks section.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">options set:</emphasis></term>
-  <listitem>
-  <para>
-    Set the Browse For Folder dialog options using a blank separated list of keywords. The list is case insensitive. The
-    possible keywords are listed in the remarks section.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    On instantiation, the Browse For Folder dialog options are set to a default value that is appropriate for most use cases.
-    The default options are <emphasis role="italic">RETURNONLYFSDIRS RETURNFSANCESTORS NEWDIALOGSTYLE</emphasis>. To change
-    these options after instantiations, set this attribute using a list of 0 or more of the following keywords, case is not
-    significant. The list <emphasis role="italic">replaces</emphasis> the current list, with one caveat. The ooDialog
-    framework manages the NEWDIALOGSTYLE and UAHINT options. The NEWDIALOGSTYLE is required. If the new list does not
-    contain that keyword it is added. The UAHINT option is added when needed, and removed when not needed.
-  </para>
-  <para>
-    <simplelist type='vert' columns='3'>
-      <member>BROWSEFILEJUNCTIONS</member>
-      <member>BROWSEFORCOMPUTER  </member>
-      <member>BROWSEFORPRINTER   </member>
-      <member>BROWSEINCLUDEFILES </member>
-      <member>BROWSEINCLUDEURLS  </member>
-      <member>DONTGOBELOWDOMAIN  </member>
-      <member>NEWDIALOGSTYLE     </member>
-      <member>NONEWFOLDERBUTTON  </member>
-      <member>NOTRANSLATETARGETS </member>
-      <member>RETURNFSANCESTORS  </member>
-      <member>RETURNONLYFSDIRS   </member>
-      <member>SHAREABLE          </member>
-      <member>UAHINT             </member>
-    </simplelist>
-    <variablelist>
-      <varlistentry><term>BROWSEFILEJUNCTIONS</term>
-      <listitem>
-      <para>
-        Allows folder junctions like zip files and libraries to be browsed.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>BROWSEFORCOMPUTER</term>
-      <listitem>
-      <para>
-        Only return computers.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>BROWSEFORPRINTER</term>
-      <listitem>
-      <para>
-        Only allow the selection of printers.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>BROWSEINCLUDEFILES</term>
-      <listitem>
-      <para>
-        The browse dialog box will display files as well as folders.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>BROWSEINCLUDEURLS</term>
-      <listitem>
-      <para>
-        The browse dialog box can display URLs. The NEWDIALOGSTYLE and BROWSEINCLUDEFILES flags must also be set. If these
-        three flags are not set, the browser dialog box will reject URLs. Even when these flags are set, the browse dialog
-        box will only display URLs if the folder that contains the selected item supports them.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>DONTGOBELOWDOMAIN</term>
-      <listitem>
-      <para>
-        Do not include network folders below the domain level in the dialog box's tree view control.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>NEWDIALOGSTYLE</term>
-      <listitem>
-      <para>
-        Use the new user interface. Setting this flag provides the user with a larger dialog box that can be resized. The
-        dialog box has several new capabilities, including: drag-and-drop capability within the dialog box, reordering,
-        shortcut menus, new folders, delete, and other shortcut menu commands. The programmer can not effectively remove this
-        flag, the ooDialog framework ensures it is always set.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>NONEWFOLDERBUTTON</term>
-      <listitem>
-      <para>
-        Do not include the New Folder button in the browse dialog box.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>NOTRANSLATETARGETS</term>
-      <listitem>
-      <para>
-        When the selected item is a shortcut, return the <xref linkend="varItemIDList"/> of the shortcut itself rather than
-        its target.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>RETURNFSANCESTORS</term>
-      <listitem>
-      <para>
-        Only return file system ancestors. An ancestor is a subfolder that is beneath the root folder in the namespace
-        hierarchy.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>RETURNONLYFSDIRS</term>
-      <listitem>
-      <para>
-        Only return file system directories.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>SHAREABLE</term>
-      <listitem>
-      <para>
-        The browse dialog box can display shareable resources on remote systems. It is intended for applications that want to
-        expose remote shares on a local system.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>UAHINT</term>
-      <listitem>
-      <para>
-        Adds a usage hint to the dialog box. This option is set by the ooDialog framework, the programmer can not effectively
-        alter it. The option is set if the <xref linkend="atrHint"/> attribute is set and removed if the attribute is not
-        set.
-      </para>
-      </listitem></varlistentry>
-    </variablelist>
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example comes from a demonstration program showing how to browse for printers. After instantiating the browse for
-    folder object, it sets the dialog options to a non-default value, a value appropriate for printer browsing:
-<programlisting>
-<![CDATA[
-
-  title  = 'Browse For a Printer'
-  banner = 'Select the printer to use for this test.'
-  hint   = 'This is only a demonstration, no printing will be done.'
-
-  bff = .BrowseForFolder~new(title, banner, hint)
-
-  bff~owner = self
-  bff~root = 'CSIDL_PRINTERS'
-
-  bff~options = 'BROWSEFORPRINTERS NONEWFOLDERBUTTON'
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::options() [attribute]  -->
-
-<section id="atrOwner" xreflabel="owner"><title>owner (Attribute)</title>
-<indexterm><primary>owner</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>owner</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--owner----------------------------------------><
-
->>--owner = ownerDlg-----------------------------><
-
-]]>
-</programlisting>
-
-<para>
-  Reflects the Rexx dialog that is the owner of this browse for folder dialog. By default there is no owner.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">owner get:</emphasis></term>
-  <listitem>
-  <para>
-    If this browse for folder dialog has an owner dialog, returns that Rexx dialog. Returns the
-  <computeroutput>.nil</computeroutput> object if ther is no owner dialog.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">owner set:</emphasis></term>
-  <listitem>
-  <para>
-    To assign an owner dialog to the browse for folder dialog set the <emphasis role="italic">ownerDlg</emphasis> attribute
-    to a Rexx dialog object that is to be the owner. By default there is no owner dialog assigned. If the programmer has set
-    an owner dialog and for some reasons needs to remove it, this can be done by setting the <emphasis
-    role="italic">ownerDlg</emphasis> attribute to the <computeroutput>.nil</computeroutput> object.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    If the browse for folder dialog has an owner dialog, then when the browse dialog is displayed the operating system will
-    disable the owner dialog until the user has closed the browse dialog. This is normally the behaviour wanted.
-  </para>
-  <para>
-    Note that setting the <emphasis role="italic">owner</emphasis> attribute before the underlying ownere dialog has been
-    created will have not effect.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example shows the first steps in configuring a <emphasis role="italic">browse for printers</emphasis> dialog that is
-    displayed from a dialog. The dialog is set as the owner of the browse for printers dialog:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new(title, banner, hint)
-  bff~owner = self
-  bff~root = 'CSIDL_PRINTERS'
-  ...
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::owner() [attribute]  -->
-
-<section id="atrRoot" xreflabel="root"><title>root (Attribute)</title>
-<indexterm><primary>root</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>root</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--root-----------------------------------------><
-
->>--root = rootFolder----------------------------><
-
-]]>
-</programlisting>
-
-<para>
-  Reflects the folder that will be set as the root folder of the tree-view control in the browse for folder dialog. It is not
-  possible for the user to browse above the root folder.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">root get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the item <link linkend="varItemIDList">ID</link> list for the folder set as the root folder of the browse for
-    folder dialog. If no root folder has been set, the <computeroutput>.nil</computeroutput> object is returned.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">root set:</emphasis></term>
-  <listitem>
-  <para>
-    The <emphasis role="italic">root</emphasis> attribute can be set using a number of different forms. By default, no root
-    folder is set. To remove a root folder, set the attribute to the emplty string or to the
-    <computeroutput>.nil</computeroutput> object. Use a full path name to set the root folder to the named folder. One of the
-    <xref linkend="sctSpecialFolderNames"/> can be used. In addition, an item <link linkend="varItemIDList">ID</link> list
-    can be used. An item ID list can be obtained through the <xref linkend="mthGetItemIDList"/> method.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    When an item ID list is obtained through the <emphasis role="italic">getItemIDList</emphasis>, the user is normally
-    responsible for <link linkend="mthReleaseItemIDList">releasing</link> the item ID list. However, the ooDialog
-    automatically releases the item ID list set as the <emphasis role="italic">root</emphasis> attribute. There is no need to
-    release an item ID list that has been set as the <emphasis role="italic">root</emphasis> attriubte.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details:</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example comes from a demonstration program showing how to browse for printers. After instantiating the browse for
-    folder object, it sets the root attribute to the printers folder:
-<programlisting>
-<![CDATA[
-
-  title  = 'Browse For a Printer'
-  banner = 'Select the printer to use for this test.'
-  hint   = 'This is only a demonstration, no printing will be done.'
-
-  bff = .BrowseForFolder~new(title, banner, hint)
-
-  bff~owner = self
-  bff~root = 'CSIDL_PRINTERS'
-
-  bff~options = 'BROWSEFORPRINTERS NONEWFOLDERBUTTON'
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::root() [attribute]  -->
-
-<section id="atrStartDir" xreflabel="startDir"><title>startDir (Attribute)</title>
-<indexterm><primary>startDir</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>startDir</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--startDir-------------------------------------><
-
->>--startDir = initialFolder---------------------><
-
-]]>
-</programlisting>
-
-<para>
-  Reflects a directory, a folder, that should be pre-selected when the browse for folder dialog first opens. The tree-view
-  control is expanded and scrolled, if needed, so that the selected folder is visible when the dialog is shown.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">startDir get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the full path name of the folder that is initially selected for this browse for folder dialog, of the empty
-    string if no start folder has been set.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">startDir set:</emphasis></term>
-  <listitem>
-  <para>
-    Set the <emphasis role="italic">startDir</emphasis> attribute to the full path name of the direcotry that should be
-    pre-selected when the browse for folder diaglo is started. To remove a starting directory, set this attribute to the
-    <computeroutput>.nil</computeroutput> object or to the empty string.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    Relative path names and incomplete path names are ignored by the operating system. The <emphasis
-    role="italic">startDir</emphasis> attribute needs to be set to a full path name for this feature to work.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example configures the browse for folder dialog to open with the <computeroutput>C:\Program Files\Microsoft
-    Games</computeroutput> directory selected:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new
-
-  bff~root = 'CSIDL_DRIVES'
-  bff~usePathForHint = .true
-  bff~startDir = "C:\Program Files\Microsoft Games"
-
-  folder = bff~getFolder
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::startDir() [attribute]  -->
-
-<section id="atrUsePathForHint" xreflabel="usePathForHint"><title>usePathForHint (Attribute)</title>
-<indexterm><primary>usePathForHint</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>usePathForHint</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--usePathForHint-------------------------------><
-
->>--usePathForHint = trueOrFalse-----------------><
-
-]]>
-</programlisting>
-
-<para>
-  Reflects the status of the internal flag controlling whether the hint text should be set to the selected folder's path. By
-  default the flag is set to false.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">usePathForHint get:</emphasis></term>
-  <listitem>
-  <para>
-    Returns true if the use path for hint feature is enabled, or false if it is disabled.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">usePathForHint set:</emphasis></term>
-  <listitem>
-  <para>
-    Set the <emphasis role="italic">usePathForHint</emphasis> attribute to true to enable the updating of the hint to the
-    path of the currently selected folder, or to false to disable the feature.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    The browse for folder dialog has a feature that will update the hint text with the full path to the currently selected
-    folder in the tree-view control. Each time the selected folder is changed, the hint is updated with the new path to the
-    newly selected folder. This feature is turned on or off throught the <emphasis role="italic">usePathForHint</emphasis>
-    attribute.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example instantiates a browse for folder object and configures it to display the full path to the selected folder as
-    the hint by setting the <emphasis role="italic">usePathForHint</emphasis> attribute to true:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new
-
-  bff~root = 'CSIDL_MYDOCUMENTS'
-  bff~usePathForHint = .true
-
-  folder = bff~getFolder
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::usePathForHint() [attribute]  -->
-
-<section id="mthGetDisplayName" xreflabel="getDisplayName"><title>getDisplayName</title>
-<indexterm><primary>getDisplayName</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>getDisplayName</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--getDisplayName(--pidl--,--+--------+--)------><
-                              +--type--+
-]]>
-</programlisting>
-
-<para>
-  Returns the display name for an item <link linkend="varItemIDList">ID</link> list.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The arguments are:
-  </para>
-  <variablelist>
-    <varlistentry><term>pidl [required]</term>
-    <listitem>
-    <para>
-      The item ID list whose display name is desired.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>type [optional]</term>
-    <listitem>
-    <para>
-      There are several different types or formats of display names. By default if this arugment is omitted, the method first
-      tries to get the full file system path name. But, if that fails, it tries again using the DESKTOPABSOLUTEEDITING flag.
-      This should always return something.
-    </para>
-    <para>
-      When used, the <emphasis role="italic">type</emphasis> argument specifies the format of the returned display name using
-      exactly one of the following keyword, case is not significant:
-    </para>
-    <para>
-    <simplelist type='vert' columns='2'>
-      <member>DESKTOPABSOLUTEEDITING     </member>
-      <member>DESKTOPABSOLUTEPARSING     </member>
-      <member>FILESYSPATH                </member>
-      <member>PARENTRELATIVE             </member>
-      <member>PARENTRELATIVEEDITING      </member>
-      <member>PARENTRELATIVEFORADDRESSBAR</member>
-      <member>PARENTRELATIVEPARSING      </member>
-      <member>URL                        </member>
-      <member>NORMALDISPLAY              </member>
-    </simplelist>
-    <variablelist>
-      <varlistentry><term>DESKTOPABSOLUTEEDITING</term>
-      <listitem>
-      <para>
-        Returns the editing name relative to the desktop.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>DESKTOPABSOLUTEPARSING</term>
-      <listitem>
-      <para>
-        Returns the parsing name relative to the desktop.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>FILESYSPATH</term>
-      <listitem>
-      <para>
-        Returns the display name relative to the file system path
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>PARENTRELATIVE</term>
-      <listitem>
-      <para>
-        MSDN does not document this.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>PARENTRELATIVEEDITING</term>
-      <listitem>
-      <para>
-        Returns the editing name relative to the parent folder.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>PARENTRELATIVEFORADDRESSBAR</term>
-      <listitem>
-      <para>
-        Returns the path relative to the parent folder in a friendly format as displayed in an address bar.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>PARENTRELATIVEPARSING</term>
-      <listitem>
-      <para>
-        Returns the parsing name relative to the parent folder.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>URL</term>
-      <listitem>
-      <para>
-        Returns the display name relative to a URL.
-      </para>
-      </listitem></varlistentry>
-      <varlistentry><term>NORMALDISPLAY</term>
-      <listitem>
-      <para>
-        Returns the display name relative to the desktop.
-      </para>
-      </listitem></varlistentry>
-    </variablelist>
-    </para>
-    </listitem></varlistentry>
-  </variablelist>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the display name on success, the <computeroutput>.nil</computeroutput> object on failure.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    Not all format types will return a display name for any item ID list. For example, if the item ID list is a virtual
-    folder and the FILESYSPATH format is requested, the method will fail.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  <para>
-    Sets the <link linkend="dotSystemErrorCode">.SystemErrorCode</link> variable.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example gets an item ID list that the user selects and then prints its display name:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new
-  bff~root = 'CSIDL_DRIVES'
-  bff~usePathForHint = .true
-  bff~startDir = "C:\Program Files\Microsoft Games"
-  idList = bff~getItemIDList
-  say bff~getDisplayName(idList, 'NORMALDISPLAY')
-  return 0
-
-/* Output might be:
-
-$Recycle.Bin
-
-*/
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::getDisplayName() -->
-
-<section id="mthGetFolder" xreflabel="getFolder"><title>getFolder</title>
-<indexterm><primary>getFolder</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>getFolder</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--getFolder(--+---------+--)-------------------><
-                +--reuse--+
-]]>
-</programlisting>
-
-<para>
-  Shows the browse for folder dialog configured as defined by the current values of the attributes of this object.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The single argument is:
-  </para>
-  <variablelist>
-    <varlistentry><term>reuse [optional]</term>
-    <listitem>
-    <para>
-      True or false to specify whether this object will be <emphasis role="italic">reused</emphasis> or if the programmer is
-      finished with the object. The default is false, the programmer is done invoking methods on the object
-    </para>
-    </listitem></varlistentry>
-  </variablelist>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the folder selected by the user, or the <computeroutput>.nil</computeroutput> object if the user cancels the
-    dialog.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    The recommended usage pattern for the BrowseForFolder object is to instantiate the object, configure the dialog through
-    the object's attributes, and show the dialog using <emphasis role="italic">getFolder</emphasis>, or <xref
-    linkend="mthGetItemIDList"/>. In this way the COM library is <link linkend="varCOMLibrary">initialized</link> when the
-    object is instantiated and released during the return from <emphasis role="italic">getFolder</emphasis> or <emphasis
-    role="italic">getItemIDList</emphasis>.
-  </para>
-  <para>
-    The COM library is always released during the <emphasis role="italic">getFolder</emphasis> method, unless the <emphasis
-    role="italic">reuse</emphasis> argument is true. When <emphasis role="italic">reuse</emphasis> is true, the COM library
-    is not released and it becomes the programmer's responsibility to ensure the library is released properly
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example instantiates the <computeroutput>BrowseForFolder</computeroutput> object, configures it, and shows it. On
-    return it checks if the user canceled the dialog or not. Since the programmer is done with the object, the <emphasis
-    role="italic">reuse</emphasis> argument is omitted:
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new
-  bff~usePathForHint = .true
-  bff~hint = ''
-  bff~owner = self
-
-  folder = bff~getFolder
-
-  if folder \== .nil then say 'The user picked:' folder
-  else say 'The user canceled'
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::getFolder() -->
-
-<section id="mthGetItemIDList" xreflabel="getItemIDList"><title>getItemIDList</title>
-<indexterm><primary>getItemIDList</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>getItemIDList</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--getItemIDList(--+---------+--)---------------><
-                    +--reuse--+
-]]>
-</programlisting>
-
-<para>
-  Shows the browse for folder dialog and retrieves the item <link linkend="varItemIDList">ID</link> list the user picks.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The single argument is:
-  </para>
-  <variablelist>
-    <varlistentry><term>reuse [optional]</term>
-    <listitem>
-    <para>
-      True or false to specify whether this object will be <emphasis role="italic">reused</emphasis> or if the programmer is
-      finished with the object. The default is false, the programmer is done invoking methods on the object
-    </para>
-    </listitem></varlistentry>
-  </variablelist>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    Returns the itemID list the user picks, or the <computeroutput>.nil</computeroutput> object if the user cancels the
-    dialog.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    The item ID list returned is similar to a <link linkend="defHandle">handle</link> to other system resources, like a <link
-    linkend="mthCreateFontEx">font</link> or a <link linkend="mthGetDC">device context</link>, and must be released to free
-    up the resource. Use the <xref linkend="mthReleaseItemIDList"/> method to free the item ID list when done with it.
-    <emphasis role="bold">Note</emphasis> that the <emphasis role="italic">releaseItemIDList</emphasis> does not need the COM
-    library to be initialized. Therefore there is no problem invoking <emphasis role="italic">releaseItemIDList</emphasis>
-    <emphasis role="italic">after</emphasis> the COM library has been released.
-  </para>
-  <para>
-    However, if the returned item ID list is set as the <xref linkend="atrRoot"/> attribute, there is no need to release that
-    itme ID list, the ooDialog framework will release it automatically.
-  </para>
-  <para>
-    The recommended usage pattern for the BrowseForFolder object is to instantiate the object, configure the dialog through
-    the object's attributes, and show the dialog using <emphasis role="italic">getItemIDList</emphasis>, or <xref
-    linkend="mthGetFolder"/>. In this way the COM library is <link linkend="varCOMLibrary">initialized</link> when the
-    object is instantiated and released during the return from <emphasis role="italic">getFolder</emphasis> or <emphasis
-    role="italic">getItemIDList</emphasis>.
-  </para>
-  <para>
-    The COM library is always released during the <emphasis role="italic">getItemIDList</emphasis> method, unless the
-    <emphasis role="italic">reuse</emphasis> argument is true. When <emphasis role="italic">reuse</emphasis> is true, the COM
-    library is not released and it becomes the programmer's responsibility to ensure the library is released properly
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    In this example the user is first asked to pick the top-level folder for all backups the application does. Then, the user
-    is asked to select the folder for the current backup. To allow the user to pick a virtual folder like the Documents
-    subfolder in Libraries, the application uses the <emphasis role="italic">getIDList</emphasis> method for the first
-    showing of the browse for folder dialog. The returned item ID list is then set as the root for the second showing of the
-    browse for folder dialog. This ensures that the user picks a subfolder of the first folder picked.
-  </para>
-  <para>
-    Some other things to note about the example. For the first showing of the <xref linkend="atrOptions"/> attribute is set
-    to the empty string and the root is set to CSIDL_DESKTOP. CSIDL_DESKTOP is the root of the entire shell namespace. This
-    combination allows the browsing of every folder in the shell. In the first invocation of <emphasis
-    role="italic">getItemIDList</emphasis>, note the use of the <emphasis role="italic">reuse</emphasis> arg. The prevents
-    the COM library from being released. Then in the last invocation of <emphasis role="italic">getFolder</emphasis>, the
-    <emphasis role="italic">reuse</emphasis> arg is not used, and the ooDialog framework takes care of releasing the COM
-    library. However, if the user cancels the first showing of the dialog, the application handles releasing COM before it
-    returns:
-<programlisting>
-<![CDATA[
-
-  title = 'Acme Widgets - A1 Accounting Program'
-  banner = 'The A1 Accounting Program needs to know the top-level' || -
-           ' folder for data backups'
-
-  bff = .BrowseForFolder~new
-  bff~dlgTitle = title
-  bff~banner = banner
-  bff~hint = 'Pick, or create, the folder for your backups.'
-  bff~options = '';
-  bff~root = 'CSIDL_DESKTOP'
-
-  idList = bff~getItemIDList(.true)
-  if idList == .nil then do
-    say 'The user canceled'
-    bff~releaseCOM
-    return .nil
-  end
-
-  say 'Top-level backup folder:' bff~getDisplayName(idList, 'NORMALDISPLAY')
-
-  newBanner = 'The A1 Accounting Program needs to know the subfolder' || -
-              ' for this backup.'
-  bff~root = idList
-  bff~options = bff~options 'RETURNFSANCESTORS RETURNONLYFSDIRS'
-  bff~banner = newBanner
-  bff~hint = 'Pick, or create, the folder for this backup.'
-  bff~startDir = .nil
-
-  folder = bff~getFolder
-
-  select
-    when folder == .nil then say 'The user picked a virtual folder'
-    when folder == '' then say 'The user canceled'
-    otherwise say 'The user picked:' folder
-  end
-  -- End select
-
-  return folder
-
-::requires 'ooDialog.cls'
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::getItemIDList() -->
-
-<section id="mthInitCOM" xreflabel="initCOM"><title>initCOM</title>
-<indexterm><primary>initCOM</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>initCOM</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--initCOM--------------------------------------><
-]]>
-</programlisting>
-
-<para>
-  Initializes the COM <link linkend="varCOMLibrary">library</link> on the current thread.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    There are no arguments for this method.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    Returns true when the COM library is initialized as a result of the <emphasis role="italic">initCom</emphasis>
-    invocation. Returns false if the library is not initialized as a result of the <emphasis role="italic">initCom</emphasis>
-    invocation.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    When the browse for folder dialog is first instantiated, the ooDialog framework initializes the COM library on the thread
-    that is executing. If that same object is used on another thread than the initial thread, the methods of the object may
-    fail unless the COM library is initialized on the other thread. The <emphasis role="italic">initCOM</emphasis> method is
-    provided to perform that initialization.
-  </para>
-  <para>
-    For each invocation of <emphasis role="italic">initCOM</emphasis> that returns true, a matching call to <xref
-    linkend="mthReleaseCOM"/> must be made on the same thread. Note that the <xref linkend="mthGetFolder"/> and <xref
-    linkend="mthGetItemIDList"/> methods release the COM library on the thread they are executing in when the <emphasis
-    role="italic">reuse</emphasis> arguemnt is false. Therefore, if <emphasis role="italic">initCOM</emphasis> is invoked on
-    thread xx, the matching release COM requirement can be fulfilled by invoking <emphasis role="italic">getFolder</emphasis>
-    with the <emphasis role="italic">reuse</emphasis> argument set to false.
-  </para>
-  <para>
-    If <emphasis role="italic">initCOM</emphasis> returns false, then there is no need to invoke <emphasis
-    role="italic">releaseCOM</emphasis>. Indeed, invoking <emphasis role="italic">releaseCOM</emphasis> will be a mistake as
-    this will cause the matching <emphasis role="italic">initCOM</emphasis> / <emphasis role="italic">releaseCOM</emphasis>
-    calls to become unbalanced. When <emphasis role="italic">initCom</emphasis> returns false, it can be for two reasons. If
-    the COM library has already been initialized on the current thread, false is returned and the
-    <computeroutput>.SystemErrorCode</computeroutput> is set to 1. There is also the possibility of a failure in initializing
-    the COM library. In this case, false is returned and the <computeroutput>.SystemErrorCode</computeroutput> is set to a
-    COM error code that describes the error.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Sets the <link linkend="dotSystemErrorCode">.SystemErrorCode</link> variable.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example shows a browse for folder object that is reused for the life-time of the dialog.  In the onBrowse() method,
-    if the method is not running on the same thread as the BrowseForFolder object was instantiated on, then COM is
-    initialized and released each time the object is used.  If it is the same thread, COM is not initialized and not
-    released.
-  </para>
-  <para>
-    Finally, during the leaving() method, if the method is running on the same thread as the browse for folder was
-    instantiated on, the item <link linkend="varItemIDList">ID</link> list and COM are released.
-  </para>
-  <para>
-    Note that this example does run correctly. But, if it were to turn out that the leaving() method was not running on the
-    same thread as the define() method had run on, then COM and the item ID list would not be released correctly. It was only
-    after some testing that it was determined that the program ran correctly:
-
-<programlisting>
-<![CDATA[
-
-::method defineDialog
-  expose bff pidl
-
-  ...
-
-  say 'defineDialog() thread ID' .DlgUtil~threadID
-  say
-  bff = .BrowseForFolder~new
-  bff~usePathForHint = .true
-  bff~hint = ''
-
-  pidl = .nil
-
-::method onBrowse unguarded
-  expose bff pidl
-
-  say 'onBrowse() thread:' .DlgUtil~threadID
-  say
-
-  newThread = (bff~initialThread == .DlgUtil~threadID)
-
-  if newThread then bff~initCOM
-
-  if pidl \== .nil then bff~releaseItemIDList(pidl)
-  if bff~owner \== .nil then bff~owner = self
-
-  pidl = bff~getItemIDList(.true)
-
-  if pidl \== .nil then say 'The user picked:' bff~getDisplayName(pidl)
-  else say 'The user canceled'
-  say
-
-  if newThread then bff~releaseCOM
-
-  return 0
-
-::method leaving unguarded
-  expose bff pidl
-
-  if bff~initialThread == .DlgUtil~threadID then do
-      say 'leaving() thread ID' .DlgUtil~threadID
-      if pidl \== .nil then bff~releaseItemIDList(pidl)
-      bff~releaseCOM
-  end
-
-/* Output from a typical session:
-
-defineDialog() thread ID 4032
-
-onBrowse() thread: 3320
-
-The user picked: C:\Rexx\ooRexx.3.0.0.release
-
-onBrowse() thread: 3320
-
-The user canceled
-
-onBrowse() thread: 3320
-
-The user picked: U:\PictureFiles
-
-leaving() thread ID 4032
-
-*/
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::initCOM() -->
-
-<section id="mthReleaseCOM" xreflabel="releaseCOM"><title>releaseCOM</title>
-<indexterm><primary>releaseCOM</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>releaseCOM</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--releaseCOM-----------------------------------><
-]]>
-</programlisting>
-
-<para>
-  Releases the COM <link linkend="varCOMLibrary">library</link> on the current thread.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    There are no arguments for this method.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    Returns true if the current thread is the same thread as this <computeroutput>BrowseForFolder</computeroutput> object was
-    instantiated on, otherwise false. A return of false does not indicate failure.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    As noted through out the <computeroutput>BrowseForFolder</computeroutput> documentation, the COM library must be
-    initialized and released for each thread the browse for folder object is used on. The ooDialog initializes the COM
-    library on the thread the object is first instantiated on and releases the COM library on the thread that the <xref
-    linkend="mthGetFolder"/> method, or the <xref linkend="mthGetItemIDList"/> is invoked on. If the same browse for folder
-    object is used on another thread than the thread it was instatiated on, the methods of the object may fail unless the COM
-    library is initialized on the other thread. The <xref linkend="mthInitCOM"/> method is provided to perform the
-    initialization, and the <emphasis role="italic">releaseCOM</emphasis> method is provided to release the COM library on
-    the other thread.
-  </para>
-  <para>
-    For each invocation of <emphasis role="italic">initCOM</emphasis> that returns true, a matching call to <emphasis
-    role="italic">releaseCOM</emphasis> must be made on the same thread. Note that the <xref linkend="mthGetFolder"/> and
-    <xref linkend="mthGetItemIDList"/> methods release the COM library on the thread they are executing in when the <emphasis
-    role="italic">reuse</emphasis> arguemnt is false. Therefore, if <emphasis role="italic">initCOM</emphasis> is invoked on
-    thread xx, the matching release COM requirement can be fulfilled by invoking <emphasis role="italic">getFolder</emphasis>
-    with the <emphasis role="italic">reuse</emphasis> argument set to false.
-  </para>
-  <para>
-    If <emphasis role="italic">initCOM</emphasis> returns false, then there is no need to invoke <emphasis
-    role="italic">releaseCOM</emphasis>. Indeed, invoking <emphasis role="italic">releaseCOM</emphasis> will be a mistake as
-    this will cause the matching <emphasis role="italic">initCOM</emphasis> / <emphasis role="italic">releaseCOM</emphasis>
-    calls to become unbalanced.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example shows a browse for folder object that is reused for the life-time of the dialog.  In the onBrowse() method,
-    if the method is not running on the same thread as the BrowseForFolder object was instantiated on, then COM is
-    initialized and released each time the object is used.  If it is the same thread, COM is not initialized and not
-    released.
-  </para>
-  <para>
-    Finally, during the leaving() method, if the method is running on the same thread as the browse for folder was
-    instantiated on, the item <link linkend="varItemIDList">ID</link> list and COM are released.
-  </para>
-  <para>
-    Note that this example does run correctly. But, if it were to turn out that the leaving() method was not running on the
-    same thread as the define() method had run on, then COM and the item ID list would not be released correctly. It was only
-    after some testing that it was determined that the program ran correctly:
-<programlisting>
-<![CDATA[
-
-::method defineDialog
-  expose bff pidl
-
-  ...
-
-  say 'defineDialog() thread ID' .DlgUtil~threadID
-  say
-  bff = .BrowseForFolder~new
-  bff~usePathForHint = .true
-  bff~hint = ''
-
-  pidl = .nil
-
-::method onBrowse unguarded
-  expose bff pidl
-
-  say 'onBrowse() thread:' .DlgUtil~threadID
-  say
-
-  newThread = (bff~initialThread == .DlgUtil~threadID)
-
-  if newThread then bff~initCOM
-
-  if pidl \== .nil then bff~releaseItemIDList(pidl)
-  if bff~owner \== .nil then bff~owner = self
-
-  pidl = bff~getItemIDList(.true)
-
-  if pidl \== .nil then say 'The user picked:' bff~getDisplayName(pidl)
-  else say 'The user canceled'
-  say
-
-  if newThread then bff~releaseCOM
-
-  return 0
-
-::method leaving unguarded
-  expose bff pidl
-
-  if bff~initialThread == .DlgUtil~threadID then do
-      say 'leaving() thread ID' .DlgUtil~threadID
-      if pidl \== .nil then bff~releaseItemIDList(pidl)
-      bff~releaseCOM
-  end
-
-/* Output from a typical session:
-
-defineDialog() thread ID 4032
-
-onBrowse() thread: 3320
-
-The user picked: C:\Rexx\ooRexx.3.0.0.release
-
-onBrowse() thread: 3320
-
-The user canceled
-
-onBrowse() thread: 3320
-
-The user picked: U:\PictureFiles
-
-leaving() thread ID 4032
-
-*/
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::releaseCOM() -->
-
-<section id="mthReleaseItemIDList" xreflabel="releaseItemIDList"><title>releaseItemIDList</title>
-<indexterm><primary>releaseItemIDList</primary></indexterm>
-<indexterm><primary>BrowseForFolder class</primary><secondary>releaseItemIDList</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--releaseItemIDList(--itemIDList--)------------><
-]]>
-</programlisting>
-
-<para>
-  Releases the system resources used by an item <link linkend="varItemIDList">ID</link> list.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The single argument is;
-  </para>
-  <variablelist>
-    <varlistentry><term>itemIDList [required]</term>
-    <listitem>
-    <para>
-      The item ID list to be released.
-    </para>
-    </listitem></varlistentry>
-  </variablelist>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    Returns 0, always.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    An item ID list is similar to a <link linkend="defHandle">handle</link> to other system resources, like a <link
-    linkend="mthCreateFontEx">font</link> or a <link linkend="mthGetDC">device context</link>, and must be released to free
-    up the resource. Each item ID list returned from the <xref linkend="mthGetItemIDList"/> method should be released when
-    the application is finished using it, unless the item ID list is assigned to the <xref linkend="atrRoot"/> attribute.
-    <emphasis role="bold">Note</emphasis> that the <emphasis role="italic">releaseItemIDList</emphasis> does not need the COM
-    library to be initialized. Therefore there is no problem invoking <emphasis role="italic">releaseItemIDList</emphasis>
-    <emphasis role="italic">after</emphasis> the COM library has been released.
-  </para>
-  <para>
-    The one caveat to the rule that every item ID list must be released is, if the returned item ID list is set as the
-    <emphasis role="italic">root</emphasis> attribute, there is no need to release that itme ID list, the ooDialog framework
-    will release it automatically.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect usage is detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example configures a browse for folder dialog to allow browsing the entire shell namespace. It then runs in a loop
-    allowing the user to pick a folder and see what the folder's display name is. Note that every returned item ID list is
-    released. Also note that the <xref linkend="mthGetItemIDList"/> method uses true for the <emphasis
-    role="italic">reuse</emphasis> argument. This tells the ooDialog framework to not release COM during the invocation of
-    the <emphasis role="italic">getItemIDList</emphasis> method. Because of this the example uses <xref
-    linkend="mthReleaseCOM"/> to properly release the COM library when the example ends:
-
-<programlisting>
-<![CDATA[
-
-  bff = .BrowseForFolder~new
-  bff~options = '';
-  bff~root = 'CSIDL_DESKTOP'
-
-  msgQuestion = .endOfLine~copies(2) || "Do you want to continue browsing?"
-  title = 'Browsing All Shell Folders'
-
-  yes = .PlainBaseDialog~IDYES
-  keepGoing = yes
-  do while keepGoing == yes
-      idList = bff~getItemIDList(.true)
-
-      if idList == .nil then do
-          nop
-      end
-      else do
-          msg = 'You picked the "'                          || -
-                bff~getDisplayName(idList, 'NORMALDISPLAY') || -
-                '" folder' || msgQuestion
-
-          keepGoing = MessageDialog(msg, , title, 'YESNO', 'QUESTION')
-
-          bff~releaseItemIDList(idList)
-      end
-  end
-
-  bff~releaseCom
-
-  return 0
-
-  ::requires 'ooDialog.cls'
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End BrowseForFolder::releaseItemIDList() -->
-
-</section> <!-- End BrowseForFolder Class -->
 
 
 <section id="clsCheckList" xreflabel="CheckList"><title>CheckList Class</title>
@@ -4916,177 +2577,6 @@
 </section> <!-- End Interruptible Class -->
 
 </section> <!-- End Progress Dialog section -->
-
-
-<section id="clsSimpleFolderBrowse" xreflabel="SimpleFolderBrowse"><title>SimpleFolderBrowse Class</title>
-<indexterm><primary>SimpleFolderBrowse class</primary></indexterm>
-<para>
-  The SimpleFolderBrowse object displays the Windows common Browse For Folder dialog and returns the user's selection. It is
-  a simplified version of the <xref linkend="clsBrowseForFolder"/> dialog that is designed to be easy to use, and does not
-  have as many configuration options as the <computeroutput>BrowseForFolder</computeroutput> object does.
-</para>
-<para>
-  The Windows common Browse For Folder dialog allows the user to select a folder from a tree-like display of the computer's
-  file system. The Browse For Folder dialog is specifically for opening or choosing folders.
-</para>
-
-<section id="sctMethodsSimpleFolderBrowse"><title>Method Table</title>
-<para>
-  The following table lists the class and instance methods of the <computeroutput>SimpleFolderBrowse</computeroutput> class.
-  This simple to use dialog only has a single class method:
-
-<table id="tblMethodsSimpleFolderBrowse" frame="all"> <title>SimpleFolderBrowse Class Method Reference</title>
-<tgroup cols="2">
-<colspec colwidth="1*" />
-<colspec colwidth="3*" />
-<thead>
-<row>
-<entry>Method</entry>
-<entry>Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="center"><emphasis role="bold">Class Methods</emphasis></entry>
-<entry align="center"><emphasis role="bold">Class Methods</emphasis></entry>
-</row>
-<row>
-<entry><xref linkend="mthGetFolderClsSimpleFolderBrowse"/></entry>
-<entry>Pops up the Browse For Folder Windows dialog and returns the user's selection.</entry>
-</row>
-</tbody></tgroup>
-</table>
-</para>
-</section>
-
-<section id="mthGetFolderClsSimpleFolderBrowse" xreflabel="getFolder"><title>getFolder (Class Method)</title>
-<indexterm><primary>getFoder</primary><secondary>SimpleFolderBrowse class</secondary></indexterm>
-<indexterm><primary>SimpleFolderBrowse class</primary><secondary>getFolder</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--getFolder(--+---------+-------+-+------ +-+---------+-+--------+-+---------+--)--><
-                +--capt-+ +-,-bnr-+ +-,-hnt-+ +-,-start-+ +-,-root-+ +-,-owner-+
-]]>
-</programlisting>
-
-<para>
-  Instantiates the Rexx SimpleBrowseFolder object, pops up the Windows Browse For Folder dialog, and returns the user's
-  selection in one step.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The arguments are:
-  </para>
-  <variablelist>
-    <varlistentry><term>capt [optional]</term>
-    <listitem>
-    <para>
-      Specifies a caption, or title, for the dialog. The Windows default title is <emphasis role="italic">Browse For
-      Folder</emphasis>.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>bnr [optional]</term>
-    <listitem>
-    <para>
-      Specifies text to use for what Windows calls the <emphasis role="italic">banner</emphasis> for the dialog.  This string
-      is displayed above the tree view control in the dialog box. The string can be used to specify instructions to the user.
-      By default nothing is displayed for the banner and the area above the tree view is blank.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>hnt [optional]</term>
-    <listitem>
-    <para>
-      Specifies text to use for a <emphasis role="italic">hint</emphasis> in the dialog. The hint is displayed below the
-      bottom of the tree view control and above the bottom row of buttons of the dialog. By default there is no hint, and
-      the area where the hint would go is removed from the dialog. That is, the bottom row of buttons is placed directly
-      below the tree view.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>start [optional]</term>
-    <listitem>
-    <para>
-      Specifies an initial selected folder for the dialog. By default, the dialog opens with the top-most item in the tree
-      view selected. If a start folder is specified, the folder is selected and, if needed, the tree view items are expanded
-      and the tree view is scrolled so that the starting folder is visible in the tree view.
-    </para>
-    <para>
-      Testing indicates that the folder specified must be a fully qualified path name of an existing directory. If not, the
-      operating system seems to just ignore it.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>root [optional]</term>
-    <listitem>
-    <para>
-      Specifies the root for the tree view in the dialog. The root is the location of the root folder from which the user
-      starts browsing. Only the specified folder and any subfolders that are beneath it in the namespace hierarchy
-      will appear in the dialog box. The user can not browse above the root folder. If this argument is omitted, the
-      operating system uses the namespace root (the desktop folder.)
-    </para>
-    <para>
-      Specify either a fully qualified file system path name, or use one of the <xref linkend="sctSpecialFolderNames"/>.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>owner [optional]</term>
-    <listitem>
-    <para>
-      The Rexx dialog object that is to be the owner window of the browse for folder dialog. The owner dialog is disabled
-      until the browse for folder dialog is closed by the user.
-    </para>
-    </listitem></varlistentry>
-  </variablelist>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    If the user cancels the dialog, the empty string is returned, otherwise the fully qualified path to the folder the user
-    picked is returned. However it is possible to set up the dialog in a way such that the user can pick a virtual folder.
-    Virtual folders do not have a file system path. The <computeroutput>.nil</computeroutput> object is returned if a virtual
-    folder is picked.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    The <computeroutput>SimpleFolderBrowse</computeroutput> dialog is intended to be simple to use and is restricted to file
-    system paths. The Windows Browse For Folders dialog has more capabilities than can be accessed through the
-    <computeroutput>SimpleFolderBrowse</computeroutput> class, but the capabilities are less likely to be useful in most
-    ooRexx programs. The <xref linkend="clsBrowseForFolder"/> class allows access to all features of the Windows Browse For
-    Folders dialog, but it is correspondingly more complex to use.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect arguments are detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example puts up the Browse For Folder dialog and gets the user's selection:
-<programlisting>
-<![CDATA[
-
-  folder = .SimpleFolderBrowse~getFolder
-
-  select
-      when folder == .nil then text = 'The user picked a virtual folder'
-      when folder == '' then text = 'The user canceled'
-      otherwise text = 'The user picked:' folder
-  end
-  -- End select
-
-  say text
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End SimpleFolderBrowse::new() -->
-
-</section> <!-- End SimpleFolderBrowse Class -->
 
 
 <section id="clsSingleSelection" xreflabel="SingleSelection"><title>SingleSelection Class</title>
@@ -6547,134 +4037,6 @@
 </para>
 </section>
 
-<section id="rtnSimpleFolderBrowse" xreflabel="SimpleFolderBrowse"><title>SimpleFolderBrowse</title>
-<indexterm><primary>SimpleFolderBrowse</primary></indexterm>
-<indexterm><primary>public routines</primary><secondary>SimpleFolderBrowse</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>-SimpleFolderBrowse(-+-------+-+-------+-+-------+-+--------+-+------+-+--------+-)-><
-                       +--capt-+ +-,-bnr-+ +-,-hnt-+ +-,-strt-+ +-,-rt-+ +-,-ownr-+
-]]>
-</programlisting>
-
-<para>
-  Brings up the Windows <emphasis role="italic">Browse For Folder</emphasis> dialog, allowing the user to select a folder in
-  the file system.
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The arguments are:
-  </para>
-  <variablelist>
-    <varlistentry><term>capt [optional]</term>
-    <listitem>
-    <para>
-      Specifies a caption, or title, for the dialog. The Windows default title is <emphasis role="italic">Browse For
-      Folder</emphasis>.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>bnr [optional]</term>
-    <listitem>
-    <para>
-      Specifies text to use for what Windows calls the <emphasis role="italic">banner</emphasis> for the dialog.  This string
-      is displayed above the tree view control in the dialog box. The string can be used to specify instructions to the user.
-      By default nothing is displayed for the banner and the area above the tree view is blank.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>hnt [optional]</term>
-    <listitem>
-    <para>
-      Specifies text to use for a <emphasis role="italic">hint</emphasis> in the dialog. The hint is displayed below the
-      bottom of the tree view control, and above the bottom row of buttons of the dialog. By default there is no hint, and
-      the area where the hint would go is removed from the dialog. That is, the bottom row of buttons is placed directly
-      below the tree view.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>strt [optional]</term>
-    <listitem>
-    <para>
-      Specifies an initial selected folder for the dialog. By default, the dialog opens with the top-most item in the tree
-      view selected. If a start folder is specified, the folder is selected and, if needed, the tree view items are expanded
-      and the tree view is scrolled so that the starting folder is visible in the tree view.
-    </para>
-    <para>
-      Testing indicates that the folder specified must be a fully qualified path name of an existing directory. If not, the
-      operating system seems to just ignore it.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>rt [optional]</term>
-    <listitem>
-    <para>
-      Specifies the root for the tree view in the dialog. The root is the location of the root folder from which the user
-      starts browsing. Only the specified folder and any subfolders that are beneath it in the namespace hierarchy
-      will appear in the dialog box. The user can not browse above the root folder. If this argument is omitted, the
-      operating system uses the namespace root (the desktop folder.)
-    </para>
-    <para>
-      Specify either a fully qualified file system path name, or use one of the <xref linkend="sctSpecialFolderNames"/>.
-    </para>
-    </listitem></varlistentry>
-    <varlistentry><term>ownr [optional]</term>
-    <listitem>
-    <para>
-      The Rexx dialog object that is to be the owner window of the browse for folder dialog. The owner dialog is disabled
-      until the browse for folder dialog is closed by the user.
-    </para>
-    </listitem></varlistentry>
-  </variablelist>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    If the user cancels the dialog, the empty string is returned, otherwise the fully qualified path to the folder the user
-    picked is returned. However it is possible to set up the dialog in a way such that the user can pick a virtual folder.
-    Virtual folders do not have a file system path. The <computeroutput>.nil</computeroutput> object is returned if a virtual
-    folder is picked.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    The <emphasis role="italic">SimpleFolderBrowse</emphasis> routine is just a shortcut to using the <xref
-    linkend="clsSimpleFolderBrowse"/> class. It is intended to be simple to use and is restricted to file system paths. The
-    Windows Browse For Folders dialog has more capabilities than can be accessed through this routine, but the capabilities
-    are less likely to be useful in most ooRexx programs. The <xref linkend="clsBrowseForFolder"/> class allows access to all
-    features of the Windows Browse For Folders dialog, but it is correspondingly more complex to use.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Raises syntax errors when incorrect arguments are detected.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example puts up the Browse For Folder dialog and gets the user's selection:
-<programlisting>
-<![CDATA[
-
-  folder = SimpleFolderBrowse()
-
-  select
-      when folder == .nil then text = 'The user picked a virtual folder'
-      when folder == '' then text = 'The user canceled'
-      otherwise text = 'The user picked:' folder
-  end
-  -- End select
-
-  say text
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
-</section>  <!-- End SimpleFolderBrowse() -->
-
-
 <section id="rtnSingleSelection" xreflabel="SingleSelection"><title>SingleSelection Routine</title>
 <indexterm><primary>SingleSelection</primary><secondary>function</secondary></indexterm>
 <indexterm><primary>public routines</primary><secondary>SingleSelection</secondary></indexterm>