Summary List of OLE Bugs

ID: Q112036

The information in this article applies to:

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 ftp.microsoft.com or www.microsoft.com).

BUG LISTING

BUG: OleCreateLinkFromFile Fails on CD-ROM-Based File

Article ID: Q86408

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

BUG: DIB Can Be Returned Only on TYMED_HGLOBAL

Article ID: Q98679

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

BUG: SR2TEST GP Faults During Object Shutdown

Article ID: Q104141

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

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

Article ID: Q108310

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

Article ID: Q108311

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

Article ID: Q108371

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

Article ID: Q108930

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

Article ID: Q108931

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

Article ID: Q108932

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

Article ID: Q108935

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

Article ID: Q108939

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

Article ID: Q109116

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

Article ID: Q109541

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

Article ID: Q109542

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

Article ID: Q109543

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

Article ID: Q109544

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

Article ID: Q109545

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

Article ID: Q109546

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

Article ID: Q109547

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

Article ID: Q109548

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

Article ID: Q109549

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

Article ID: Q109552

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

Article ID: Q110488

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

Article ID: Q110714

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

Article ID: Q110715

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

Article ID: Q110796

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

Article ID: Q110798

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

Article ID: Q110799

All calls to IOleContainer::EnumObjects() fail.

BUG: SVROUTL Link Not Displayed Correctly in CNTROUTL

Article ID: Q110871

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

Article ID: Q110872

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()

Article ID: Q111014

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

Article ID: Q111339

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

Article ID: Q111340

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()

Article ID: Q111577

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

Article ID: Q111578

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

Article ID: Q111585

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

Article ID: Q111595

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

Article ID: Q111607

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

Article ID: Q111608

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

Article ID: Q111609

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

Article ID: Q111611

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

Article ID: Q111612

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

Article ID: Q111613

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

Article ID: Q111614

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

Article ID: Q111655

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

Article ID: Q112410

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

Article ID: Q112412

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

Article ID: Q112413

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

Keywords          : LeTwoOth kbbuglist
Version           : 1.00 2.00 2.01
Platform          : WINDOWS
Issue type        : kbbug

Last Reviewed: June 4, 1997