public string[] SortPlugins(string[] p_strPlugins)
{
UInt32 uintStatus = 0;
string[] strSortedPlugins = p_strPlugins;
IntPtr ptrPlugins = IntPtr.Zero;
UInt32 numPlugins;
if (!String.IsNullOrEmpty(MasterlistPath))
if (!File.Exists(MasterlistPath))
UpdateMasterlist();
uintStatus = m_dlgSortPlugins(m_ptrSorterDb, out ptrPlugins, out numPlugins);
if (uintStatus == 0)
{
UInt32 uintListLength = numPlugins;
using (StringArrayManualMarshaler ammMarshaler = new StringArrayManualMarshaler("UTF8"))
uintStatus = m_dlgApplyLoadOrder(m_ptrSorterDb, ammMarshaler.MarshalManagedToNative(MarshalPluginArray(ptrPlugins, uintListLength, true)), uintListLength);
if (uintStatus == 0)
return RemoveNonExistentPlugins(MarshalPluginArray(ptrPlugins, uintListLength, false));
}
return null;
}