private static void GetUILanguageCallbackInternal(ReturnCode ret, IntPtr blob, IntPtr callbackId) { UILanguage ul = new UILanguage(); // read from blob when possible if (ret == ReturnCode.SUCCESS) { // copy blob into uli UILanguageInternal uli = new UILanguageInternal(); uli = (UILanguageInternal)Marshal.PtrToStructure(blob, typeof(UILanguageInternal)); // read ul from uli ul.cultureCode = uli.cultureCode; } // read from cid GetUILanguageCallbackId cid = new GetUILanguageCallbackId(); cid = (GetUILanguageCallbackId)Marshal.PtrToStructure(callbackId, typeof(GetUILanguageCallbackId)); GetUILanguageCallbackDelegate nextCall = cid.callback; int id = cid.id; // call user provided function nextCall(ret, ul.cultureCode, id); }
public static void GetUILanguage(GetUILanguageCallbackDelegate callback) { if (!instanceCreated) { Debug.LogError("ERROR: Cannot get highlights UI language. The SDK has not been initialized."); return; } GetUILanguageCallbackId cid = new GetUILanguageCallbackId(); cid.id = GetCallbackId(); cid.callback = callback; cid.intermediateCallback = GetUILanguageCallbackInternal; IntPtr asyncOp = Marshal.AllocHGlobal(Marshal.SizeOf(cid)); try { Marshal.StructureToPtr(cid, asyncOp, false); Highlights_GetUILanguageAsync(asyncOp); } finally { Marshal.FreeHGlobal(asyncOp); } }