Click here to Skip to main content
Licence CPOL
First Posted 30 Aug 2007
Views 23,937
Downloads 354
Bookmarked 15 times

Lotus Notes COM Class Wrapper for .NET

By | 30 Aug 2007 | Article
This is just a VB.NET class wrapper for the Lotus Notes interfaces.

Introduction

This is an interface/class wrapper to assist .NET applications in accessing Lotus Notes as Typed data without requiring Late-Binding options to be turned on.

Background

Lotus Notes provides COM interfaces, but as anyone trying to use them may know, the interfaces are designed to return untyped objects and require late-binding. From a VB.NET standpoint, this requires altering the Strict options to allow for late-binding, causing the application to no longer enforce strong data typing.

This wrapper was developed to overcome this limitation, and actually, the UnmanagedWrapper class could be used for any COM access that is implemented in the same manor that Lotus Notes has been implemented.

Using the code

The code is actually very easy to implement. You will need to have the Lotus Notes client installed. Then, add the LotusCW.vb file to your VB.NET application. There is no need to add a reference to the Lotus type libraries since this wrapper has all the information present. Since Lotus does return everything as an Object, the constructor for each class takes an Object, and then makes managed calls against that Object. Here is an example that can be found in the LotusSample class:

'' Create a new Lotus Notes Session
Dim MySession As New Lotus_cw.NotesSession(CreateObject("Notes.NotesSession"))

'' Output the Sessions UserName.
Debug.Print("UserName: " & MySession.UserName)

Points of interest

Beyond Lotus Notes, the UnmanagedWrapper class should provide a means for other COM implementations. I would also like to acknowledge the CodeSmith tool that was used for class refactoring from an IDL file into this wrapper class.

Please note that only preliminary testing has been completed and my usage of Lotus Notes is limited to extracting email messages.

License

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

About the Author

LeeBear

Web Developer

United States United States

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionImplementing for NotesUIWorkspace PinmemberLesZ9:52 21 Dec '10  
AnswerRe: Implementing for NotesUIWorkspace PinmemberLeeBear5:38 3 Jan '11  
Questionhow would you use this to read a series of calendar events? PinmemberPaul E.11:21 22 Sep '10  
AnswerRe: how would you use this to read a series of calendar events? PinmemberLeeBear3:01 23 Sep '10  
QuestionFailed using nDB.AllDocuments.GetNextDocument method PinmemberEdgardo Anibal9:33 14 Jul '09  
AnswerRe: Failed using nDB.AllDocuments.GetNextDocument method PinmemberLeeBear3:18 21 Jul '09  
QuestionSetting RtnType in InvokeMethod Pinmemberdking120313:34 8 Oct '07  
QuestionRe: Setting RtnType in InvokeMethod PinmemberEdgardo Anibal10:27 14 Jul '09  
AnswerRe: Setting RtnType in InvokeMethod PinmemberLeeBear3:29 21 Jul '09  
GeneralJust an Idle Question PinmemberJohnDeHope314:12 30 Aug '07  
GeneralRe: Just an Idle Question PinmemberLeeBear3:31 21 Jul '09  

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.

Permalink | Advertise | Privacy | Mobile
Web03 | 2.5.120517.1 | Last Updated 30 Aug 2007
Article Copyright 2007 by LeeBear
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid