Click here to Skip to main content
Click here to Skip to main content

OLE container surrogate for .NET

, 13 Mar 2013 CPOL
Rate this:
Please Sign up or sign in to vote.
COM OLE-container analog for .NET

Introduction  

Microsoft Visual Basic versions 6.0 and 5.0 provide an OLE container control for embedding OLE objects directly on forms. The OLE container control provides a means for embedding OLE objects such as Microsoft Excel workbooks, Microsoft PowerPoint presentations, and Microsoft Word documents. But Visual Studio .NET does not provide an OLE container control for Windows Forms: http://support.microsoft.com/kb/304562/. Microsoft recommends achieving a similar functionality by using the Microsoft WebBrowser control to host the document if the document uses ActiveX. Excel, PowerPoint, and Word all support ActiveX. Therefore, documents from those sources may be displayed by using the WebBrowser control.

But the WebBrowser control doesn't embed Office documents because of security problems.

The PreviewContainer control solves this problem.  

Possibilities:    

  • preview MS Office documents (Excel, Word, PowerPoint and etc) 
  • preview and zooming different image formats like .jpg, .bmp and etc
  • preview and browsing multi-paged .tif files 
  • preview file formats which WebBrowser control support like .htm, .xml, and etc.
  • developers can extend PreviewContainer control for support different file formats 

Screenshots  

Excel document preview:

Multipages TIFF preview:

Background

Solution is based on preview handlers mechanism:

Using the code

Using of this control is very simple: 

  1. Add a reference to PreviewsHandlers.dll
  2. Drop the PreviewContainer on a Windows Form 
  3. Call the CreateLink method of the control with the full file path:
  4. this.previewContainer.CreateLink(@"c:\test.tif");
  5. If you want to browse multi-paged content (like multi-page tif), you can use these methods:
  6. ((IPaginalPreviewHandlerHost)this.previewContainer).PreviousPage();
    	((IPaginalPreviewHandlerHost)this.previewContainer).NextPage(); 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Alexei Bouravtsev
Software Developer (Senior) GNIVC
Russian Federation Russian Federation
I'm a Russian (Moscow Aviational Institute 1996-2002) Software Engineer living in Moscow, Russia. I have a long experience in Windows programming and have been developing large GUI, Real Time Enterprise Client/Server C# applications and SQL Server/Oracle databases.
 
My point of interests is high load enterprise applications.

Comments and Discussions

 
QuestionAppears to have issues with more than one Preview Container on a WinForm Pinmembergr8yt200028-Jul-14 5:35 
QuestionXLSM? [modified] PinmemberMember 1084311825-May-14 16:04 
QuestionGreat PinmemberUser_Beginner18-Mar-14 8:14 
QuestionCategory does not exist.? PinmemberMember 1018047328-Nov-13 5:14 
AnswerRe: Category does not exist.? PinmemberAlexei Bouravtsev25-Mar-14 22:34 
QuestionOpen PPT Pinmemberconqu1212-Sep-13 19:05 
QuestionTry compilation with SharpDevelop 4.3.2 Pinmembermoebius221-Aug-13 5:55 
AnswerRe: Try compilation with SharpDevelop 4.3.2 PinmemberAlexei Bouravtsev25-Mar-14 22:42 
QuestionError "Excel has stopped working" PinmemberJason Orphanidis13-Aug-13 0:24 
AnswerRe: Error "Excel has stopped working" PinmemberAlexei Bouravtsev13-Aug-13 1:50 
GeneralMy vote of 5 [modified] PinmemberKatja240323-Jul-13 22:51 
QuestionProvided project not running Pinmemberrexpertq10-Jun-13 4:18 
AnswerRe: Provided project not running PinmemberAlexei Bouravtsev13-Jun-13 3:54 
GeneralRe: Provided project not running Pinmemberrexpertq13-Jun-13 18:56 
GeneralRe: Provided project not running PinmemberAlexei Bouravtsev13-Jun-13 20:38 
QuestionWord and Excel documents problem. [modified] PinmemberIsildure11-Mar-13 4:51 
AnswerRe: Word and Excel documents problem. PinmemberAlexei Bouravtsev13-Mar-13 5:27 
QuestionDownloads ? PinmemberMember 324609830-Nov-12 7:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.141022.2 | Last Updated 13 Mar 2013
Article Copyright 2012 by Alexei Bouravtsev
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid