public unsafe static IntPtr FromUri (Uri managed_uri)
{
IntPtr uri = Marshal.AllocHGlobal (sizeof (UnmanagedUri));
UnmanagedUri *uuri = (UnmanagedUri*)uri;
uuri->scheme = IntPtr.Zero;
uuri->user = IntPtr.Zero;
uuri->auth = IntPtr.Zero;
uuri->passwd = IntPtr.Zero;
uuri->host = IntPtr.Zero;
uuri->path = IntPtr.Zero;
uuri->_params = IntPtr.Zero;
uuri->query = IntPtr.Zero;
uuri->fragment = IntPtr.Zero;
uuri->originalString = IntPtr.Zero;
NativeMethods.uri_parse (uri, managed_uri.OriginalString, false);
uuri->isAbsolute = managed_uri.IsAbsoluteUri;
return uri;
}
}