findmimefromdata (urlmon)
Last changed: -208.87.238.201

.
Summary
TODO - a short description

C# Signature:

[DllImport("urlmon.dll", CharSet=CharSet.Auto)]
static extern int FindMimeFromData(IntPtr pBC, IntPtr pwzUrl,byte[] pBuffer, int cbSize,
   IntPtr pwzMimeProposed,int dwMimeFlags, out IntPtr ppwzMimeOut, int dwReserved );

VB Signature:

Declare Function FindMimeFromData Lib "urlmon.dll" (TODO) As TODO

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Sample Code:

public string MimeTypeFrom(byte[] dataBytes, string mimeProposed) {
   if (dataBytes == null)
     throw new ArgumentNullException("dataBytes");
   string mimeRet = String.Empty;
   IntPtr suggestPtr = IntPtr.Zero, filePtr = IntPtr.Zero, outPtr = IntPtr.Zero;
   if (mimeProposed != null && mimeProposed.Length > 0) {
     //suggestPtr = Marshal.StringToCoTaskMemUni(mimeProposed); // for your experiments ;-)
     mimeRet = mimeProposed;
   }
   int ret = FindMimeFromData(IntPtr.Zero, IntPtr.Zero, dataBytes, dataBytes.Length, suggestPtr, 0, out outPtr, 0);
   if (ret == 0 && outPtr != IntPtr.Zero) {
     return Marshal.PtrToStringUni(outPtr);
   }
   return mimeRet;
}

// call it this way:
Trace.Write("MimeType is " + MimeTypeFrom(Encoding.ASCII.GetBytes("%PDF-"), "text/plain"));

Alternative Managed API:

Do you know one? Please contribute it!

Documentation