private static IntPtr CreateHString(String source) { IntPtr hstring; ComBase.WindowsCreateString(source, (UInt32)source.Length, out hstring); return(hstring); }
public static IntPtr GetActivationFactory(String activatableClassId, Guid iid) { IntPtr hstring = CreateHString(activatableClassId); IntPtr factory; UInt32 hr = ComBase.RoGetActivationFactory(hstring, ref iid, out factory); if (0 != hr) { String message = String.Format("RoGetActivationFactory({0}, {1}) failed with 0x{2:X}", activatableClassId, iid, hr); throw new Exception(message); } ComBase.WindowsDeleteString(hstring); return(factory); }