OleFormat

OleFormat class

Provides access to the data of an OLE object or ActiveX control.

To learn more, visit the Working with Ole Objects documentation article.

public class OleFormat

Properties

NameDescription
AutoUpdate { get; set; }Specifies whether the link to the OLE object is automatically updated or not in Microsoft Word.
Clsid { get; }Gets the CLSID of the OLE object.
IconCaption { get; }Gets icon caption of OLE object.
IsLink { get; }Returns true if the OLE object is linked (when SourceFullName is specified).
IsLocked { get; set; }Specifies whether the link to the OLE object is locked from updates.
OleControl { get; }Gets OleControl objects if this OLE object is an ActiveX control. Otherwise this property is null.
OleIcon { get; }Gets the draw aspect of the OLE object. When true, the OLE object is displayed as an icon. When false, the OLE object is displayed as content.
OlePackage { get; }Provide access to OlePackage if OLE object is an OLE Package. Returns null otherwise.
ProgId { get; set; }Gets or sets the ProgID of the OLE object.
SourceFullName { get; set; }Gets or sets the path and name of the source file for the linked OLE object.
SourceItem { get; set; }Gets or sets a string that is used to identify the portion of the source file that is being linked.
SuggestedExtension { get; }Gets the file extension suggested for the current embedded object if you want to save it into a file.
SuggestedFileName { get; }Gets the file name suggested for the current embedded object if you want to save it into a file.

Methods

NameDescription
GetOleEntry(string)Gets OLE object data entry.
GetRawData()Gets OLE object raw data.
Save(Stream)Saves the data of the embedded object into the specified stream.
Save(string)Saves the data of the embedded object into a file with the specified name.

Remarks

Use the OleFormat property to access the data of an OLE object. You do not create instances of the OleFormat class directly.

Examples

Shows how to extract embedded OLE objects into files.

Document doc = new Document(MyDir + "OLE spreadsheet.docm");
Shape shape = (Shape)doc.GetChild(NodeType.Shape, 0, true);

// The OLE object in the first shape is a Microsoft Excel spreadsheet.
OleFormat oleFormat = shape.OleFormat;

Assert.AreEqual("Excel.Sheet.12", oleFormat.ProgId);

// Our object is neither auto updating nor locked from updates.
Assert.False(oleFormat.AutoUpdate);
Assert.AreEqual(false, oleFormat.IsLocked);

// If we plan on saving the OLE object to a file in the local file system,
// we can use the "SuggestedExtension" property to determine which file extension to apply to the file.
Assert.AreEqual(".xlsx", oleFormat.SuggestedExtension);

// Below are two ways of saving an OLE object to a file in the local file system.
// 1 -  Save it via a stream:
using (FileStream fs = new FileStream(ArtifactsDir + "OLE spreadsheet extracted via stream" + oleFormat.SuggestedExtension, FileMode.Create))
{
    oleFormat.Save(fs);
}

// 2 -  Save it directly to a filename:
oleFormat.Save(ArtifactsDir + "OLE spreadsheet saved directly" + oleFormat.SuggestedExtension);

See Also