@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm @IIDFromString=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/cmf_d2l_6b1j.asp @SystemGuid=http://msdn2.microsoft.com/library/System.Guid.aspx @SystemRuntimeInteropServicesDllImportAttribute=http://msdn2.microsoft.com/library/System.Runtime.InteropServices.DllImportAttribute.aspx Summary: Converts a string into an interface identifier (IID). !!!!C# Signature: [DllImport("ole32.dll")] static extern int IIDFromString([MarshalAs(UnmanagedType.LPWStr)] string lpsz, out Guid lpiid); !!!!User-Defined Types: None. !!!!Notes: None. !!!!Tips & Tricks: I find it better to turn off PreserveSig@SystemRuntimeInteropServicesDllImportAttribute for methods that return an HRESULT and have a trailing out parameter, providing that the HRESULT does not have more that one success code (typically S_OK only). This results in a slightly cleaner syntax where the out parameter becomes the return value and a failing HRESULT results in an exception. [DllImport("ole32.dll", CharSet=CharSet.Unicode, PreserveSig=false)] static extern Guid IIDFromString(string lpsz); !!!!C# Sample Code: using System.Diagnostics; using System.Runtime.Interop; ''PreserveSig=true'' class Program { [DllImport("ole32.dll", CharSet=CharSet.Unicode)] static extern int IIDFromString(string lpsz, out Guid lpiid); [STAThread()] static void Main(string[] args) { Guid g; string iid = "{00000000-0000-0000-C000-000000000046}"; // IUnknown int result = IIDFromString(iid, out g); Debug.Assert(result == 0); Debug.Assert(g.ToString("B") == "{00000000-0000-0000-C000-000000000046}"); } } ''PreserveSig=false'' class Program { [DllImport("ole32.dll", CharSet=CharSet.Unicode, PreserveSig=false)] static extern Guid IIDFromString(string lpsz); [STAThread()] static void Main(string[] args) { string iid = "{00000000-0000-0000-C000-000000000046}"; // IUnknown Guid g = IIDFromString(iid); Debug.Assert(g.ToString("B") == "{00000000-0000-0000-C000-000000000046}"); } } !!!!Alternative Managed API: System.Guid@SystemGuid - overloaded constructor that takes a string. Documentation: IIDFromString@IIDFromString on MSDN
Edit ole32.IIDFromString
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.