Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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));
        }