コード例 #1
0
ファイル: Mailer.cs プロジェクト: kav-it/SharpLib
        private IntPtr GetAttachments(out int fileCount)
        {
            fileCount = 0;
            if (_attachments == null)
            {
                return(IntPtr.Zero);
            }

            if ((_attachments.Count <= 0) || (_attachments.Count > MAX_ATTACHMENTS))
            {
                return(IntPtr.Zero);
            }

            int    size   = Marshal.SizeOf(typeof(MapiFileDesc));
            IntPtr intPtr = Marshal.AllocHGlobal(_attachments.Count * size);

            MapiFileDesc mapiFileDesc = new MapiFileDesc();

            mapiFileDesc.Position = -1;
            int ptr = (int)intPtr;

            foreach (String strAttachment in _attachments)
            {
                mapiFileDesc.Name = Path.GetFileName(strAttachment);
                mapiFileDesc.Path = strAttachment;
                Marshal.StructureToPtr(mapiFileDesc, (IntPtr)ptr, false);
                ptr += size;
            }

            fileCount = _attachments.Count;
            return(intPtr);
        }
コード例 #2
0
ファイル: Mailer.cs プロジェクト: kav-it/SharpLib
        private IntPtr GetAttachments(out int fileCount)
        {
            fileCount = 0;
            if (_attachments == null)
                return IntPtr.Zero;

            if ((_attachments.Count <= 0) || (_attachments.Count > MAX_ATTACHMENTS))
                return IntPtr.Zero;

            int size = Marshal.SizeOf(typeof(MapiFileDesc));
            IntPtr intPtr = Marshal.AllocHGlobal(_attachments.Count * size);

            MapiFileDesc mapiFileDesc = new MapiFileDesc();
            mapiFileDesc.Position = -1;
            int ptr = (int)intPtr;

            foreach (String strAttachment in _attachments)
            {
                mapiFileDesc.Name = Path.GetFileName(strAttachment);
                mapiFileDesc.Path = strAttachment;
                Marshal.StructureToPtr(mapiFileDesc, (IntPtr)ptr, false);
                ptr += size;
            }

            fileCount = _attachments.Count;
            return intPtr;
        }