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

Lotus Notes COM Class Wrapper for .NET

, 30 Aug 2007
Rate this:
Please Sign up or sign in to vote.
This is just a VB.NET class wrapper for the Lotus Notes interfaces.


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.


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.


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


About the Author

Systems Engineer PRGX
United States United States
No Biography provided

Comments and Discussions

QuestionIt is possible to use this code to obtain the number of unread mails? PinmemberMember 922567913-Apr-13 4:00 
AnswerRe: It is possible to use this code to obtain the number of unread mails? PinmemberLeeBear15-Apr-13 2:23 
QuestionImplementing for NotesUIWorkspace PinmemberLesZ21-Dec-10 9:52 
AnswerRe: Implementing for NotesUIWorkspace PinmemberLeeBear3-Jan-11 5:38 
Questionhow would you use this to read a series of calendar events? PinmemberPaul E.22-Sep-10 11:21 
AnswerRe: how would you use this to read a series of calendar events? PinmemberLeeBear23-Sep-10 3:01 
QuestionFailed using nDB.AllDocuments.GetNextDocument method PinmemberEdgardo Anibal14-Jul-09 9:33 
AnswerRe: Failed using nDB.AllDocuments.GetNextDocument method PinmemberLeeBear21-Jul-09 3:18 
QuestionSetting RtnType in InvokeMethod Pinmemberdking12038-Oct-07 13:34 
QuestionRe: Setting RtnType in InvokeMethod PinmemberEdgardo Anibal14-Jul-09 10:27 
AnswerRe: Setting RtnType in InvokeMethod PinmemberLeeBear21-Jul-09 3:29 
GeneralJust an Idle Question PinmemberJohnDeHope330-Aug-07 14:12 
GeneralRe: Just an Idle Question PinmemberLeeBear21-Jul-09 3:31 

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.140827.1 | Last Updated 30 Aug 2007
Article Copyright 2007 by LeeBear
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid