protected static uint ReleaseImpl(IntPtr thisObject) { ComObjectShadow shadow = ToShadow <ComObjectShadow>(thisObject); IUnknown obj = (IUnknown)shadow.Callback; return(obj.Release()); }
// 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()); }