internal static CfxJsDialogCallback Wrap(IntPtr nativePtr) { if(nativePtr == IntPtr.Zero) return null; lock(weakCache) { var wrapper = (CfxJsDialogCallback)weakCache.Get(nativePtr); if(wrapper == null) { wrapper = new CfxJsDialogCallback(nativePtr); weakCache.Add(wrapper); } else { CfxApi.cfx_release(nativePtr); } return wrapper; } }