Jon,
>The lpcallback field requires the address of an iprintdialogcallback
>interface.
>
>Does the interface require any marshaling - I tried various attributes when
>setting lpcallback - eg MarshalAs.Interface - but none seem to work.
If you're not going to use the callback feature, you can just make it
an IntPtr or [MarshalAs(UnmanagedType.Interface)] object and set it to
IntPtr.Zero or null.
Otherwise you have to declare and implement the IPrintDialogCallback
insteface and change the struct member type to IPrintDialogCallback.
Mattias

Signature
Mattias Sjögren [MVP] mattias @ mvps.org
http://www.msjogren.net/dotnet/
Please reply only to the newsgroup.