@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm @SystemRuntimeInteropServicesDllImportAttribute=http://msdn2.microsoft.com/library/System.Runtime.InteropServices.DllImportAttribute.aspx Summary: Retrieves the ProgID for a given CLSID. !!!!C# Signature: [DllImport("ole32.dll")] static extern int ProgIDFromCLSID([In] ref Guid clsid, [MarshalAs(UnmanagedType.LPWStr)] out string lplpszProgID); !!!!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 string ProgIDFromCLSID([In()]ref Guid clsid); !!!!C# Sample Code: using System.Diagnostics; using System.Runtime.Interop; ''PreserveSig=true'' class Program { [DllImport("ole32.dll")] static extern int ProgIDFromCLSID([In()]ref Guid clsid, [MarshalAs(UnmanagedType.LPWStr)]out string lplpszProgID); [STAThread()] static void Main(string[] args) { Guid g = new Guid("88D969C0-F192-11D4-A65F-0040963251E5"); // MSXML 4.0 DOM. string progId; int result = ProgIDFromCLSID(ref g, out progId); Debug.Assert(result == 0); Debug.Assert(progId == "Msxml2.DOMDocument.4.0"); } } ''PreserveSig=false'' class Program { [DllImport("ole32.dll", CharSet=CharSet.Unicode, PreserveSig=false)] static extern string ProgIDFromCLSID([In()]ref Guid clsid); [STAThread()] static void Main(string[] args) { Guid g = new Guid("88D969C0-F192-11D4-A65F-0040963251E5"); // MSXML 4.0 DOM. string progId = ProgIDFromCLSID(ref g); Debug.Assert(progId == "Msxml2.DOMDocument.4.0"); } } !!!!Alternative Managed API: Do you know one? Please contribute it! Documentation: ProgIDFromCLSID@msdn on MSDN
Edit ole32.ProgIDFromC...
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.