688{
693#if defined(__REACTOS__) && defined(USE_CABINET_INF)
697#endif
699
700
702 if (pSetupData->SetupFileQueue ==
NULL)
703 {
705 if (pSetupData->ErrorRoutine)
706 pSetupData->ErrorRoutine(pSetupData);
708 }
709
710
712 {
713
715 }
716
717
719 {
720
722 }
723
724
725
726
727
728 do
729 {
731 break;
732
734 pSetupData->SourcePath.Buffer, CabinetName);
735
736#if defined(__REACTOS__) && defined(USE_CABINET_INF)
738
742
744 {
745 DPRINT(
"Cabinet %S\n", PathBuffer);
746
748 if (InfFileData ==
NULL)
749 {
751
753 if (pSetupData->ErrorRoutine)
754 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
756 }
757 }
758 else
759 {
760 DPRINT(
"Cannot open cabinet: %S.\n", PathBuffer);
762
764 if (pSetupData->ErrorRoutine)
765 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
767 }
768
770 InfFileSize,
773 pSetupData->LanguageId,
774 &ErrorLine);
775
777#else
778 {
780
781
783 if (!
ptr)
ptr = PathBuffer;
784
785
789
790
792
796 pSetupData->LanguageId,
797 &ErrorLine);
798 }
799#endif
800
802 {
804 if (pSetupData->ErrorRoutine)
805 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
807 }
808
810 {
811#if !(defined(__REACTOS__) && defined(USE_CABINET_INF))
813#endif
814
816 }
817
818#if !(defined(__REACTOS__) && defined(USE_CABINET_INF))
820#endif
822
824}
BOOLEAN PrepareCopyInfFile(IN OUT PUSETUP_DATA pSetupData, IN HINF InfFile, IN PCWSTR SourceCabinet OPTIONAL)
#define CAB_STATUS_SUCCESS
HINF WINAPI INF_OpenBufferedFileA(IN PSTR FileBuffer, IN ULONG FileSize, IN PCSTR InfClass, IN DWORD InfStyle, IN LCID LocaleId, OUT PUINT ErrorLine)
ULONG CabinetOpen(IN OUT PCABINET_CONTEXT CabinetContext)
PVOID CabinetGetCabinetReservedArea(IN PCABINET_CONTEXT CabinetContext, OUT PULONG Size)
VOID CabinetSetEventHandlers(IN PCABINET_CONTEXT CabinetContext, IN PCABINET_OVERWRITE Overwrite, IN PCABINET_EXTRACT Extract, IN PCABINET_DISK_CHANGE DiskChange, IN PCABINET_CREATE_FILE CreateFile)
VOID CabinetInitialize(IN OUT PCABINET_CONTEXT CabinetContext)
VOID CabinetCleanup(IN OUT PCABINET_CONTEXT CabinetContext)
VOID CabinetSetCabinetName(IN PCABINET_CONTEXT CabinetContext, IN PCWSTR FileName)
#define INVALID_HANDLE_VALUE
@ ERROR_INVALID_CABINET_INF
NTSTATUS CombinePaths(OUT PWSTR PathBuffer, IN SIZE_T cchPathSize, IN ULONG NumberOfPathComponents, IN ...)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define SpInfFindNextLine
FORCEINLINE VOID INF_FreeData(IN PCWSTR InfData)
#define SpInfCloseInfFile
#define SpInfFindFirstLine
BOOLEAN INF_GetData(IN PINFCONTEXT Context, OUT PCWSTR *Key, OUT PCWSTR *Data)