FIX: OLE Client: Copying Linked Object Gives Err: Can't Paste

Last reviewed: October 30, 1997
Article ID: Q97619
1.00 2.00 WINDOWS kbole kbbuglist

The information in this article applies to:

- Standard and Professional Editions of Microsoft Visual Basic for

  Windows, version 2.0
- Microsoft Professional Toolkit for Visual Basic programming
  system for Windows, version 1.0

SYMPTOMS

If you use the OLE client control to paste a linked OLE object onto the clipboard and then later copy the same OLE object from the clipboard back to the OLE client control, you may see this error message:

   Can't Paste

This occurs whether the linked OLE object is created from an existing file (OleClient1.Action = 1) or from an OLE object on the clipboard (OleClient1.Action = 4). This problem occurs only with a linked object, not with an embedded object.

STATUS

Microsoft has confirmed this to be a bug in both the Standard and Professional Editions of Microsoft Visual Basic version 2.0 for Windows and in the Microsoft Professional Toolkit for Visual Basic programming system version 1.0 for Windows. This bug was corrected in Visual Basic version 3.0 for Windows.

MORE INFORMATION

The following example uses Microsoft Excel version 4.0 as the application associated with the OLE object, however the bug does not depend on Excel; it occurs no matter which application is associated with the OLE object.

Steps to Reproduce Problem

  1. Start Microsoft Excel. The Sheet1 worksheet is created by default.

  2. In the R1C1 cell, enter Fixed Assets.

  3. From the Edit menu, choose Copy (ALT+E+C).

  4. Start Visual Basic or from the File menu, choose New Project (ALT+F+N) if Visual Basic is already running. Form1 is created by default.

  5. From the File menu, choose Add File. In the Files box, select the OLECLIEN.VBX custom control file. The OLE client tool appears in the Toolbox.

  6. Add an OLE client control (OleClient1) to Form1.

  7. Add a command button (Command1) to Form1.

  8. Add the following code to the Command1_Click event:

       Sub Command1_Click ()
          Const OLE_LINKED = 0
          Const OLE_COPY = 4
          Const OLE_PASTE = 5
          Const OLE_UPDATE = 6
          Const OLE_DELETE = 10
    
          If OleClient1.PasteOK Then
             OleClient1.Protocol = "StdFileEditing"
             OleClient1.ServerType = OLE_LINKED
             OleClient1.Action = OLE_PASTE  ' Get object from clipboard
             OleClient1.Action = OLE_COPY   ' Copy the object back onto the
                                            ' clipboard
             OleClient1.Action = OLE_UPDATE ' Display object
             OleClient1.Action = OLE_PASTE  ' Attempt to paste the
                                            ' object onto the clipboard
             OleClient1.Action = OLE_DELETE
          Else
             MsgBox "Contents of the Clipboard in unacceptable format"
          End If
       End Sub
    
    

  9. From the Run menu, choose Start (ALT+R+S) to run the program.

  10. Click the Command1 button. It should work, but instead the program

        stops and gives the "Can't paste" error message. The Excel object is
        successfully linked to OleClient1 and displayed, and the linked object
        is also copied successfully onto the clipboard.
    


Additional reference words: 1.00 2.00 3.00 errmsg buglist1.00 buglist2.00
fixlist3.00
KBCategory: kbole kbbuglist
KBSubcategory: IAPOLE
Solution Type : kbfix


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: October 30, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.