Ejemplo n.º 1
0
        /// <summary>
        /// Return an array of string pointers to the individual fields.
        /// A zero is returned upon encountering end of sequence or error.
        /// This can be analyzed in using mapi\_error().
        /// </summary>
        /// <param name="hdl"></param>
        /// <returns></returns>
        public static string[] MapiFetchFieldArray(MapiHdl hdl)
        {
            var pptr     = CMapiLib.mapi_fetch_field_array(hdl.Ptr);
            var ptr      = Marshal.ReadIntPtr(pptr);
            var exploded = new List <string>();

            do
            {
                exploded.Add(Marshal.PtrToStringAnsi(ptr));
                pptr = new IntPtr((int)pptr + IntPtr.Size);
                ptr  = Marshal.ReadIntPtr(pptr);
            } while (ptr != IntPtr.Zero);
            return(exploded.ToArray());
        }