IBM
skip to main content
Shop Support Downloads
Home Products Consulting Industries News About IBM
Search
 

 
 

 
 
  OpenDoc  
  Download  
  Library  
   
 
IBM Worldwide
 

 
 
OpenDoc > Downloads >

OpenDoc Version 1.2 News

Below you'll find known restrictions and other late-breaking news regarding IBM OpenDoc, Version 1.2.

Known Restrictions

The following items that are known restrictions in IBM OpenDoc, Version 1.2.

Restriction Platform(s) Affected
Processing locked files If you are using Windows NT 3.51 with Service Pack 4, you may get the message "MSVCRT40.DLL is locked and may not be updated at reboot.", there are patches available to correct the problem. Please visit the following web pages for instructions:
http://kb.installshield.com/is3kb/287e.htm
http://www.microsoft.com/KB/ARTICLES/Q148/4/85.HTM
In most cases, the locked file is the correct version, so no further action is needed.
Windows NT
Hang on reboot after running Install IBM Parts On a system that previously had OpenDoc for OS/2, Version 1.0 (DevCon 9 SE) installed, the system may hang on the first reboot following the Install IBM Parts installation step. Do the following to recover:
  1. Reboot in command line mode. Hold down the keys ALT-F1 when the first "OS/2" text appears in the upper left corner during reboot. Enter C for command line mode from the menu.
  2. Delete the OD.IR file if it is corrupted. This file is located in the directory pointed to by the ODCFG environment variable. You can determine if the file is corrupted by issuing the following command from this directory:
      type od.ir
    If the file contains mostly blanks, it has been corrupted.
  3. Verify that all directories pointed to by the SOMIR environment variable exist. If not, create empty directories. (Later, when booted in normal mode, you can edit the CONFIG.SYS file to remove the empty directories from the path specified for the SOMIR environment variable. At that time, the empty directories can be removed.)
  4. Reboot the system.
  5. Double-click on the Install IBM Parts icon in the IBM OpenDoc folder to regenerate the OD.IR file.
  6. Copy the OD.IR file to a file named OD.BAK before rebooting.
  7. Reboot in command line mode (see step 1).
  8. Delete file OD.IR and rename file OD.BAK to OD.IR.
  9. Reboot the system.
OS/2
Installing additional components If you install some components during initial install, you will not be able to specify the install path for additional components on a subsequent install. The install facility will provide a default path based on where you installed components during the initial install.

If you must specify a path for certain components, uninstall all components and then install the components you want. You may specify install paths for each component that you select during the re-install.

OS/2
Using WebExplorer If IBM WebExplorer is launched by double-clicking on the OpenDoc Documentation icon, you may find that some of the HTML links fail. Use the "File->Open File..." menu to open the index.html file in the %ODBASE%\doc\en_US directory, then follow the HTML links. OS/2
Setting the PATH variable Windows 95 imposes a limit on the length of the contents of the PATH environment variable. OpenDoc minimizes its entries in this environment variable. However, if you observe problems related to the loading of modules for OpenDoc, please consider adjusting your PATH environment variable setting in the AUTOEXEC.BAT file to include the following:
        %ODBASE%\BIN;%ODBASE%\DLL;%ODSRC%\DLL;%ODPARTS%\DLL
Windows 95
.ir file name The documentation refers to the interface repository file supporting OpenDoc as opendoc.ir. On the OS/2 platform, the file is named od.ir. OS/2
Releasing disk space If you need to free up disk space, you may delete any .dll files in the %odsrc%\dll that also are present in the %odparts%\dll directory. All
System Error when starting Docshell On OS/2 Warp Connect, FixPak 17 is required. If this corrective service has not been applied to your OS/2 Warp Connect system, starting the Docshell will cause a system error. Error "SYS2070: A program in this session encountered a problem and cannot continue" will be displayed. Displaying the register information provides the message "SYS2070: The system could not demand load the applications's segment. ODPUBUTL->PMCTLS.108 is in error." Apply FixPak 17 (FixPak WX02204 for Warp J) to your system to resolve this problem. OS/2
Desktop Integration Associations between documents and the docshell are based on the .od file extension on the document file. Renaming the document file with another extension breaks the association. Windows
  Saving a document as a new type of stationery (via the "Document Properties" dialog under the "Document" menu) works properly but does not change the document icon to a stationery icon at this time. Windows
  We recommend changing a document to a piece of stationery by opening the Settings notebook of the document and marking the check box for Template on the General tab. OS/2
Docshell Parts registered after a document has been opened are not available to that document. The per-document registry cache is loaded once when the document is opened and not refreshed when the registry is modified. Currently, documents must be closed and reopened before registry changes are available to that document. All
Docshell help Help is active for the "Help" menu and dialogs of the Docshell. The "F1" key, however, does not invoke help for "Part" menu items. AIX
Properties notebook The Apply button on the Properties notebook does not function; therefore the button is always "greyed out". OS/2
Saving Documents OS/2 documents marked Read-Only and Hidden can not be opened by OpenDoc. OS/2
Embedding OLE part in OpenDoc container The following restrictions exist when embedding an OLE part in an OpenDoc container:
  • Opening a document using the OlePart part kind (i.e. establishing an OLE part as the root part) causes the embedded OLE object to display as inactive, with no visible tool bar. The object may be activated by double-clicking, but the tool bar will not display.
  • When printing an OpenDoc document containing an active OLE part, changes made to the OLE part since it was activated might not print. If you deactivate the OLE part before printing the document, the OLE part will print correctly.
  • Embedding an OLE part in a BaseContainer part in OpenDoc document has a few behavior problems:
    • Single clicking on the OLE part does not draw an activation border
    • Displaying the tool bar for the OLE part does not cause the client area of the container to resize.
    • Moving an embedded OLE part from a lower-level container to a higher-level container may cause the OLE part to display with a different size.
    • When an Ole Part becomes active in an OpenDoc container, (done by double clicking on its embedded window) the active window usually appears to come to the top of overlapped sibling windows. When the Ole Part is deactivated, (done by clicking onto another part in the OpenDoc Container) the window then goes back into the order in which it originally was before it was activated. This behavior is dependent on the OLE server that the Ole Part is containing. Most OLE applications behave this way. MS Word, however, moves its active window to bottom of the overlapped sibling windows.
    • When embedded Ole parts are re-sized in an OpenDoc container running on Windows 95, OpenDoc part activation borders may at times be drawn incorrectly. They may be drawn offset from their proper locations, or at an inappropriate size. If you notice this behavior, you can fix it by closing and re-opening the OpenDoc container document. The container may warn about exception -29705 on the way down; this warning can be ignored.
Windows
Embedding OpenDoc part in OLE container The following restrictions exist when embedding an OpenDoc part in an OLE container:
  • There have been numerous changes to the recipes for BaseContainer that should be studied when creating an OpenDoc part that may be embedded in an OLE container. If you are creating such a part, please study the recipes.
  • Due to limitations in the implementations of "Self Embedding" for in-process servers in the Microsoft Word and Microsoft Excel products and the manner in which we implement embedding into OLE containers, there are certain restrictions regarding the embedding of OpenDoc parts into these products. "Self Embedding" is the starting of Microsoft Word or Microsoft Excel product, embedding an in-process OLE server/container into the product, then embedding the product into the embedded OLE server/container.
    • The embedded Microsoft product is not drawn.
    • The Microsoft product may trap while being embedded into the embedded OLE server/container.

    Likewise, embedding an OpenDoc container into Microsoft Word or Microsoft Excel product, then embedding the Microsoft product into the embedded OpenDoc container does not work correctly.

    Embedding works for these sequences:

    • start Microsoft Word, embed an OpenDoc container, then embed Microsoft Excel into the OpenDoc container
    • start Microsoft Excel, embed an OpenDoc container, then embed Microsoft Word into the OpenDoc container
  • When inserting an Opendoc part within an OLE container and the "Display as icon" option is checked, the displayed icon in the dialog may not be the same as the icon inserted into the document.
  • When an OpenDoc part embedded in an OpenDoc document is copied to the clipboard and pasted into an OLE container such as Excel, the image drawn may be of the entire OpenDoc document instead of the selected part. Activating and deactiving the pasted part will fix the image.
  • We have noticed some problems when embedding into specific OLE containers:
    • When OpenDoc parts are embedded in Microsoft PowerPoint, their deactivated images will not be drawn correctly. Active images are drawn correctly.
    • Embedded OpenDoc parts in Microsoft PowerPoint may change their position and/or size after activating and deactivating.
    • The deactivated image of an OpenDoc part embedded in Microsoft Excel may not show the current state of the embedded part.
    • The deactivated image of OpenDoc parts embedded in Microsoft Visual Basic may not clip correctly.
    • Due to interoperability problems (including failures causing loss of data) discovered during testing with Corel Draw, the IBM OpenDoc team recommends that you do not embed OpenDoc parts in Corel Draw.
    • The initial image of an OpenDoc part embedded into Corel QuatroPro will be drawn incorrectly. Once the image is updated, however, it will draw correctly.
Windows
Scraps/Clippings When content is dragged out of a container and dropped on the desktop, a "scrap" is created. This scrap may be subsequently embedded into an OLE container. However, it cannot be embedded back into an OpenDoc container at this time.

A scrap item opened by double clicking cannot be closed. If an OpenDoc scrap item is opened by double click, it may be terminated by selecting the window, typing CTRL-ALT-DEL and selecting End Task.

To obtain the same functionality as dropping an OpenDoc item on the desktop without the problems associated with scrap items, open a document with the part kind of BaseContainerPartKind and drop the OpenDoc item into it.

Windows 95
Linking Support Linking support is platform-specific. OpenDoc documents created on one platform can not be used on a different platform if they contain links. All
  In most OLE applications, double clicking on the image of a link source in the link target document causes an edit session for the link source document to be opened. If the link source is an OpenDoc document, then you must use the OpenDoc "Document->Exit and return to OLE Container" menu to ensure the edit session's changes are saved. Windows
  Links from OLE applications into OpenDoc documents cannot be created using Drag & Drop gestures. These links may be created using Copy and Paste. Windows
  If a link is established from an OpenDoc document to another OpenDoc document or to an OLE application, and the document containing the source of the link is closed and re-opened, the link appears to be broken. This link can be re-established by closing and re-opening the target document. Windows
  When linking occurs on OS/2, the availability server starts in the background. To terminate the server, use the window list to select and close "OpenDoc Link Manager Log". OS/2
  Updating a link source and saving its document while the link target's document is closed will cause the link to be broken. Saving the link source's updates prior to closing the link target works correctly. OS/2
  If the system appears to hang or terminate prematurely while linking, check the directories specified in the somir environment variable to ensure that avsshell.ir is included. It should have been included during the installation process. Also, check to see if the availability server (avsshell.exe) is running. If not, it may be started by running the command avsshell.exe from a command line. OS/2
  Persistent data on linkings are saved in file avlsrvr.bto. A backup file called avlsrvr.bak is also created. Linking does not work if these two files are corrupted. OS/2
  Links are not persistent. When a document containing links is closed and re-opened, links are not restored. AIX
  A link target cannot be included as part of some link source. A link target may, however, serve by itself as the sole content of a link source. AIX
  A maximum of ten link sources or targets may be created in any single OpenDoc document. AIX
  If a Link Container part has been copied to the clipboard but its source document has been closed, pasting into a new document will cause a trap in SOM.DLL on OS/2 or an X Protocol error on AIX. OS/2
AIX
BaseContainer Undo/Redo is not supported All
  A embedded BaseContainer part cannot be opened into its own window. All
  Dragging and dropping a part between containers within a document (including between the root container and an embedded container) may cause the document to fail. While the operation will appear to proceed correctly, changing the part's contents or saving the document will cause the document to fail with loss of data. This problem may be avoided by always using the cut/copy and paste operation to move a part between containers within a document. OS/2
  Problems related to the OLE environment are described in the items "Linking Support" and "Embedding Support". The procedure for subclassing the BaseContainer to create a part to be compiled with the Microsoft Visual C++ compiler is described in the item "Microsoft Visual C++ support". Windows
DynamicPart Printing of the bitmap is not supported. Windows
  Combination transformations (such as rotation plus vertical shearing) are not supported. Simple transformations are supported. Windows NT
  Rotation and shearing are not supported. Windows 95
ODLinkContainer The "ShowLinks" menu item is not supported. All
  Clicking the right mouse button on a selected part in the link container creates an extra part of the same type as the selected part. All
  A embedded ODLinkContainer part cannot be opened into its own window. All
