protected static uint ReleaseImpl(IntPtr thisObject)
            {
                ComObjectShadow shadow = ToShadow <ComObjectShadow>(thisObject);
                IUnknown        obj    = (IUnknown)shadow.Callback;

                return(obj.Release());
            }
Example #2
0
        // SharpDX.IUnknown の拡張メソッド

        /// <summary>
        ///		COM オブジェクトの参照カウントを取得して返す。
        /// </summary>
        /// <param name="unknownObject">COMオブジェクト。</param>
        /// <returns>現在の参照カウントの値。</returns>
        public static int GetRefferenceCount(this IUnknown unknownObject)
        {
            try
            {
                unknownObject.AddReference();
            }
            catch (InvalidOperationException)
            {
                // すでに Dispose されている。
                return(0);
            }

            return(unknownObject.Release());
        }