Search code examples
c#comcom-interop

Creating IStream object in C#


I'm writing a project and working with another party DLL.

Function from their DLL wants an IStream object to save result, but I can't understand how to create an IStream object.

Can anyone help me with my problem?


Solution

  • You don't create IStream object, because obviously it's an interface. You should rather implement this interface and pass your object. Or simply use an object that already implements it, if such object exists.

    Already given answer for a similar question gives a nice example how to use IStream interface in C#.

    Does a wrapper class for a COM interop IStream already exist?

    Correction: This, however, works only if you need to use already an existing IStream inside your app, not when you need to create and pass an IStream elsewhere. For that task, see this for refence how to do that:

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa380034(v=vs.85).aspx

    And here is an example from Microsoft (used for XmlLite, not sure if it works for you)

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms752876(v=vs.85).aspx

    Or maybe this example, already posted by Marcus: http://hl7connect.blogspot.sk/2010/04/c-implementation-of-istream.html

    This last link shows how to use any Stream to implement the IStream interface.