GraphicsPart A embedded GraphicsPart part cannot be opened into its own window. Windows NT
OS/2
TextPart A embedded TextPart part cannot be opened into its own window. Windows NT
OS/2
PageLayout A embedded PageLayout part cannot be opened into its own window. Windows NT
OS/2
Printing When printing to Omni or Postscript print drivers, some parts will print outside of their frame. OS/2
Installing IBM VisualAge C++ Building the sample parts using the IBM VisualAge C++ compiler assumes that the compiler is installed in a non-root directory. If you installed the compiler in a root directory, change the platform.* files as follows:
  • Change every occurrence of "$(SOMBASE)\" to "$(SOMBASE)"
  • Change every occurrence of "$(CPPMAIN)\" to "$(CPPMAIN)"
OS/2
Windows
Compiler coexistence Installing both the IBM VisualAge C++ compiler and the Microsoft Visual C++ compiler requires special attention when building parts:
  • Clear the INCLUDE environment variable before using a resource compiler and pass the compiler's include directories to the resource compiler through the -I flags.
  • Before creating an export library or shared library using ilib/ilink or lib/link, set the PATH and LIB environment variables to look at your compiler's libraries first.
  • Pass all of the compiler's directories to the compiler through the -I flags.
Windows
Microsoft Visual C++ support To use subclassing of the BaseContainer part to create a part to be compiled using the Microsoft Visual C++ compiler, you need to create your own copy of the BaseContainer part from the shipped sample source code that we provided. In your copy, there are several changes required to the source, before you can use the part with other parts. Generally, these changes are to allow registration of the shipped BaseContainer and of your subclassed part to work with each other. In the copy, you will need to modify the UUID to a new, unique value. You should also use a different name for your PartKind and PartHandler and DLL and class name than the ones used by our shipped Sample. After the change, you should be able to compile and relink your modified BaseContainer part using the Microsoft Visual C++ compiler. The resulting BaseContainer DLL may then be subclassed by a part compiled using the Microsoft Visual C++ compiler.

The following sample parts do not currently compile with the Microsoft Visual C++ compiler:

  • Clock
  • GrafPart
  • LinkContainer
  • ShapePart
  • TextPart
To use subclassing of the SimplePart part to create a part to be compiled using the Microsoft Visual C++ compiler, you need to create your own copy of the SimplePart part from the shipped sample source code that we provided. In your copy, there are several changes required to the source, before you can use the part with other parts. Generally, these changes are to allow registration of the shipped SimplePart and of your subclassed part to work with each other. In the copy, you will need to modify the UUID to a new, unique value. You should also use a different name for your PartKind and PartHandler and DLL and class name than the ones used by our shipped Sample. After the change, you should be able to compile and relink your modified SimplePart part using the Microsoft Visual C++ compiler.

The sample utilities provided with this edition of OpenDoc (called iodutils) are C++ code compiled using the IBM VisualAge C++ compiler. If you want to use these utilities in parts to be compiled using the Microsoft Visual C++ compiler, you must recompile iodutils. When compiling using Microsoft Visual C++, the class constructors are not exported unless you add the WIN32_DLLEXPORT macro on the definition and the _DLLCTIMPORTEXPORT_ macro on the declaration.

Windows
Debugging parts written using Microsoft Visual C++ Version 4.0 Do not use the Microsoft debugger (MSDEV.EXE) to debug OpenDoc parts written using Microsoft Visual C++ Version 4.0. Windows
APIs not working properly Rotation (FOCUSLIB) interfaces do not work. Windows
MenuBar::RemoveMenu corrupts the menubar. All
Using IFrameWindow If your part needs to wrap the platform window with an OpenClass IFrameWindow, you may encounter problems when closing the document. To prevent these problems, use a subclass of the IFrameWindow and of the IFrameHandler, as follows:
class MyFrameHandler : public IFrameHandler {
   public:
   Boolean closed(IFrameEvent& frameEvent){
      // Do not process. Just pass the event to the platform window.
      return false;
   }
};

