public static IntPtr QueryInterface <T>(IntPtr pUnknown) { IntPtr pInterface; var iid = typeof(T).GUID; HResult.Check(Marshal.QueryInterface(pUnknown, ref iid, out pInterface)); return(pInterface); }
public static IntPtr CreateInstance <T>(string progID) { IntPtr pInterface; var clsid = CLSIDFromProgID(progID); var iid = typeof(T).GUID; HResult.Check(NativeMethods.CoCreateInstance(ref clsid, IntPtr.Zero, 1, ref iid, out pInterface)); return(pInterface); }
public static IntPtr CreateInstanceByClsid <T>(Guid clsid) { IntPtr pInterface; Guid iid = typeof(T).GUID; HResult.Check(NativeMethods.CoCreateInstance(ref clsid, IntPtr.Zero, 1, ref iid, out pInterface)); return(pInterface); }
private static Guid CLSIDFromProgID(string progID) { Guid clsid; if (!Guid.TryParseExact(progID, "B", out clsid)) { HResult.Check(NativeMethods.CLSIDFromProgID(progID, out clsid)); } return(clsid); }
public override void EnumCodeContextsOfPosition(UIntPtr sourceContext, uint offset, uint length, out IEnumDebugCodeContexts enumContexts) { var del = VTableHelpers.GetMethodDelegate <RawEnumCodeContextsOfPosition>(pActiveScriptDebug, 5); HResult.Check(del(pActiveScriptDebug, sourceContext.ToUInt64(), offset, length, out enumContexts)); }