Я пытаюсь получить исходные местоположения из установленных продуктов MSI с помощью API-вызова MsiSourceListEnumSources.
Я всегда получаю возврат инвалидного_параметра и не могу этого понять.
Я пытаюсь получить исходные местоположения из установленных продуктов MSI с помощью API-вызова MsiSourceListEnumSources. Я всегда получаю возврат инвалидного_параметра и не могу этого понять.[code][DllImport(MSI_LIB, CharSet = CharSet.Auto)] [return: MarshalAs(UnmanagedType.U4)] internal static extern MsiError MsiSourceListEnumSources( string szProductOrPatchCode, string szUserSid, MsiInstallContext dwContext, MsiCode dwOptions, int dwIndex, [Out] StringBuilder szSource, ref int pcchSource);
[Flags] public enum MsiCode : int { MSICODE_PRODUCT = 0, MSISOURCETYPE_NETWORK = 1, MSISOURCETYPE_URL = 2 }
var productCode = "{E636F802-3504-4DE0-92AD-2A47138974FA}"; var counter = 0; int MAX_PATH = 260; var strOutPut = new StringBuilder(MAX_PATH); int sizeOf = MAX_PATH; string EveryOne = "s-1-1-0"; string sid = UserPrincipal.Current.Sid.ToString();
var success = MsiInterop.MsiSourceListEnumSources( productCode, null, MsiInstallContext.MsiinstallcontextMachine , MsiCode.MSICODE_PRODUCT , counter, strOutPut, ref sizeOf ); [/code] Не могу понять, что делаю не так, перепробовал сотню разных комбинаций.