Microsoft KB Archive/112036

From BetaArchive Wiki
Knowledge Base


Summary List of OLE Bugs

Article ID: 112036

Article Last Modified on 10/15/2003



APPLIES TO

  • Microsoft OLE 1.0
  • Microsoft OLE 2.0
  • Microsoft OLE 2.01



This article was previously published under Q112036

SUMMARY

The information in this article is a summary of individual articles contained in the Microsoft Knowledge Base (as of 4/21/95). These articles can be found by querying on the article's ID number or on words in the title and text. The Microsoft Knowledge Base can be accessed on the Internet (through www.microsoft.com).

BUG LISTING

  • BUG: OleCreateLinkFromFile Fails on CD-ROM-Based File
  • BUG: DIB Can Be Returned Only on TYMED_HGLOBAL
  • BUG: SR2TEST GP Faults During Object Shutdown
  • BUG: (I)CntrOutl Does Not Set Target Device Information
  • BUG: Accelerator Causes Crash in ISvrOutl Embedded in C12Test
  • BUG: Insert Object from Zero Length File Causes GP Fault
  • BUG: Set Line Height on ISvrOutl Object Causes GPF in Cl2Test
  • BUG: Deleting an Open Packager Ojbect Causes GP Fault
  • BUG: Cannot Paste Link SR2TEST Object in OLE 1.0 Client
  • BUG: SR2TEST Won't Close After Editing Link Object
  • BUG: Paste Link Disabled Across the Network
  • BUG: Object Packager GPFs w/Paths Greater Than 64 Characters
  • BUG: Status Bar Not Redrawn With SR2TEST When In-Place
  • BUG: Cursor Does Not Update with Sr2Test and ICntOutl
  • BUG: OleCreate and IOleCache::Cache Fail with Multiple TYMEDs
  • BUG: IROT::IsRunning() Returns S_FALSE for OLE 1.0 Servers
  • BUG: Retaining Clipboard IDataObject Causes Unexpected Result
  • BUG: SR2TEST Menu Items Enabled Incorrectly
  • BUG: OLE 2.0 Containers & 1.0 Objects that Close w/out Saving
  • BUG: CL2TEST Fails to Parse Filenames with Extended Characters
  • BUG: Insertion of Large .WAV Object Fails
  • BUG: OLE 2.01 Does Not Support CF_OWNERDISPLAY
  • BUG: IOleCache::Cache Returns Incorrect Error Value
  • BUG: OLERENDER_ASIS Results in Blank Embedded Object
  • BUG: Invisible MSDRAW Object Retains Keyboard Focus
  • BUG: Iconic OLE Object Prints as Black Rectangle on PostScript
  • BUG: First Entry in Paste Special Dialog Is Blank
  • BUG: IEnumUnknown Is Not Remoted
  • BUG: SVROUTL Link Not Displayed Correctly in CNTROUTL
  • PRB: Embedded Object's Size Changes When it Is Run
  • BUG: Embedded Object's Size Changes When it is Run
  • BUG: SVROUTL Link Not Displayed Correctly in CNTROUTL
  • BUG: CL2TEST Does Not Display Prompt String from GetCurFile()
  • BUG: CL2TEST Handles Icon Aspect Incorrectly
  • BUG: CL2TEST Not Properly Activating Links to Embedded Objects
  • BUG: IOleObject::Close(OLECLOSE_NOSAVE) and DoVerb()
  • BUG: OLE 1.0 Server Launched for Paste Link
  • BUG: OLE 2.0 Compatibility Layer Uses Document IDataObject
  • BUG: CreateFromTemplate of OLE 2 Object into OLE 1 Container
  • BUG: IROT::Register() and IOL::SetDisplayName() Inconsistency
  • BUG: OLE Type Emulation for Previously Loaded Objects
  • BUG: Relative Monikers and OLE 1.0 Link Objects
  • BUG: OleConvertStorageToOLESTREAM() Fails When CLSID Is NULL
  • BUG: Paste-Linking a 256-Color Paintbrush Object
  • PRB: IOleObject::IsUpToDate() and OLE 1.0 Link Objects
  • BUG: IOleCache::Cache(), ADVF_DATAONSTOP, and OLE 1.0 Objects
  • BUG: IOleObject::IsUpToDate Returns Wrong Value for Manual Link
  • BUG: Borland WINSIGHT Causes GP Faults w/Some OLE Sample Apps
  • BUG: Windows OLE DLLs Do Not Convert Mac OLESTREAM
  • BUG: Printing Does Not Work from CL2TEST.EXE
  • ==== BUG: OleCreateLinkFromFile Fails on CD-ROM-Based File ====

    In an OLE client application, the OleCreateLinkFromFile function returns the value OLE_ERROR_DRIVE.

  • ==== BUG: DIB Can Be Returned Only on TYMED_HGLOBAL ====

    IDataObject::GetData returns DV_E_FORMATETC when requesting a device-independent bitmap (DIB) from an OLE object.

  • ==== BUG: SR2TEST GP Faults During Object Shutdown ====

    A general protection (GP) fault occurs when calling IOleObject::Close() on an SR2TEST object.

  • ==== BUG: (I)CntrOutl Does Not Set Target Device Information ====

    During the print process from (I)CntrOutl, a server application is asked to render its display with the TARGETDEVICE structure set to NULL instead of containing a valid structure. This implies that (I)CntrOutl wants a screen representation rather than a printed representation of the object.

  • ==== BUG: Accelerator Causes Crash in ISvrOutl Embedded in C12Test ====

    After embedding an ISvrOutl object in Cl2Test, pressing the ALT+BACKSPACE accelerator (Undo) results in a general protection (GP) fault within ISvrOutl.

  • ==== BUG: Insert Object from Zero Length File Causes GP Fault ====

    Creating an object from a zero length file that does not have a valid file class extension results in a general protection (GP) fault after displaying the message, "Not enough memory to perform this operation. Close one or more applications and try again."

  • ==== BUG: Set Line Height on ISvrOutl Object Causes GPF in Cl2Test ====

    In certain circumstances, editing the Line Height of an ISvrOutl object embedded within Cl2Test results in a general protection (GP) fault after displaying the following message:

    GDI - An error has occurred in your application. If you choose Ignore, you should save your work in a new file. If you choose Close, your application will terminate.

  • ==== BUG: Deleting an Open Packager Ojbect Causes GP Fault ====

    Deleting an object from within the Object Packager results in a general protection (GP) fault.

  • ==== BUG: Cannot Paste Link SR2TEST Object in OLE 1.0 Client ====

    The Paste Link option is not available in an OLE 1.0 client application after copying an unsaved SR2TEST object to the clipboard.

  • ==== BUG: SR2TEST Won't Close After Editing Link Object ====

    After editing a linked SR2TEST object from CL2TEST, SR2TEST fails to shut down after first displaying the following message box:

    Error Document not unlocked. Attempt Self-unlocking?

  • ==== BUG: Paste Link Disabled Across the Network ====

    The OleQueryLinkFromData application programming interface (API) function returns failure when clipbook data from another machine is copied to the local clipboard, even if the clipbook contains all of the data needed to create a link.

  • ==== BUG: Object Packager GPFs w/Paths Greater Than 64 Characters ====

    Packaging an object that has a fully qualified path of more than 64 letters results in a general protection (GP) fault in the Object Packager.

  • ==== BUG: Status Bar Not Redrawn With SR2TEST When In-Place ====

    After inserting an SR2TEST object into the in-place version of the OUTLINE sample application, the status bar will not be redrawn until the container application's window is resized.

  • ==== BUG: Cursor Does Not Update with Sr2Test and ICntOutl ====

    After inserting an Sr2Test object within the in-place Outline sample application, cursor display is not handled correctly when the cursor is positioned over the in-place object.

  • ==== BUG: OleCreate and IOleCache::Cache Fail with Multiple TYMEDs ====

    The OLE 2.01 creation functions [OleCreate(), OleCreateFromData(), and so forth] and IOleCache::Cache() fail if multiple values are specified for the TYMED field of the FORMATETC parameter. The functions fail even if the object server supports at least one of the TYMED values specified.

  • ==== BUG: IROT::IsRunning() Returns S_FALSE for OLE 1.0 Servers ====

    When an OLE 2.01 container application calls IRunningObjectTable::IsRunning() on the moniker for a linked OLE 1.0 object, IsRunning() returns S_FALSE even if that OLE 1.0 object is already running.

  • ==== BUG: Retaining Clipboard IDataObject Causes Unexpected Result ====

    An application holding on to a clipboard IDataObject pointer, and making repeated calls to IDataObject::EnumFormatEtc() through that pointer, may find that the set of formats returned by EnumFormatEtc() changes between calls.

  • ==== BUG: SR2TEST Menu Items Enabled Incorrectly ====

    During an in-place activation session, SR2TEST sometimes incorrectly enables menu items on its Edit menu.

  • ==== BUG: OLE 2.0 Containers & 1.0 Objects that Close w/out Saving ====

    When an OLE 1.0 object is inserted into an OLE 2.0 container document and then closed without an update being invoked, the correct streams for that object are not written to storage. Any subsequent attempt by the container to load the object will fail.

  • ==== BUG: CL2TEST Fails to Parse Filenames with Extended Characters ====

    When attempting to insert a new embedded object from a file, CL2TEST fails with the error STG_E_FILENOTFOUND if the filename or directory name provided contains an extended character.

  • ==== BUG: Insertion of Large .WAV Object Fails ====

    In some cases, inserting a large .WAV file object into either an OLE 1.0 or OLE 2.0 container will fail.

  • ==== BUG: OLE 2.01 Does Not Support CF_OWNERDISPLAY ====

    If an application places a data transfer object onto the clipboard and that data object enumerates CF_OWNERDISPLAY as one of the clipboard formats, the application will not receive the WM_PAINTCLIPBOARD message.

  • ==== BUG: IOleCache::Cache Returns Incorrect Error Value ====

    An OLE 2.0 container application calls IOleCache::Cache for a particular FORMATETC and is returned the value OLE_S_FORMATETC_NOTSUPPORTED. A subsequent call to IOleCache::Cache with the same FORMATETC returns CACHE_S_SAMECACHE.

  • ==== BUG: OLERENDER_ASIS Results in Blank Embedded Object ====

    If an OLE 1.0 client application contains an embedded object and copies the object to the clipboard and an OLE 2.0 container application then performs a paste operation by creating a new embedded object based on the clipboard data by calling OleGetClipboard() and then calling OleCreateFromData(), the resulting embedded object appears blank in the container's document if the OLE 2.0 container specifies OLERENDER_ASIS as the renderOpt parameter to OleCreateFromData().

  • ==== BUG: Invisible MSDRAW Object Retains Keyboard Focus ====

    When an invisible MSDRAW object is inserted as an OLE embedded object, the object retains the keyboard focus. This behaviour is incorrect. The MSDRAW object should not take the focus until it has been made visible.

    This problem occurs whether the MSDRAW object is inserted into an OLE 1.0 client application or into an OLE 2.0 container application.

  • ==== BUG: Iconic OLE Object Prints as Black Rectangle on PostScript ====

    Calling OleDraw() or IViewObject::Draw() to print an iconic OLE object to a PostScript printer results in a black rectangle being drawn.

  • ==== BUG: First Entry in Paste Special Dialog Is Blank ====

    The first format entry in the Paste Special dialog box is blank after copying an OLE2Link object from an OLE 1.0 client to the clipboard.

    NOTE: An OLE2Link object is created by the OLE 1.0 compatibility layer when an OLE 2.0 link is copied from an OLE 2.0 application to the clipboard, and then pasted into an OLE 1.0 client application.

  • ==== BUG: IEnumUnknown Is Not Remoted ====

    All calls to IOleContainer::EnumObjects() fail.

  • ==== BUG: SVROUTL Link Not Displayed Correctly in CNTROUTL ====

    Selecting the Paste Link menu item in the CNTROUTL sample application does not correctly display the contents of the link if the source application is the SVROUTL sample application.

    This problem occurs only if the information created in SVROUTL is edited further after the Edit Copy operation in SVROUTL, but before the Paste Link operation in CNTROUTL. In this situation, the resulting link object is displayed as originally copied to the clipboard, and does not reflect the changes made after the copy operation.

  • ==== PRB: Embedded Object's Size Changes When it Is Run ====

    A non-running embedded object is resized in an OLE 2.01 container application. The next time the object is run, it snaps back to its previous size.

  • ==== BUG: CL2TEST Does Not Display Prompt String from GetCurFile() ====

    IPersistFile::GetCurFile() returns S_FALSE to indicate that the document has no currently associated file. In this case, GetCurFile() returns the default prompt string for the filename (as would be displayed in the Save As dialog box under the File menu) in the lplpszFileName parameter.

    When CL2TEST calls IPersistFile::GetCurFile(), and GetCurFile() returns S_FALSE, CL2TEST fails to display the returned prompt string.

  • ==== BUG: CL2TEST Handles Icon Aspect Incorrectly ====

    Selecting the iconic aspect when inserting an object in CL2TEST results in the object being created and displayed with the content aspect.

  • ==== BUG: CL2TEST Not Properly Activating Links to Embedded Objects ====

    Double-clicking a link to an embedded object in CL2TEST results in the activation remaining on CL2TEST. The correct action would be for the container of the embedded object to obtain the activation and edit the object visually (if possible).

  • ==== BUG: IOleObject::Close(OLECLOSE_NOSAVE) and DoVerb() ====

    An OLE 2.0 container application inserts a new embedded object into a document. The container calls IOleObject::Update() on the object to update the cache, then calls IOleObject::Close(OLECLOSE_NOSAVE) to transition the object back to the running state. Finally, the container tries to rerun the object by calling IOleObject::DoVerb().

    In this particular scenario, DoVerb() will return STG_E_FILENOTFOUND, and the object will not be rerun.

  • ==== BUG: OLE 1.0 Server Launched for Paste Link ====

    An OLE 1.0 server application copies an object to the clipboard, then enters the blocked state. An OLE 2.0 container application then attempts to paste a link to the object from the clipboard. The OLE 2.0 application is frozen.

    Next, the OLE 1.0 application is shut down. This unfreezes the OLE 2.0 container application, which proceeds to paste the link to the OLE 1.0 object. However, an instance of the OLE 1.0 server is launched. Normally, the server is not run in a paste-link scenario.

  • ==== BUG: OLE 2.0 Compatibility Layer Uses Document IDataObject ====

    Whenever the OLE 1.0 client compatibility layer uses IDataObject, it uses the OLE 2.0 server's document-level data object rather than the server's pseudo-object data object.

  • ==== BUG: CreateFromTemplate of OLE 2 Object into OLE 1 Container ====

    An OLE 2.01 object is inserted into an OLE 1.0 container using OleCreateFromTemplate(). The OLE libraries start the server, but then the object creation fails, or a blank object is created.

  • ==== BUG: IROT::Register() and IOL::SetDisplayName() Inconsistency ====

    IRunningObjectTable::Register() allows monikers that are not valid filenames to be registered as file monikers. However, if the display name string passed to IOleLink::SetSourceDisplayName() is not a valid filename, SetSourceDisplayName() returns STG_E_FILENOTFOUND.

  • ==== BUG: OLE Type Emulation for Previously Loaded Objects ====

    OLE type emulation is the process that allows the application user to specify that all objects of some particular type are henceforth to be activated as objects of some alternate, emulating type. When objects of the original type are subsequently run, the server for the emulating type is launched to serve them.

    However, this emulation does not occur for objects of the original type that were already in the loaded state when the type emulation occurred. When such objects are subsequently run, they are run as the original type, not the emulating type. The original server is launched, not the server for the emulating type.

  • ==== BUG: Relative Monikers and OLE 1.0 Link Objects ====

    When a link object from an OLE 2.0 application is copied to the clipboard and then pasted into an OLE 1.0 application, the OLE 2.0 emulation layer preserves the object's relative moniker. If the OLE 1.0 application document is closed and then reopened by an OLE 2.0 version of the application, OLE 2.0 will create a full moniker for the linked object by appending the preserved relative moniker to the file moniker for the document. This full moniker will be incorrect, because it will point to the new document rather than to the first OLE 2.0 application's document that contains the original linked object.

    However, OLE 2.0 will still be able to bind to the linked object by following the absolute moniker that is also stored with the object (providing that the absolute location of the original linked object has not changed). At the time of this binding, OLE will then correct the full moniker for the object.

  • ==== BUG: OleConvertStorageToOLESTREAM() Fails When CLSID Is NULL ====

    The OleConvertStorageToOLESTREAM() API (application programming interface) call is used to convert the storage of an embedded object from the OLE 2.0 storage model to the OLE 1.0 storage model. However, if the OLE 2.0 object has a CLSID of NULL, then OleConvertStorageToOLESTREAM() fails with a return code of OLE_E_CLASS.

  • ==== BUG: Paste-Linking a 256-Color Paintbrush Object ====

    A 256-color bitmap is loaded into Microsoft Paintbrush version 3.11. The image is selected and then copied to the clipboard. An OLE 2.0 application then pastes a link to the object from the clipboard. To perform the paste- link operation, the container calls OleCreateLinkFromData(), specifying OLERENDER_FORMAT as the rendering option and CF_DIB as the desired format.

    The resulting link object in the OLE 2.0 application has an incorrect appearance, such as being colored solid black.

  • ==== PRB: IOleObject::IsUpToDate() and OLE 1.0 Link Objects ====

    An OLE 2.0 container application calls IOleObject::IsUpToDate to determine whether or not an OLE 1.0 link object is up to date. IsUpToDate() returns S_FALSE, even though the object is actually up to date.

  • ==== BUG: IOleCache::Cache(), ADVF_DATAONSTOP, and OLE 1.0 Objects ====

    An OLE 2.0 container application document contains an embedded OLE 1.0 object. The container calls IOleCache::Cache() to control the cached presentation data for the object, and specifies ADVF_DATAONSTOP as the advise flag to Cache(). The user makes some changes to the object in the OLE 1.0 server, then attempts to update the object's presentation in the server by choosing the Update command from the File menu. Finally, the user closes the object server.

    In this specific scenario, the object's presentation in the server is not updated. The object's native data, however, is correct.

  • ==== BUG:IOleObject::IsUpToDate Returns Wrong Value for Manual Link ====

    To determine whether an OLE link needs to be updated, an OLE 2.0 container application needs to call IOleObject::IsUpToDate. If this method returns S_FALSE, the link needs to be updated; otherwise, the link can be considered up to date. However, calling IOleObject::IsUpToDate on a manual link while the link server is not running results in an a return value of S_FALSE, even if the link is current. The result of this is that OLE 2.0 container applications may update links unnecessarily.

  • ==== BUG: Borland WINSIGHT Causes GP Faults w/Some OLE Sample Apps ====

    If Borland's WINSIGHT tool is running when you start some of the sample applications that have been included in the OLE 2.01 SDK, a general protection (GP) Fault will occur before the main application window appears.

    The following OLE 2.01 SDK sample applications are affected:

    cl2test.exe
    sr2test.exe
    outline.exe
    cntroutl.exe
    svroutl.exe
    icntrotl.exe
    isvrotl.exe

  • ==== BUG: Windows OLE DLLs Do Not Convert Mac OLESTREAM ====

    The OLE 2.01 libraries will not convert a Mac OLESTREAM to a Windows OLESTREAM. Similarly, the Windows OLE dynamic-link libraries (DLLs) will not convert a Mac IStorage to a Windows OLESTREAM.

  • ==== BUG: Printing Does Not Work from CL2TEST.EXE ====

    Printing does not work correctly from CL2TEST.EXE. Choosing Print from the File menu results in a blank printout.



Additional query words: kbbuglist

Keywords: kbbug KB112036