// Subclass IFrameWindow in order to use the protected removeDefaultHandler method.
class MyFrameWindow : public IFrameWindow {
   public:
   MyFrameWindow(const IWindowHandle& hwnd) : IFrameWindow(hwnd) {
      // Remove the default handler to ensure
      // that the events are not processed twice.
      removeDefaultHandler();

      // Create a new frame handler and attach it to this object.
      MyFrameHandler *frameHandler = new MyFrameHandler;
      frameHandler->handleEventsFor(this);
   }
};
All
Using ODTransform interfaces When using the ODTransform class for complex rotation or shear transformations, always enclose any call using the inverse of a matrix inside a try-catch block and be prepared to handle kODErrTransformErr exceptions. This exception may be thrown when the determinant of the 4 rotation/scale elements of the matrix is very small when compared to the translation elements, resulting in a division that produces an overflow or underflow condition in a ODFixed representation. All
Message catalog support Some of the sample parts included in this edition are using a temporary technique for handling message catalogs. This technique will be changed in the future. To avoid future impacts, do not use the header files odnltyps.h or odcatio.h. Also, do not link with the odmsgcat.lib library. All
Using IMenuBar The AIX VisualAge C++ compiler runtime exhibits a known problem in the Japanese locale with respect to displaying menubars using the IMenubar class. The menubar will be pushed off the top of the window and no longer visible to the user. There is an update to the compiler runtime libraries, libibmuis.a and libibmcls.a, which will correct this problem. If any of your parts use the IMenubar class and exhibit this symptom, obtain the updated libraries (they are available as one of the prerequisite files on our download web page), place them in /usr/lib, then relink your parts with those libraries. AIX
Mouse Clicks The dispatcher on AIX does not currently recognize mouse double-click events. This prevents the user from opening a part into its own window with a double-click. This does not affect the user's ability to open a part into its own window via the View->View in Window menu item. AIX
  On AIX, clicking repeatedly on a selected part while moving the mouse can cause OpenDoc to crash.  
PartMeister The values entered in the following PartMeister input fields are restricted to normal alphanumeric characters from the Latin-1 character set.
  Classname  (becomes part of the part method names)
  Shortname  (becomes part of file names)
  kind       (becomes part of the PartKind constant name)
If other characters (MBCS or DBCS characters) are used the compiler may fail to properly process the generated source for the part.
All
  Starting PartMeister from the command line may fail on AIX. You can successfully start PartMeister by double clicking on its icon. AIX
JavaPart The following corrections and additions are needed to the README file that accompanies the JavaPart.
  • The readme file for the JavaPart incorrectly specifies the value to be used for the 'CLASSPATH' environment variable. The correct value is:
        CLASSPATH=.;%JAVA_HOME%\lib\classes.zip;%ODSRC%\dll\JavaPart.zip
    
  • The references to the batch file 'SETODENV' should refer to 'ODSETENV'
  • The Java BDK may obtained from Sun at "http://java.sun.com/beans"
  • The JavaPart readme file should state that:
    After setting up the JDK, the JavaPart should be rebuilt and then registered using the command:
        nmake forceregistry
    
    which will register it in the OpenDoc registry.
Windows
Sample Utilities To compile the utility ODDebug.cpp, you will need to have the xlC.C++.iclui.lib fileset installed on the system. AIX
Building Samples Before building any of the sample parts, it is necessary to rebuild the samples utilities directory (%ODBASE%\samples\src\utils) to ensure that all needed header files are properly exported to the OpenDoc include directories. All
  Similarly, if you rebuild any part which subclasses from another part, it is necessary to rebuild the parent part as well, to ensure that the proper versions of the parent part's header files exist in the OpenDoc include directories.  
Recompiled Base Part Class If you recompile either Simple Part or Base Container Part using the Microsoft Visual C++ compiler, you may experience failures when you use parts which are derived from those parts (Shape Part, Link Part, etc). To correct these problems it is necessary to also recompile the derived parts which you wish to use. Note that for some of the derived parts, there may not be a MS Visual C++ format module definition file (.mdf) supplied and you will have to supply that file. You may wish to compare the .def (Visual Age) and .mdf (MS Visual C++) files supplied with Base Container. Also, some of the sample part makefiles may not properly link with the recompiled sample utilities library. Windows
Documentation Folder On some installations of OpenDoc on OS/2 Version 3 (Warp), the icon for the OpenDoc product publications is missing from the OpenDoc folder. To view the documentation, open the file %ODBASE%\doc\en_US\index.htm in your browser. OS/2
Base Container w/ MS C++ If the Base Container is recompiled using the Microsoft Visual C++ compiler, it may receive an error indicating that the symbol 'bcNLSCat' is undefined in file iodbasec.cpp. The problem can be corrected by moving the declaration for that symbol (on about line 898) outside the enclosing '#ifdef' block. Windows



Privacy Legal Contact