/// <summary> /// Fetches the available locales. /// </summary> public int[] QueryAvailableLocales() { string methodName = "IOPCCommon.QueryAvailableLocales"; try { IOPCCommon server = BeginComCall <IOPCCommon>(methodName, true); // query for available locales. int count = 0; IntPtr pLocaleIDs = IntPtr.Zero; server.QueryAvailableLocaleIDs(out count, out pLocaleIDs); // unmarshal results. return(ComUtils.GetInt32s(ref pLocaleIDs, count, true)); } catch (Exception e) { ComCallError(methodName, e); return(null); } finally { EndComCall(methodName); } }
public void QueryAvailableLocaleIDs(out int[] p_LocalIDs) { p_LocalIDs = null; int l_Count; IntPtr l_PtrIDs; int l_HResult = m_IfCommon.QueryAvailableLocaleIDs(out l_Count, out l_PtrIDs); if (HResults.Failed(l_HResult)) { Marshal.ThrowExceptionForHR(l_HResult); } if (((int)l_PtrIDs) == 0) { return; } if (l_Count < 1) { Marshal.FreeCoTaskMem(l_PtrIDs); return; } p_LocalIDs = new int[l_Count]; Marshal.Copy(l_PtrIDs, p_LocalIDs, 0, l_Count); Marshal.FreeCoTaskMem(l_PtrIDs); }