private static extern bool SetupIterateCabinet(string cabinetFile, uint reserved, PSP_FILE_CALLBACK callBack, uint context);
public void ExtractAll() { m_ExtractAll = true; m_ExtractFileIndex = 0; PSP_FILE_CALLBACK callback = new PSP_FILE_CALLBACK(this.CallBack); uint setupIterateCabinetAction = (uint)SetupIterateCabinetAction.Extract; if (!SetupApiWrapper.SetupIterateCabinet(this.Name, 0, callback, setupIterateCabinetAction)) { throw new Win32Exception((int)KernelApiWrapper.GetLastError()); } }