public InteropRecipientCollection(RecipientCollection outer) { _count = outer.Count; if (_count == 0) { _handle = IntPtr.Zero; return; } // allocate enough memory to hold all recipients int size = Marshal.SizeOf(typeof(MapiMailMessage.MAPIHelperInterop.MapiRecipDesc)); _handle = Marshal.AllocHGlobal(_count * size); // place all interop recipients into the memory just allocated int ptr = (int)_handle; foreach (Recipient native in outer) { MapiMailMessage.MAPIHelperInterop.MapiRecipDesc interop = native.GetInteropRepresentation(); // stick it in the memory block Marshal.StructureToPtr(interop, (IntPtr)ptr, false); ptr += size; } }
public MapiMailMessage() { _files = new ArrayList(); _recipientCollection = new RecipientCollection(); _manualResetEvent = new ManualResetEvent(false); }