********************************************************** History.txt ddoc Print and Preview Revision History Version 1.9e, Oct. 7, 2003 Copyright 1995-2003, Don Dickinson, All rights reserved. http://dickinson.basicguru.com don@greatwebdivide.com ********************************************************** IMPORTANT NOTE ABOUT v1.9d and v1.9e ********************************************************** It is my intent for this to be the last of the 1.x versions of ddoc. i will continue to support it for at least a year after i release ddoc v2.0. v2.0 will be very compatible with this version (though the dll name, exe name and a few call names may change). I will also release bug fixes if there are significant bugs reported. About this document ********************************************************** This document contains 3 things ... 1. An idea of the features I want to add to the next releases. 2. A list of known issues to be resolved in future releases. 3. A history of revisions made to ddoc Planned for future release ********************************************************** The items below are an example of what MAY appear in ddoc in the future. I am open to input from YOU about what features YOU would like to see. Please don't take the list below as a promise of any kind. These are things that I am considering ... >> A Grabber hand that allows moving the page around. >> Printing bitmaps from hDC or resource file. >> New command to allow positioning of the window in a position other than maximized. >> XML data format instead of proprietary binary. >> "Hot Link" spots on the screen that can .... 1. Link to another page in the report 2. Shell out to another application >> ENCRYPTION of all text in document against the given password. >> RLE COMPRESSION of embedded bitmaps. >> PROGRAMMER DEFINED ZOOM LEVELS >> TABLES for easy data output dpSetTableSpecs iTable, iColumn, iAlign, zFont, etc. dpColumnText dpRowText Basically, you define what your table's columns are going to look like and assign that definition an ID code. For example, you can tell the computer that Table1, Column1 is right-justified at 2" over, the heading is printed in bold, the regular text is printed italic, etc. Then define the rest of the columns. Once your table is defined, you need only call dpColumnText and reference the table, column, and how far down on the page to print - the engine will take care of the X coordinate, alignment, and font specs. OR, you can call dpRowText and pass it a delimited string containing ALL of the text for all columns in the current row. For example, dpRowText iTable, sngCurrentYPosition, "~", "First~Last~Phone" >> ASCII TEXT TEMPLATES This feature will enable ddoc to read a special ascii format of it's file. You will also be able to specify a file to be used as a "template" for every page. This will act as a macro - inserting items out of an ascii file directly into ddoc. For example, if you always put your company's name at the bottom of the page, you can create an ascii file of commands, like below ... _DEFINE_MACRO SetFontBold _FONT BOLD 10,RED,Times New Roman _END_MACRO _DO_MACRO SetFontBold _TEXT 7,10.5,RIGHT:My Company Name _LINEFEED .2 _PARAGRAPH CURRENTX,CURRENTY,WIDTH,LEADING This is a paragraph _END_PARAGRAPH Save this 9 line file as mytemp.txt Now call dpInsertTemplate "mytemp.txt" and ddoc will open the file and insert your company name in the requested font right into your document. >> HTML support I will begin by adding basic HTML tag handling such as <P>,<B>,<I>, etc. and add functionality. The beta of this call works sort of like dpWrapText does; formatting paragraphs of html code instead of normal text. Eventually I would like to support tables. I will probably never support the .gif graphics nor will I support internet communications (hyperlinks) or frames. I am considering including the <A> tag to define hot-spots that link to other pages in the document. >> INSERT a page. It may be helpful for the programmer to be able to start a new page, but put it in a different spot in the document. For example, I have a piece of software that generates letters reminding people that they have an invoice due. It would be nice to start the document with a summary sheet. Unfortunately, I don't know the summary information until after the letters have been generated. Instead of leaving the summary at the end, it might be nice to have a dpMovePage call that allows me to move, say, the 9th page to the 1st, etc. >> RTF/ASCII/WORD file conversion. Ascii might be able to dump out dpTabText only to a csv file (kind of data export). >> Ability to embed bitmaps from a bitmap handle or resource file. Known Issues ********************************************************** >> ddoc does supports only using True Type fonts. Don't use bitmap fonts like MS Sans Serif, etc or you may have problems zooming in on pages. This is not a bug, I just plain don't support anything other than True Type nor will I likely build in support for anything else. >> ddoc can cause the PB-CC version 2 Debugger to hang on the dpEndDoc call. I haven't figured out if this is caused by a bug in PB-CC's debugger or ddoc - it is a very difficult thing to track down, but I am working on it. >> If you have a full-screen console or dos app running and you alt-tab or alt-enter out of it, the viewer doesn't redraw itself. You need to minimize and then restore the viewer to correct this. >> Sometimes the mouse cursor will remain an hourglass even though it should be an arrow. This is not a bug in ddoc, but a problem with certain video cards when running with hardware acceleration. Mine that does this is an ATI Xpert - 8mb pci. I have to set this video card to have only one "notch" of acceleration to correct the problem. Version 1.9e Released Update 10-7-2003 ********************************************************** >> FEATURE dpRoundRect function added. It allows drawing a rectangle with rounded corners. >> DOCUMENTATION FIX dpEndDocInst has a wrong heading in the function reference >> BEHAVIOR CHANGE The installer now asks if you want to overwrite the ddoc.exe and ddoc32.dll in the windows system directory. >> BUG The bookmark text (if changed from the default) did not appear correctly on self-extracting documents. >> BUG 1.9d enabled hot keys. But, I was not checking to see if the button for the hot key was enabled when the hot key was pressed. This meant that the Ctrl-E, Ctrl-S, and Ctrl-F (email, save, and fax) keys worked even if those buttons were not turned on. This has been fixed. >> BUG Fixed problem with programmer defined screen text that wasn't accurately displayed in a self-extracting document. >> BUG Fixed an smtp email mime encoding bug by replacing the mime encoder with newer code from pb's web site. >> BUG Fixed emailto field problem in smtp emails >> BUG Fixed date formatting problem with smtp emails. >> BEHAVIOR CHANGE The bookmark dropdown list now displays the item corresponding to the current page instead of defaulting to the first item in the list. Version 1.9d Released update 9-8-2003 ********************************************************** >> SPECIAL THANKS Special thanks to ddoc user Michael Mattias for reporting a bunch of the documentation bugs below. Also thanks to others (you know who you are) for misc documentation fixes. More thanks to Joseph Knight for help trouble-shooting the dpWrapText problem. >> DOCUMENTATION FIX Numerous small documentation errors. >> DOCUMENTATION FIX The definition of dpGetFileName was missing. It has been added. >> BUG Memory leak with dpWrapText where a font handle was not being properly freed. This lead to some strange problems with certain printer drivers if you do a lot of dpWrapText calls. >> PERFORMANCE BOOST dpWrapText is about a billion times faster now (really, a billion). >> BUG dpTextWidth may not have always returned the correct width (depending on font usage). This has been fixed. >> BEHAVIOR CHANGE I have brought back the warning message box that tells you if a default printer is not installed on the machine. ddoc requires the default printer for all text wrap and width features. >> RESOURCE FILE UPDATE changed the version so that it reflects the minor version ... e.g. 1,9,4,0 instead of 1,9,0,0 in both ddoc32.dll and ddoc.exe >> NEW FUNCTION dpEndDocInst returns the process id as returned by the last shell command in dpEndDoc. It must be called directly after dpEndDoc. If you have a multi-threaded application you should enclose your dpEndDoc and dpEndDocInst inside a critical section or mutex so the pid returned is accurate. since ddoc uses the pb shell function to execute ddoc.exe, the return value of this function is that of the shell function (see pb documentation for more information). >> BEHAVIOR CHANGE PgDown moves to the next page PgUp moves to the previous page Ctrl-p prints the document End moves to the last page Home moves to the first page Ctrl-q exits Ctrl-e emails Ctrl-f faxes Ctrl-g displays the go to page box >> NEW FEATURE ddoc now has jpg support. it requires you distribute a new file (ddoc_jpg.dll) with your app. ddoc.exe doesn't need this file, but ddoc32.dll needs it only if you add a jpg to the file. only the dpAddGraphic/dpDrawGraphic command supports jpgs. dpEmbedGraphic and dpGraphic do not. Note that this dll was written by me in delphi 6. source code is available upon request, but not included with the distribution. >> BUG if you issued the dpChangeWords command with %DDOC_WORD_DOCINDEX, it was effectively ignored. This behavior has been fixed. Version 1.9c Released Update 2-14-2002 ********************************************************** >> FEATURE dpAttachExt allows you to change the file extension for ddoc email attachments. This is useful because .exe files are often blocked. You can change the extension to .ex_ for example. >> FEATURE dpSetScreenOptions has been added to allow the programmer to specify a starting position (non-maximized) for the preview screen. >> FEATURE Support for emf (enhanced metafiles) has been added to the dpGraphic, dpAddGraphic, dpDrawGraphic, and dpEmbedGraphic commands. >> C/C++ is now supported. A file called ddoc32.c can be included in MS VC and C++ Builder projects to add ddoc support. No samples are available yet. Please see the C notes section of the documentation. >> FEATURE dpSpecialText allows the programmer to print text that is has tokens replaced before display. These tokens are currently: ##pageno##, ##pagecount##. >> BUG ddoc was not deleting temp files (when DDOC_END_DELETE was specified). It is now. >> BUG dpWrapText would incorrectly wrap text when passed a buffer pointer that was greater than 32767 bytes. It can now handled a buffer containing 2gb of data. Version 1.9b Maintenance upgrade 11-13-2002 ********************************************************** >> DOCUMENTATION FIX Fixed various documentation typo's. >> BUG FIX If a printer has a duplexer installed and the duplexer is an option in the printer setup, the printer always printed ddoc documents duplexed. >> BEHAVIOR CHANGE %PD_HIDEPRINTTOFILE constant was specified in the print dialog. This caused the Print To File selection to be hidden. I have removed this flag so the option will show up. >> BUG FIX Fixed a bug in the smapiSendMail function that caused attachments to be incorrectly enumerated. >> BUG FIX Wrapped text should be rtrimmed, not trimmed. Because I was trimming you could not indent fixed width fonts with spaces. This has been changed. Version 1.9a Released Update 9-20-2002 ********************************************************** >> BUG FIX Version 1.9 had a bug that caused ddoc to delete a file that it opened if that file was of an invalid format. This has been fixed. Version 1.9 Released Update 9-10-2002 ********************************************************** >> FEATURE dpPageOffset has been added. This command allows you to adjust the internal page numbering (dpPageNo) by specifying the page number of the first page. This allows, for example, you to start the document at page #50 by calling: dpPageOffset hPrev, 49 Values less than 1 are ignored. >> ENHANCEMENT A new version of ddocml.ini is included. Thanks to Tom Dandrea for contributing this. >> FEATURE dpPaperSize can be used to specify a custom paper size. In order for this to work, %DDOC_PAPER_CUSTOM must be passed in the dpStartDoc or dpNextpage call. If this constant is not specified in the iPaper parameter of these calls, then dpPaperSize will be ignored. Maximum paper size is 22" by 22". >> DOCUMENTATION BUG dpFont section was in there two times. No longer. >> DOCUMENTATION BUG dpWrapContinue was not hyperlinked and had an improper title in the documentation. Fixed. >> DOCUMENTATION BUG Various spelling errors corrected. >> BUG FIX Version 1.8x of the source code was hard to compile because I was including stock (odler) versions of the api includes. ddoc now has its own version of the winapi files. >> BEHAVIOR CHANGE If you are using dpSetPassword, be sure to read this. A password protected document will no longer prompt for a password if it is coming directly from a call to dpEndDoc. Only documnts that are saved and opened up *later* will prompt for a password. Documents that are emailed will prompt for a password if one is set.If this causes a problem for anyone let me know. I had requests for this and it makes sense to me. >> FEATURE ddoc32.dll and ddoc.exe now include versioning information in an embedded resource file. Thanks to Michael Mattias for his help with this. >> WORKAROUND On some machines, the "CreateCompatibleBitmap" call used to make and off-screen drawing surface will fail. This seems to be caused when the user is set to 24 or 32 bit video and the video driver is "flakey". Sometimes updating the video driver fixes the problem, sometimes not. The workaround is to create a black and white off-screen bitmap. This is compatible with all drawing surfaces and can display everything black and white when the CreateCompatibleBitmap call fails. If you see a screen in black and white and it should have color, then try decreasing the video depth to 16-bit color. This should fix the problem. In the past that black and white screen would have been just white (blank), now at least something will print albeit only in black. >> BUG FIX ddoc was inadvertantly writing to "e:\ddoc.log" during certain operations. While harmless, this has been removed. This was occurring in 1.8b thru 1.8d and was a side-effect of debugging the network printer enumeration problem. Version 1.8d Maintenance upgrade 6-30-2002 ********************************************************** >> BUG FIX Memory leak fixed in print routine. The saved devmode structure was never being freed. >> BUG FIX / FEATURE There was a bug in dpNextLabel that changed the page size back to letter size after the first page. I fixed this. In the process I added the %DDOC_SAME_AS_FIRST constant (= -2) that can be used in dpNextPage in any of the bin, paper size, or orientation fields that tells the engine the next page should be the same as the first page. Note that if you're printing labels, all internal dpNextPage calls by the label engine will set the page size, orientation, and bin to be the same as the first page. >> ENHANCEMENT Added critical sections to improve multi-threaded handling within ddoc32.dll Version 1.8c Maintenance upgrade 3.27.2002 ********************************************************** >> BUG FIX In some operating systems the zoom on right click was not working. The zoom was always 100% unless you clicked on the zoom level in the combo box. This has been fixed in ddoc.exe Version 1.8b Maintenance upgrade 12.27.2001 ********************************************************** >> BUG FIX Under some o/s's ddoc's dpGetPrinter did not return networked printers - just local ones. This should be fixed. >> BUG FIX When using ddoc from CGI, the user the web server runs as may not have a default printer defined. ddoc needed to have a default printer defined in order to print correctly and to wrap text. I removed this requirement. In the event a default printer is not defined, ddoc will choose the first available printer and use that for it's information context. If no printers are defined ddoc will still fail. >> BEHAVIOR CHANGE ddoc32.dll used to shell to the ddoc.exe file in curdir$. Now it shells to the ddoc.exe in the the directory that holds the program calling the dll. This means that for sure, every time, etc you distribute ddoc, you should put it in your program's directory (both ddoc32.dll and ddoc.exe) >> NOTE This was never a public update. I sent it to people needed the fixes. Version 1.8a Released Update 10.31.2001 ********************************************************** >> BUG FIX I compiled with a bad version of RAS32.INC that ended up making ddoc 1.8 dependent on RAS being installed. This dependency has been removed. Version 1.8 Released Update 10.12.2001 ********************************************************** >> BUG FIX Copies issue on print dialog - previous versions didn't correctly interpret the user indicated number of copies to print. >> BUG FIX The automatic calling of dpNextPage withing label printing functions was not correctly restoring the paper size. It will now be assumed that the paper size specified in dpStartDoc (or over-ridden by the user in the dialog) will be used to initialize each automatic dpNewPage call within the label engine. This means that it will not be possible to print the first page in a different paper size, bin, or orientation than the labels. Internally, it is setting the paper, orientation, and bin to %DDOC_SYSTEM_DEFAULT (see below). >> BEHAVIOR CHANGE Old versions of ddoc did not correctly initialize the print common dialog with orientation/bin/papersize information. It printed the way the programmer specified, but didn't reflect this in the common dlg. It shows these parameters correctly now. In the past ddoc would force the printer to print with the programmer's selected orienation and bin. Now ddoc introduces a new constant that may be passed in the iPaper, iOrientation, and iBin parameters of dpStartDoc and dpNewPage. It is %DDOC_SYSTEM_DEFAULT. If this parameter is passed, then the page will use the paper/orientation/bin selected by the user in the print dialog. If you print without a dialog, the system will use the default printer setup. The programmer can still specify the page size, orientation, and bin for any page s/he wishes. But, any page with the %DDOC_SYSTEM_DEFAULT parameter will print in the paper/orientation/bin of whatever was in the print dialog. >> DOCUMENTATION FIX dpSpecifyPrinter now documented correctly. >> INCLUDE FILE FIX Constant ommission %DDOC_END_SPECIFY_PRINTER = 64 was omitted from header files. Now it's there. >> INCLUDE FILE FIX dpSpecifyPrinter was incorrectly declared as a Sub instead of a function in previous versions. >> NEW FUNCTION dpPrinterCopies command tells ddoc to print the specified number of copies automatically *if* dpSpecifyPrinter is called or DDOC_END_PRINT_NODIALOG is included in dpEndDoc. >> NEW FUNCTION dpDuplex command allows the printer forces the printer to duplex. The user cannot override this behavior manually, whatever is selected by the programmer is what happens. This works just like the paper orientation - it is enforced by ddoc when printing. The printer must have a duplex tray installed and configured in order for this to work. This should be considered beta as well as I have only been able to test it on a Laserjet 4000ne. >> NEW FUNCTION dpFontSpacing command allows programmer to control how much space is between each letter. >> NEW FUNCTION dpWrapContinue command implemented to allow easier use of paragraph printing. Call this after dpWrapText until it returns False. It buffers the text to print internally for you. >> NEW FUNCTION dpEllipse - allows printing of circles and ellipses. >> NEW FUNCTION dpArc - allows printing of an arc >> NEW FUNCTION dpPie - allows printing of a slice of an ellipse Version 1.7a Maintenance upgrade 3.20.2001 ********************************************************** >> Incorrect source distributed with ddoc v1.7 Now the correct source code is bundled. >> Switched from using an old version of Wise install to using INNO Setup. >> dpGetMinor/MajorVersion did not report the correct ddoc version information. Version 1.7 Released Upgrade 1.25.2001 ********************************************************** >> New sets of calls to enumerate available printers, and select a printer for output (if just printing) >> Improved palette support so that graphics with multiple colors print and display better than before. >> The new dpStretchMode call alls you to specify that graphic calls stretch the bitmaps to fit the rectangle specified instead of being shrunk proportionally to fit the rectangle. Version 1.6a Maintenance upgrade 9.2.99 ********************************************************** >> ddoc.exe became dependent upon RAS being installed (the file ras32api.dll, specifically). This was not intentional - it was a side effect of my including some ras dialer calls in the SMTP code added with version 1.6. I have now changed ddoc so that it dynamically loads ras32api.dll - no run-time error will occur if RAS isn't installed. Version 1.6 Released Upgrade 8.5.99 ********************************************************** >> New bitmap commands - dpAddGraphic/dpDrawGraphic allow you to add a bitmap to a ddoc file once and print it as many times as you wish, on as many different pages as you wish. >> New constant for the Style parameter of dpFont allows the programmer to specify that text drawn following this call will be vertical aligned with respect to the text's baseline instead of the upper left corner of the string. This, in conjunction with dpTextWidth will allow the programmer to mix fonts on a single line. You can calculate where text that printed left off and start printing in a new font with the assurance that the two lines of text share the same baseline. The constant is DDOC_FONTBASELINE >> SMTP email is now available as a replacement for MAPI. Turn it on in the Options parameter of dpStartDoc with the new DDOC_ALLOWSMTP flag. Note: you can't enable both MAPI and SMTP - just pick one. The smtp email functions are actually part of ddoc32.dll. ddoc.exe calls the email functions in ddoc32.dll. This means that when you distribute ddoc, you MUST distribute the 32-bit dll if you want SMTP support even if you are only using a 16-bit programming language. The first time your user tries to email a document, a "setup" screen will prompt them for their email server, port, and reply address. This information is then stored in the registry for future reference. They can go back and change this information by clicking the "setup" button on the email dialog screen. The ddoc file or .exe file will be attached to the email as a MIME encoded file. Also, the setup screen lets the user configure a RAS dialer to dial up their favorite internet connection if they're not already connected. It will disconnect when done. Please note that I consider this function BETA because I'm the only one that's tested it. If you have any problems please contact me right away. Thanks! >> dpTextWidth command returns the width of text in the documents unit of measure (either inches or cm). Note that use of this function requires that you have a printer installed on your system. If there is no default printer, an IC can't be created. The IC is used to determine the width of the text. Also note that because of the resolution differences between output devices, the actual width on the screen and on a printer other than the default might vary. When you request the width of text, I have to return the width with respect to something - I choose the default printer hoping for the best results. >> The Copies selection the print dialog was being ignored. This is now fixed. >> dpTabText didn't work properly when DDOC_CM was choosen instead of DDOC_INCH. The text used to be chopped off. This has been fixed. >> Fonts now properly default to 10 Point, Arial, Black at the beginning of each new page. >> dpClipText (and dpTabText if the W parameter was specified) didn't take the printer's margin into account when printing. This caused text printed with these commands to shift down and to the right on the page. This has been corrected. Version 1.5 Released Upgrade 5.7.99 ********************************************************** >> dpSetTabs - sets position and alignment of tab stops. dpTabText - prints columns text delimited by the tab character (ascii 9). Respects alignment and positions set by dpSetTabs. >> dpClipText didn't always clip correctly. This has been fixed. Version 1.4a Maintenance Upgrade 2.25.99 ********************************************************** >> Fixed problem with using CM as the unit of measure. Version 1.4 Released Upgrade 1.4.99 ********************************************************** >> ddoc used to be limited to 4000 pages. It is now limited only by the memory on your computer (actually limited by the size of a long integer - 2 billion + pages). >> If you run ddoc.exe without a command line parameter, it now prompts you for a .ddc file to open. If you select a valid file, it will be displayed in a viewer screen. >> Changed dpText and dpAngleText to _not_ trim off spaces from text passed to them. Before if you passed, " Text" or "Text" to either, they would print the same. Now " Text" prints over farther on the screen. Feature added for those that print with a mono-spaced font (courier, etc). >> Fixed bug in the mailing label engine that caused the first label of the second page to be lost. >> New option for 32-bit dll users only - DDOC_VIEWBUILD option can be passed (bit-wise) in the iOptions parameter or dpStartDoc. This tells ddoc to display the preview screen while the preview document is still being built. Instead of the user having to wait for dpEndDoc to start seeing their document on the screen, each page can be viewed immediately after it is built. >> dpClipText routine allows user to specify the maximum width a line of text can take up. Allows the programmer to tell ddoc to "Print this line of text, but cut off everything that's wider than X inches." >> MAPI FAX integration - "MS At Work Fax" that comes with Windows 9x. Specify a list of recipients. Fax with or without a send dialog box. THIS FEATURE is considered BETA - your input will be greatly valued. See dpSetFaxOptions command. >> ENHANCED EMAIL capabilities. Specify a list of recipients. EMail with or without a send dialog box. THIS FEATURE is considered BETA - your input will be greatly valued. See dpSetEMailOptions Command. >> New dpEndDoc parameters ... %DDOC_END_PRINT_NODIALOG %DDOC_END_FAX %DDOC_END_EMAIL And additional functions to specify recipients of fax or email ... dpSetMailOptions, dpSetFaxOptions >> NEW COMMAND LINE PARAMETERS Currently there are only two: /P Prints with dialog /PA Prints to default printer without dialog I am adding the following: /F Faxes /E Emails Whether the dialog is displayed for each of these depends on how or if the user called dpSetMailOptions or dpSetFaxOptions >> Changed the way the viewer uses memory bitmaps to decrease the amount of memory needed by the viewer. >> Added the %DDOC_SCALETEXT and %DDOC_FASTTEXT options to the dpStartDoc call (iOptions bitwise parameter). These effect the way that ddoc zooms in and out. %DDOC_FASTTEXT is the default. %DDOC_FASTTEXT means that all text is rendered no matter what the zoom scale is. This means that text widths can be distorted at some zoom levels because of restrictions in screen resolution. This leads to faster zooming, but widths of text can be inconsistent. %DDOC_SCALETEXT means that text is StretchBlted at zoom levels < 100%. This means that text widths will be accurate at all zoom levels, but the quality of the text will go down and the zooming happens slower. ** I only recommend using %DDOC_SCALETEXT if you have lots of wrapped text or grids on the screen that will look funny if the default is used. >> Save feature built-in. This allows the user to save a self-extracting version of the document by clicking the Save button - IF the save button has been turned on in the iOptions parameter of dpStartDoc. Also, you may save out .ddc files that are the documents without self-extracting code. These documents may be called up by passing their name to ddoc on the command line. >> ddoc automatically registers the extension .ddc in the registry if it's not already there. If it's already there and used by another program, please let me know as I don't want to conflict with other programs. If you want to know if the .ddc extension is registered, run ddoc with the command line /SHOWREG. If another program has the .ddc extension registered and you want to overwrite it so it references ddoc, pass ddoc.exe the command line /INSTALL and it will register the .ddc extension, and /INSTALLVERBOSE will register the .ddc extension and display a message box telling the success of the call. Version 1.3a Released Upgrade 10.23.98 ********************************************************** >> Fixed problem that prevented two viewers to be able to be displayed from the same program at the same time under certain conditions. Version 1.3 Released Upgrade 10.7.98 ********************************************************** >> MAPI Email capability is now built in. (see dpStartDoc Options% parameter) >> dpEmbedGraphic Function allows embedded graphics. You should use this instead of dpGraphic if you have the MAPI Email turned on or you're not deleting the temp files when done (saving to call up later) >> Fixed possible Printer Driver GPF because of insufficent DEVMODE structure space. >> Changed the algorithm for zooming out less than 100% This means a little slower, but more accurate depiction of font widths when zooming out. Zooming in 100% and greater is un-changed. Version 1.2 Maintenance Upgrade 9.17.98 ********************************************************** >> Support for user defined tool tips and menu text. Specifically added for international users. See then dpChangeWords call. >> Self-extracting version of ddoc. This feature will allow the programmer to create a document embedded in a viewer. The viewer will add about 80K to the document. This file can be sent to and viewed by someone who doesn't have ddoc. Version 1.1 Initial Release 6.20.98 ********************************************************** >> Password protection for the documents. >> Added icon to viewer exe. >> Sample files done for all supported languages. Testing of samples complete. >> Installation program complete and tested. >> PB/CC console compiler demo complete. Beta 2 6.1.98 ********************************************************** >> Stack problem with pbdll 16-bit identified If you are developing with a 16-bit version of pbdll, you MUST use the $STACK metastatement to increase the stack size. I suggest putting it up near the maximum ($STACK 32000). The default stack size is only 2K. If you don't increase the stack size, the dpWrapText call will GPF with a stack fault. >> Header files complete for vb 3,4,5,6, delphi 1,2,3, pbcc, pbdll 1,2,5 >> Documentation complete. Beta 1 5.1.98 ********************************************************** >> VB3 Sample GPF fixed. >> Header files for vb and delphi are complete. >> Text wrapping and mailing label features added Alpha 1 4.1.98 ********************************************************** >> 32-bit and 16-bit dll's working with VB3 and 5 >> Basic text and graphic functions working .eof