Example #1
0
        internal static void get_localized_string(IntPtr gcHandlePtr, out int __retval, int string_id, out IntPtr string_str, out int string_length, out IntPtr string_gc_handle)
        {
            var self = (CfxResourceBundleHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                __retval         = default(int);
                string_str       = IntPtr.Zero;
                string_length    = 0;
                string_gc_handle = IntPtr.Zero;
                return;
            }
            var e = new CfxGetLocalizedStringEventArgs(string_id);

            self.m_GetLocalizedString?.Invoke(self, e);
            e.m_isInvalid = true;
            if (e.m_string_wrapped != null && e.m_string_wrapped.Length > 0)
            {
                var string_pinned = new PinnedString(e.m_string_wrapped);
                string_str       = string_pinned.Obj.PinnedPtr;
                string_length    = string_pinned.Length;
                string_gc_handle = string_pinned.Obj.GCHandlePtr();
            }
            else
            {
                string_str       = IntPtr.Zero;
                string_length    = 0;
                string_gc_handle = IntPtr.Zero;
            }
            __retval = e.m_returnValue ? 1 : 0;
        }
        internal static void get_localized_string(IntPtr gcHandlePtr, out int __retval, int string_id, ref IntPtr string_str, ref int string_length)
        {
            var self = (CfxResourceBundleHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null)
            {
                __retval = default(int);
                return;
            }
            var e            = new CfxGetLocalizedStringEventArgs(string_id, string_str, string_length);
            var eventHandler = self.m_GetLocalizedString;

            if (eventHandler != null)
            {
                eventHandler(self, e);
            }
            e.m_isInvalid = true;
            if (e.m_string_changed)
            {
                var string_pinned = new PinnedString(e.m_string_wrapped);
                string_str    = string_pinned.Obj.PinnedPtr;
                string_length = string_pinned.Length;
            }
            __retval = e.m_returnValue ? 1 : 0;
        }
        internal static void EventCall(object sender, CfxGetLocalizedStringEventArgs e)
        {
            var call = new CfxGetLocalizedStringBrowserProcessCall();

            call.sender      = RemoteProxy.Wrap((CfxBase)sender);
            call.eventArgsId = AddEventArgs(e);
            call.RequestExecution(RemoteClient.connection);
            RemoveEventArgs(call.eventArgsId);
        }