home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l406 / 1.ddi / PROREADM.TXT < prev    next >
Encoding:
Text File  |  1992-10-21  |  31.1 KB  |  766 lines

  1.                  README.TXT
  2.  
  3.    Release Notes for Microsoft (R) Visual Basic (TM) Professional Edition
  4.  
  5.                 Version 2.00
  6.  
  7.           (C) Copyright Microsoft Corporation, 1992
  8.  
  9. This document contains release notes for Microsoft Visual Basic for Windows
  10. Professional Edition version 2.0. Information in this document is more
  11. current than that in the manuals or online Help.
  12.  
  13.      ********************************************************************
  14.      Read Part 1 - Software Installation Information - before installing.
  15.      ********************************************************************
  16.  
  17. ========
  18. Contents
  19. ========
  20.  
  21. Part    Description
  22. ----    -----------
  23.  1      Software Installation Information
  24.  
  25.  2      Notes and Tips
  26.  
  27.  3      Notes for Microsoft Visual Basic "Language Reference"
  28.  
  29.  4      Notes for Microsoft Visual Basic "Programmer's Guide"
  30.  
  31.  5      Updated Information
  32.  
  33.  6      Custom Controls
  34.  
  35.  7      Help Compiler
  36.  
  37.  8      ODBC Information
  38.  
  39.  
  40. Part 1: Software Installation Information
  41. =========================================
  42.  
  43. Before installing Visual Basic 2.0 Professional Edition, you should make
  44. backup copies of all the distribution disks.  Do not write-protect the
  45. distribution disks you use to install Visual Basic.  If you do, Visual
  46. Basic cannot be successfully installed.
  47.  
  48. SETUP.EXE is a Windows application; that is, it is run from Windows rather
  49. than from the MS-DOS prompt.  SETUP.EXE will only run in Windows Standard or
  50. Enhanced mode.  It will not run in Real mode.  You can determine how Windows
  51. is configured on your computer by choosing About from the Help menu in the
  52. Program Manager.
  53.  
  54. To install Visual Basic 2.0 Professional, use Program Manager or File
  55. Manager to start SETUP.EXE as you would any other Windows-based
  56. application.  For example, if you are installing from drive A:
  57.  
  58.     - From the Program Manager File menu, choose Run.
  59.  
  60.     - In the Run dialog box, type A:SETUP and choose OK.
  61.  
  62.     Or
  63.  
  64.     - From the File Manager, double-click on the SETUP.EXE file icon
  65.       on drive A.
  66.  
  67. Most of the files on these disks are compressed and must be expanded before
  68. they can be used.  For Visual Basic to work properly, you must install the
  69. files using SETUP.EXE.  You cannot simply copy the files to your hard disk.
  70.  
  71. If you want to install Visual Basic 2.0 Professional Edition in a directory
  72. other than where you've installed Visual Basic 1.0, you should specify this
  73. on the Installation Location screen.  If you install Visual Basic 2.0
  74. Professional Edition in the same directory as Visual Basic 1.0, most of the
  75. program, sample, icon, and tutorial files will be updated.
  76.  
  77. During setup, Visual Basic installs the custom controls GRID.VBX and
  78. OLECLIEN.VBX into your Windows system directory.  If you have custom
  79. controls with the same name as the custom controls included with Visual
  80. Basic 2.0, and these controls are not the same GRID.VBX and OLECLIEN.VBX as
  81. were distributed with the Microsoft Professional Toolkit for Visual Basic
  82. 1.0, then Visual Basic installs GRID.VBX and OLECLIEN.VBX in your Visual
  83. Basic directory.
  84.  
  85. The WINHELP.EXE and COMMDLG.DLL files included with Visual Basic 2.0 are
  86. the latest English versions of these files.  They will upgrade an older
  87. version, regardless of the language (e.g., French and German) of the older
  88. version.
  89.  
  90. IMPORTANT INFORMATION ABOUT ODBC INSTALLATION
  91. ---------------------------------------------
  92. After installing Visual Basic Professional, in order to install ODBC
  93. functionality you must run the setup ODBC program from the end of the
  94. Visual Basic Professional setup, or from the ODBC setup icon, or from
  95. setup in the \VB\ODBC subdirectory. Follow the instructions from the setup
  96. program and refer to the ODBC setup documentation in your documentation
  97. set.  ODBC Setup is a Windows program and should be run from within
  98. Windows.
  99.  
  100.  
  101. Part 2 : Notes and Tips
  102. =======================
  103.  
  104. Using Command-Line Options
  105. --------------------------
  106. Visual Basic can be started using command line options.  The syntax is:
  107.  
  108. VB [[/R[UN] filename] [/C[MD] commandline]]|[/M[AKE] projname[.mak] [exename]]
  109.  
  110. Option     Explanation
  111. ---------------------------------------------------------------------
  112. /RUN       Runs the application specified by filename.
  113.  
  114. /CMD       Allows you to input a command-line argument that you can later
  115.        use via the Command function. See online Help for more
  116.        information.
  117.  
  118. /MAK       Loads the project named in projname and executes the Make .EXE
  119.        command from the File menu to create an executable file
  120.        whose name is provided as exename. See the "Microsoft Visual
  121.        Basic "Programmer's Guide" for more information.
  122.  
  123. The filename parameter to the /RUN option must have a .MAK extension if it
  124. is to be treated as a project file.  Any file with a different extension
  125. will be loaded as either a form or module into a new project.
  126.  
  127. Copying Icons to the Clipboard
  128. ------------------------------
  129. To copy an icon (.ICO file) from a picture box to the Clipboard, you must
  130. set its AutoRedraw property to True, and copy its Image property to the
  131. Clipboard by specifying the CF_BITMAP format in the SetData method.
  132.  
  133. Limit on Size of MultiLine Text Boxes
  134. -------------------------------------
  135. The Text property of text box with MultiLine = True is limited to
  136. approximately 30K of text, while the limit is 32K if MultiLine = False.
  137.  
  138. Setting the Visible Property of Modal Forms to False
  139. ----------------------------------------------------
  140. If you set the Visible property of a modal form to False, the form becomes
  141. a modeless form. If you need to return a form to a modal state after hiding
  142. it, use formid.Show 1 instead of formid.Visible = True.
  143.  
  144. Shortcut Keys Interrupting the "Learning Microsoft Visual Basic" Lessons
  145. ------------------------------------------------------------------------
  146. "Learning Microsoft Visual Basic" uses shortcut keys for accessing property
  147. settings in the Properties window. These keys may conflict with Shortcut
  148. keys you have set for making another Windows application active (set in the
  149. Program Manager Item Properties dialog.)  Specifically, Ctrl+Shift+H, W, L,
  150. T, N, C, and V are used by Learning Visual Basic. If you have these key
  151. combinations as Shortcut keys for other Windows-based applications, you may
  152. accidentally activate these applications while running "Learning Visual
  153. Basic" is running.
  154.  
  155. Limit on Number of Objects per Application
  156. ------------------------------------------
  157. There is a limit of 512 distinct objects in an application. Visual Basic
  158. uses 80 of these for global objects, data types, and standard controls.
  159. Thus, your application can have up to 432 form types or control classes.
  160. Each custom control class and form type that you create for your
  161. application is included in this limit. Each form uses one object and each
  162. custom control uses two.  Note that custom controls may have multiple control
  163. classes in one .VBX file.  This corrects the documentation in Appendix D,
  164. "Specifications and Limitations" in the "Programmers Guide."
  165.  
  166. Creating Toolbars or Status Bars with Borders on Top or Bottom
  167. --------------------------------------------------------------
  168. Setting BorderStyle to 1 - Fixed Single creates a border on all four sides
  169. of an aligned picture box. If you want to create a toolbar or status bar
  170. with borders on only the top or bottom, set BorderStyle to 0 - None. Then,
  171. write code in the Picture_Resize event to create a line each time a
  172. form is shown or resized.  Either place a line control in the picture box
  173. and reset the X1, X2, Y1, and Y2 properties, or include the Line statement.
  174. For example:
  175.  
  176. Picture1.Line (0, Picture1.Height) - (Picture1.Width, Picture1.Height)
  177.  
  178. OLE Client Custom Control Error Messages
  179. -----------------------------------------
  180. The following error messages correct and add to those contained in the
  181. "Language Reference."
  182.  
  183. 31005           Object closed
  184. 31006           Can't close
  185. 31007           Can't paste
  186. 31008           Invalid property value
  187. 31009           Object not empty
  188. 31010           Property is read-only
  189. 31011           Type of object cannot be created
  190. 31012           No object name
  191. 31013           No document
  192. 31014           This action is reserved for future use
  193. 31015           Cannot execute object
  194. 31016           Server class was not specified before the registration
  195.         database was accessed
  196. 31017           Invalid format on set data or set data text
  197. 31018           Server Class is not set
  198. 31019           Source document is not set
  199. 31020           Source item is not set
  200.  
  201. Closing Help Files
  202. ------------------
  203. The code to close a Visual Basic application's Help file when the
  204. application concludes is as follows:
  205.  
  206. Declare Function WinHelp Lib "user.exe" (ByVal hWnd As Integer, ByVal
  207. helpfilename$, ByVal hCommand As Integer, ByVal ddata As Long) As Integer
  208.  
  209. Sub Form_Unload (Cancel As Integer)
  210.     Const HELP_QUIT = 2
  211.     ErrCode% = WinHelp(Form1.hWnd, app.HelpFile, HELP_QUIT, 0)
  212. End Sub
  213.  
  214. Creating Single-Column or Single-Row Grids
  215. ------------------------------------------
  216. To create a single-column or single-row grid where the column or row is not
  217. fixed, you must set the appropriate Col and FixedCol properties at run time.
  218.  
  219. Naming Conflicts
  220. ----------------
  221. Do not name any control "Line" or "Timer" as you will be unable to
  222. access its properties. The prohibited names conflict with the names of the
  223. Line method and Timer function respectively.
  224.  
  225. Picture formats accepted by DDE client Picture controls
  226. --------------------------------------------------------
  227. In Windows version 3.1 and above, picture controls acting as
  228. clients in a DDE conversation will accept CF_METAFILE,
  229. CF_BITMAP, and CF_DIB format graphics. In Windows version 3.0,
  230. DDE client Picture controls will accept only CF_BITMAP and
  231. CF_DIB format graphics.
  232.  
  233. Implicit Methods for Custom Controls
  234. ------------------------------------
  235. There are methods that apply to controls and forms which are not exposed
  236. via the VBM_METHOD interface. Custom controls have no way of altering,
  237. supplementing, or removing these methods when invoked on instances of the
  238. custom control. Examples of these methods are PrintForm, Refresh,
  239. LinkPoke, LinkRequest, LinkExecute, and SetFocus. The LinkPoke, LinkRequest,
  240. and LinkExecute methods apply only to controls with standard DDE
  241. properties; SetFocus applies only to controls with MODEL_fFocusOk.
  242.  
  243. Specifying the Size Property of a Field Object
  244. ----------------------------------------------
  245. When specifying the Size property of a field object that you are creating,
  246. you should use the length of the corresponding Visual Basic data type.
  247. Visual Basic only allows you to create fields using the sizes of the Visual
  248. Basic data types.  For instance, if you are creating a Currency field, you
  249. should create a field of eight bytes.  If you are copying one field to
  250. another, use the setting of the Type property of the source field to
  251. determine the type, and hence the size, of the destination field.
  252.  
  253.  
  254. Part 3 : Notes for Microsoft Visual Basic "Language Reference"
  255. ==============================================================
  256.  
  257. Page    Section\Note
  258. --------------------
  259. 82      DateValue Function
  260.  
  261.     Change the last sentence in the second paragraph of the Remarks
  262.     section as follows:
  263.  
  264.     "For example, in addition to recognizing 12/30/1991 and 12/30/91,
  265.     DateValue recognizes December 30, 1991 and Dec 30, 1991.
  266.  
  267. 320     Print Method
  268.  
  269.     In the description of expressionlist at the top of the page, the
  270.     term "text expression" should read "string expression".
  271.  
  272. 386     Shell Function
  273.  
  274.     Change the second sentence in the description of commandstring as
  275.     follows:
  276.  
  277.     "If the program name in commandstring does not include .BAT, .COM,
  278.     .EXE, or .PIF extension, .EXE is assumed."
  279.  
  280. 489     Not Operator
  281.  
  282.     See online Help for more current information.
  283.  
  284. None    Me Keyword
  285.  
  286.     The Me keyword is not documented in the "Language Reference." See
  287.     online Help for complete information.
  288.  
  289.  
  290. Part 4: Notes for Microsoft Visual Basic "Programmer's Guide"
  291. =============================================================
  292.  
  293. Page    Section\Note
  294. ----    ------------
  295.   4     Visual Basic Documentation
  296.  
  297.     In the second bullet list item, replace "eight" with "seven".
  298.  
  299.   6     Using Online Documentation
  300.  
  301.     In the second sentence, replace "eight" with "seven".
  302.  
  303.   8     Figure 1.2 The Contents Screen
  304.  
  305.     This illustration does not depict the actual Contents screen.
  306.  
  307.  15     Starting Visual Basic
  308.  
  309.     In the second table item, under "Menu equivalent," change to read,
  310.     "Start command on the Run menu".
  311.  
  312.  19     Setting Properties
  313.  
  314.     In the second paragraph of step 3, change "Clicking the DOWN ARROW
  315.     key at the right ..." to "Clicking the down arrow at the right ..."
  316.  
  317.  23     Simple Animation
  318.  
  319.     In the Setting column of the table, change "(White)" to "(Black)".
  320.  
  321.     In the paragraph following the table, change "... and the BackColor
  322.     property to 0 (Black)" to "... and the BackColor property to
  323.     black"
  324.  
  325. 201     Identifying the Current Mode
  326.  
  327.     In the paragraph at the bottom of the page, the phrase after the
  328.     semicolon should read, "the unavailable buttons appear dimmed on
  329.     the toolbar."
  330.  
  331. 210     Using the Calls Dialog
  332.  
  333.     Remove the ")" from the end of step 1.
  334.  
  335. 216     Editing or Deleting a Watch Expression
  336.  
  337.     In the numbered list at the top of the page, remove the "(s)" from
  338.     the word "expression" in the second step.
  339.  
  340. 220     Assigning Values to Variables and Properties
  341.  
  342.     In the paragraph following the three lines of example statements,
  343.     change to read, "The first statement alters a property of the
  344.     currently active form, the second alters a property of the VScroll1
  345.     control, and the third assigns a value to a variable."
  346.  
  347. 227     How to Handle Errors
  348.  
  349.     The list of steps is incorrectly numbered.  The paragraph now
  350.     numbered 2 should not be numbered.  Remove the number 2 from that
  351.     paragraph.  Then replace the 3 in the following paragraph with 2 and
  352.     replace 4 in the last paragraph with 3.
  353.  
  354. 229     Exiting an Error-Handling Routine
  355.  
  356.     In the table that describes ways to exit an error-handling
  357.     routine, make the following changes:
  358.  
  359.     Replace the Resume entry with:
  360.  
  361.     Resume (0)    Program execution resumes with the statement that
  362.               caused the error or the most recently executed call
  363.               out of the procedure containing the error-handling
  364.               routine.
  365.  
  366.     Change the Resume Next entry by removing the period at the end of
  367.     the sentence and adding "or with the statement immediately
  368.     following the most recently executed call out of the procedure
  369.     containing the error-handling routine."
  370.  
  371.     Change the Resume line by removing the period at the end of the
  372.     sentence and adding, "that must be in the same procedure as the
  373.     error handler."
  374.  
  375. 234     Change the note at the bottom of the page as follows:
  376.  
  377.     Remove everything after the first sentence.  Add the following:
  378.  
  379.     If a Resume statement is executed, control returns to the most
  380.     recently executed call out of the procedure containing the
  381.     error handler.  If a Resume Next statement is executed, control
  382.     returns to whatever statement in the procedure containing the
  383.     error-handling routine immediately follows the most recently
  384.     executed call out of that procedure.  For example, in the Calls
  385.     list shown in Figure 10.3, if procedure A has an enabled error
  386.     handler and Procedure B and C don't, an error occurring in
  387.     Procedure C will be handled by Procedure A's error handler.  If
  388.     that error handler uses a Resume statement, upon exit, the program
  389.     continues with a call to Procedure B.  However, if Procedure A's
  390.     error handler uses a Resume Next statement, upon exit, the program
  391.     will continue with whatever statement in Procedure A follows the
  392.     call to Procedure B.  In neither case does the error handler return
  393.     directly to either the procedure or the statement where the error
  394.     originally occurred.
  395.  
  396. 420     The Directory List Box
  397.  
  398.     In the code at the bottom of the page, change the first line as
  399.     follows:
  400.  
  401.     GoHigher = 0     ' Initialize for currently expanded directory.
  402.     
  403. 421     The File List Box
  404.  
  405.     Change the first paragraph as follows:
  406.  
  407.     "The file list box displays files contained in the directory
  408.     specified by the Path property at run time.  You can display all
  409.     the files in the current directory on the current drive using the
  410.     following statement:"
  411.  
  412.     The paragraph that begins, "If you set the System property..."
  413.     may be misleading. The following additional information is provided
  414.     to clarify meaning.
  415.  
  416.     The default value for the System and Hidden properties is False.
  417.     The default value for the Normal, Archive, and ReadOnly properties
  418.     is True.
  419.  
  420.     When Normal = True, any file that does not have the System or
  421.     Hidden attribute is displayed.  When Normal = False, you can still
  422.     display files with ReadOnly and/or Archive attributes by setting
  423.     the appropriate attribute to True (i.e., ReadOnly = True,
  424.     Archive = True).
  425.     
  426.     When System = True, any file with the System attribute is displayed
  427.     unless it also has the Hidden attribute.
  428.  
  429.     When Hidden = True, any file with the Hidden attribute is displayed
  430.     unless it also has the System attribute.
  431.  
  432.     To display any file that has both Hidden and System among its
  433.     attributes, both Hidden and System must be True.  However, files
  434.     having either Hidden or System attributes will be displayed as well.
  435.  
  436. 424     Writing Code for the WinSeek Application
  437.  
  438.     In the second paragraph, change the first sentence as follows:
  439.  
  440.     "The WinSeek application resolves this ambiguity by determining if
  441.     the path of the dirList box is different from the currently
  442.     highlighted directory."
  443.  
  444. 425     The cmdSearch_Click Procedure
  445.  
  446.     In the sample code shown, change the If statement as follows:
  447.  
  448.     If dirList.Path <> dirList.List (dirList.ListIndex) Then
  449.  
  450. 482     Change the last sentence in the paragraph at the top of the page
  451.     as follows:
  452.  
  453.     "When the user activates the object (the graph), the server
  454.     application (MS Graph) is invoked by the client application (Visual
  455.     Basic), and the object's data is opened for editing."
  456.  
  457.  
  458. Part 5: Updated Information
  459. ===========================
  460.  
  461. Online Resource Information
  462. ---------------------------
  463. The WIN30API.TXT and WIN31EXT.TXT files are ASCII text files containing the
  464. functions and constants in the Microsoft Windows 3.0 and 3.1 API, declared
  465. in the format used by Microsoft Visual Basic.
  466.  
  467. They include: 
  468. - External procedure declarations for all the Microsoft Windows API
  469.   functions that can be called from Visual Basic.
  470.  
  471. - Global constant declarations for all the constants used by the Microsoft
  472.   Windows API.
  473.  
  474. - Type declarations for the user-defined types (structures) used by the
  475.   Microsoft Windows API.
  476.  
  477. WIN30API.TXT is too large for the Notepad editor supplied with Microsoft
  478. Windows, but it can be loaded by Microsoft Word.  To use WIN30API.TXT, load
  479. it into an editor (such as Microsoft Word) that can handle large files.
  480. Copy the declarations you want and paste them into any module in your
  481. Visual Basic application.
  482.  
  483. The file WIN31API.HLP contains the WIN30API.TXT and WIN31EXT.TXT file
  484. declarations in help file format.  Use this file to easily cut and paste
  485. declarations into your Visual Basic 2.0 programs.
  486.  
  487. NOTE: Some of the Windows API declarations are very long.  Some editors
  488.       will wrap these onto a second line, and will copy them as multiple
  489.       lines rather than as a single line.  Declarations in Visual Basic
  490.       cannot span lines, so if you paste these as multiple lines Visual
  491.       Basic reports an error.  If this happens, you can either adjust the
  492.       margins in the editor before copying, or remove the line break after
  493.       pasting.
  494.  
  495. You can place the declarations that you copy from the WIN31API.HLP file in
  496. the Declarations section of any form or module. You can also place the
  497. constant declarations anywhere in any form or module if you remove the
  498. Global keyword.
  499.  
  500. Once you have pasted the declaration for a Windows API routine (as well as
  501. any associated constant and type declarations) into your application, you
  502. can call that routine as you would call any Visual Basic procedure.
  503.  
  504. WARNING: Visual Basic cannot verify the data you pass to Microsoft Windows
  505. API routines. Calling a Microsoft Windows API routine with an invalid
  506. argument can result in unpredictable behavior - your application, Visual
  507. Basic, or Windows could crash or hang.  When experimenting with Windows API
  508. routines, save your work often.
  509.  
  510. The WIN31WH.HLP file contains complete reference information for the
  511. functions, messages, and data structures in the Microsoft Windows 3.1
  512. API.  This is the same file that is shipped with the Microsoft Windows
  513. Software Development Kit.  Open it by double-clicking the WIN SDK Help
  514. icon in the Visual Basic group in the Windows Program Manager.
  515.     
  516. WIN31WH.HLP provides detailed information about each of the functions,
  517. messages, and data structures in the Microsoft Windows API.
  518.   
  519. Installing Online Resource Files
  520. --------------------------------
  521. WINSDK.HLP, APIXREF.HLP, and WINAPI.TXT are old versions of Windows 3.0 API
  522. support files that were included with the Visual Basic 1.0 Professional
  523. Toolkit.  These files are not deleted when you install Visual Basic
  524. 2.0, but you may want to delete them yourself.  The installed files
  525. WIN31WH.HLP, WIN30API.TXT, WIN31EXT.TXT, and WIN31API.HLP are replacements
  526. for the older files.
  527.  
  528.  
  529. Part 6: Custom Control Reference
  530. ================================
  531.  
  532. Installing Custom Controls
  533. --------------------------
  534. Visual Basic 2.0 installs custom controls in the Windows system directory.
  535. If you previously installed the Visual Basic 1.0 Professional Toolkit, you
  536. may have old versions of controls in the \VB\VBX directory.  You should
  537. remove any older versions of controls you may have on your machine.
  538.  
  539. VB.LIC
  540. ------
  541. Please make sure that the copy of VB.LIC in the \windows\system directory
  542. is the only one on your computer.  Otherwise, you may encounter problems
  543. loading the new custom controls.
  544.  
  545. If an older VB.LIC is being used, or you have a missing or incorrectly
  546. installed VB.LIC file, the following message appears when you try to add
  547. the custom control file to your project:
  548.  
  549.  "License file for custom control not found.  You do not have an
  550.   appropriate license to use this custom control in the design
  551.   environment."
  552.  
  553. Animated Button (ANIBUTON.VBX) Update
  554. -------------------------------------
  555. "Value" is the default value of the control.
  556.  
  557. Unlike the standard command button, when you press [Enter] on an animated
  558. command button, a Click event is NOT generated.  You can use the KeyPress
  559. event to detect a click if necessary.
  560.  
  561. Communications Control (MSCOMM.VBX) Update
  562. ------------------------------------------
  563. The port address and interrupt address can be changed from the Windows
  564. Control Panel.
  565.  
  566. The following defined constants for the Handshaking property have been added
  567. to the CONSTANT.TXT file:
  568.  
  569.   Global Const MSCOMM_HANDSHAKE_NONE = 0
  570.   Global Const MSCOMM_HANDSHAKE_XONXOFF = 1
  571.   Global Const MSCOMM_HANDSHAKE_RTS = 2
  572.   Global Const MSCOMM_HANDSHAKE_RTSXONXOFF = 3
  573.  
  574. InBufferCount property: This property is Read/Write at run time.
  575.  
  576. SThreshold property:  The MSCOMM_EV_SEND event is only fired once, when the
  577. number of characters crosses the SThreshold.  For example, if SThreshold
  578. equals five the MSCOMM_EV_SEND event occurs only when the number of
  579. characters drops from five to four in the output queue.  If there are never
  580. more than SThreshold characters in the output queue the event is never fired.
  581.  
  582. OnComm Event:  The MSCOMM_ER_RXOVER only gets set when the receive queue
  583. overflows.  It will not get set after a Chr$(26), EOF.
  584.  
  585. PortOpen property:  If either the DTREnable or RTSEnable properties are set
  586. to True before the port is opened, the properties are set to False when the
  587. port is closed.  Otherwise, the DTR and RTS lines remain in their previous
  588. state.
  589.  
  590. The DSR_EVENT is only fired when DSR goes from -1 to 0.
  591.  
  592. Graph (GRAPH.VBX) Update
  593. ------------------------
  594. The Graph control includes the Palette property.  Refer to online Help.
  595.  
  596. MAPI (Messaging API) Update
  597. ---------------------------
  598. The RESOLVE_NAME action resets RecipType.
  599.  
  600. Masked Edit Control (MSMASKED.VBX) Update
  601. -----------------------------------------
  602. The Text property is not available at design time.
  603.  
  604. Multimedia Control (MCI.VBX) Update
  605. -----------------------------------
  606. All references to the DisplayhWnd property should be hWndDisplay.
  607.  
  608. DeviceType property should refer to "Videodisc" not "Videodisk" as a device.
  609.  
  610. TimeFormat property should include 
  611.   2  MCI_FORMAT_MSF   Minutes, seconds, and frames are packed into a
  612.               four-byte integer.  From least significant byte to
  613.               most significant byte, the individual data values
  614.               follow:
  615.  
  616.               Minutes (least significant byte)
  617.               Seconds
  618.               Frames
  619.               Unused (most significant byte)
  620.  
  621. Pen Controls (PENCNTRL.VBX) Update
  622. ----------------------------------------
  623. The error constants are incorrect on pages 278, 280, 287, 288, and 297. The
  624. correct values are defined in online Help.
  625.  
  626. The Ink On Bitmap and On-Screen Keyboard controls refer to CONSTANT.TXT.
  627. The correct file for constant definitions is PENAPI.TXT in the
  628. SAMPLES\PEN directory.
  629.  
  630. For the SKB_Change event of the On-Screen Keyboard Control, there
  631. is one additional possible value for the ChangeCode parameter:
  632.  
  633.     SKN_TERMINATED    The on-screen keyboard has been closed.
  634.  
  635. This constant is defined in the file PENAPI.TXT.
  636.  
  637. The Distribution Note at the beginning of the chapter "Pen Edit
  638. Controls" should say the custom control file is named PENCNTRL.VBX.
  639.  
  640. To facilitate the interaction between Microsoft Windows For Pen API and
  641. Visual Basic, we have created two new APIs in the PENCNTRL.VBX file:
  642.  
  643.   CPointerToVBType(ByVal lpSrc As Long, vbDest As Any, ByVal cNum By Integer)
  644.  
  645.   - Copies cNum number of bytes from a memory location pointed to by lpSrc
  646.     and places them in the vbDest memory location.
  647.  
  648.   VBTypeToCPointer(vbSrc As Any, ByVal lpDest As Long, ByVal cNum By Integer)
  649.  
  650.   - This reverses the process, copying from Visual Basic memory to a
  651.     location specified by lpDest.
  652.  
  653. These two functions are used when dealing with RcResult or when
  654. pen data is required to be accessed by a Visual Basic program.
  655.  
  656. Shipping PENWIN.DLL with Your Application
  657. -----------------------------------------
  658. PENWIN.DLL is a fully redistributable component of Windows for
  659. Pen Computing.  Because applications will seek to leverage the
  660. Pen API - Visual Basic controls in particular - PENWIN.DLL can
  661. be shipped with your application.  There are some considerations
  662. to keep in mind when shipping PENWIN.DLL with your application:
  663.  
  664. 1.  PENWIN.DLL functions ONLY under Windows 3.1.  It WILL NOT
  665.     WORK with Windows 3.0 because it functions only as an
  666.     installable device driver (a feature not present in Windows
  667.     3.0).
  668.  
  669. 2.  As with other redistributable components (such as COMMDLG.DLL
  670.     and the OLE libraries), it is the responsibility of the
  671.     application vendor to determine whether PENWIN.DLL has
  672.     already been installed (there is a GetSystemMetrics() call
  673.     for this) and to ensure that the version of PENWIN.DLL with
  674.     the latest version stamping is the one that is running. These
  675.     issues are the same for all redistributable components, and
  676.     further information is contained in the Windows SDK.
  677.  
  678. 3.  Unlike some of the other redistributable components, if your
  679.     application installs PENWIN.DLL for the first time, or
  680.     replaces the current version with a later one, Windows will
  681.     have to be restarted.  As an installable driver PENWIN.DLL
  682.     can be loaded only at Windows boot time.  Restarting Windows
  683.     can be accomplished via an ExitWindows() call or by simply
  684.     prompting the user to do so.
  685.  
  686.     NOTE:  To install PENWIN.DLL on a Windows 3.1 system follow the
  687.        directions listed under the "Pen Sample" in the file SAMPLES.TXT
  688.        in the SAMPLES subdirectory.
  689.  
  690. 4.  PENWIN.DLL may be in either the \WINDOWS or the \WINDOWS\SYSTEM
  691.     directory.  The default will be \WINDOWS, but since Windows for Pen
  692.     Computing is an OEM product, Microsoft cannot completely control where
  693.     PENWIN.DLL is located on a particular machine.
  694.  
  695. To get a good feel for the Pen Windows controls, you are encouraged to
  696. use and experiment with the Pen sample application (PENSMPL.MAK).
  697.  
  698. Spin Control (SPIN.VBX) Update
  699. ------------------------------
  700. Removed TabIndex property.
  701.  
  702. 3D Command Button (THREED.VBX) Update
  703. -------------------------------------
  704. Under certain video drivers, the 3D Command button will not print when
  705. performing a PrintForm operation.  This problem occurs when printing
  706. from the design environment or at run-time.  If you are distributing an
  707. application that causes 3D Command buttons to be printed you may want to
  708. implement an alternative method of printing a form as outlined in
  709. KnowledgeBase article Q84066, "How to Print Entire VB Form and
  710. Control the Printed Size."  This article can be found in the online
  711. KnowledgeBase provided with the Visual Basic 2.0 Professional Edition.
  712.  
  713.  
  714. Part 7: Help Compiler
  715. =====================
  716.  
  717. HC31.EXE and Using Protected Mode Memory
  718. ----------------------------------------
  719. Version 3.10.504 of the Windows Help Compiler (HC31.EXE) requires
  720. protected- mode memory. A number of system configurations support
  721. protected- mode memory by providing DMPI or VCPI servers. The following
  722. configurations provide protected-mode memory access to the Help Compiler,
  723. although not all configurations have been fully tested.
  724.  
  725. * Microsoft Windows version 3.0 or 3.1
  726.   The best way to access protected mode memory is to run the Help Compiler
  727.   in an MS-DOS session under Windows 3.1 enhanced or standard modes. You can also
  728.   compile in an MS-DOS session under Windows 3.0 enhanced mode.
  729.  
  730. * EMM386 under MS-DOS
  731.   The Help Compiler runs under EMM386 (if the noems option is not used and
  732.   enough EMS memory is allocated to EMM386).
  733.  
  734. * 386Max
  735.   The Help Compiler runs as a DMPI client with version 6.01 of 386Max
  736.   (the version shipped with C7 or its equivalent).  The Help Compiler may
  737.   also work with some earlier versions of 386Max as a VCPI client if
  738.   enough EMS memory is configured.
  739.  
  740. * QEMM
  741.   Under version 6.02 of QEMM, the Help Compiler runs as a DPMI
  742.   client.  It should also work under some earlier versions of QEMM
  743.   as a VCPI client, provided it is configured with enough EMS memory.   
  744.   
  745. * EMS Memory Requirements
  746.   You need enough EMS memory to hold the Help Compiler and dynamic data
  747.   being compiled.  The exact amount of memory needed depends heavily on the
  748.   size of the help file you want to compile.  Between 1MB and 2MB should
  749.   meet most needs.
  750.  
  751.  
  752. Part 8: ODBC Information
  753. ========================
  754.  
  755. If you use Windows for Workgroups and the ODBC object layer with
  756. SQL Sever installed on a Novell NetWare LAN, you will not be able to 
  757. access SQL Server from ODBC.  The Network Integration Kit (NIK) will 
  758. resolve this problem.  For details please contact Microsoft Product
  759. Support at the numbers listed in the Visual Basic Help file.
  760.  
  761. The Database object now supports the QueryTimeout property.  Refer to the
  762. online help.
  763.  
  764. For information on distributing Visual Basic ODBC applications, refer to
  765. the online Help contents screen.
  766.