Я всегда получаю возврат инвалидного_параметра и не могу этого понять.
Код: Выделить всё
[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 MsiInstallContext :int
{
MsiinstallcontextNone = 0,
MsiinstallcontextUsermanaged = 1,
MsiinstallcontextUserunmanaged = 2,
MsiinstallcontextMachine = 4,
MsiinstallcontextAll =
(MsiinstallcontextUsermanaged | MsiinstallcontextUserunmanaged | MsiinstallcontextMachine),
MsiInstallContext_AlluserManaged = 8
}
[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 );
Подробнее здесь: https://stackoverflow.com/questions/494 ... op-c-sharp