When to call close()?

I want to use some DLL methods multiple times. For me it is unclear if I should leave a library open and declare the method only once or I should directly close the library after using the method and open it again for the next call. It's also interesting to know what happends when I forget to close the library when my application gets closed. Will it be closed automatically? Is there a risk of memory leaks? These information might be given in the documentation too.

Referencing out arguments

Is it possible to rerence values that are given as out arguments to a DLL method? eg: 

void getDimensions(in string file, out long width, out long height);

I want to receive the values from width and height. How can I do that? When using a XPCOM wrapper I passed an object for the width and height arguments and read the .value property of that object afterwards.

The current limitations are not clear to me. They should be mentioned explicitly.