Example #1
0
        public SafeIUnknownRef CreateRef()
        {
            Marshal.AddRef(base.handle);
            SafeIUnknownRef ref1 = new SafeIUnknownRef();

            ref1.SetHandle(base.handle);
            return(ref1);
        }
Example #2
0
        public static SafeIUnknownRef AddRef(IntPtr pObject)
        {
            Marshal.AddRef(pObject);
            SafeIUnknownRef ref1 = new SafeIUnknownRef();

            ref1.SetHandle(pObject);
            return(ref1);
        }
Example #3
0
        public static SafeIUnknownRef QueryInterface(IntPtr pObject, ref Guid iid)
        {
            IntPtr ptr;

            ExceptionFactory.ThrowOnError(Marshal.QueryInterface(pObject, ref iid, out ptr), null, null);
            SafeIUnknownRef ref1 = new SafeIUnknownRef();

            ref1.SetHandle(ptr);
            return(ref1);
        }
Example #4
0
        public bool TryQueryInterfaceNative(Guid iid, out SafeIUnknownRef newIUnknownRef)
        {
            IntPtr ptr;

            if (Marshal.QueryInterface(base.handle, ref iid, out ptr) >= 0)
            {
                newIUnknownRef = new SafeIUnknownRef(ptr, true);
                return(true);
            }
            newIUnknownRef = null;
            return(false);
        }