687{
692#if defined(__REACTOS__) && defined(USE_CABINET_INF)
696#endif
698
699
701 if (pSetupData->SetupFileQueue ==
NULL)
702 {
704 if (pSetupData->ErrorRoutine)
705 pSetupData->ErrorRoutine(pSetupData);
707 }
708
709
711 {
712
714 }
715
716
718 {
719
721 }
722
723
724
725
726
727 do
728 {
730 break;
731
733 pSetupData->SourcePath.Buffer, CabinetName);
734
735#if defined(__REACTOS__) && defined(USE_CABINET_INF)
737
741
743 {
744 DPRINT(
"Cabinet %S\n", PathBuffer);
745
747 if (InfFileData ==
NULL)
748 {
750
752 if (pSetupData->ErrorRoutine)
753 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
755 }
756 }
757 else
758 {
759 DPRINT(
"Cannot open cabinet: %S.\n", PathBuffer);
761
763 if (pSetupData->ErrorRoutine)
764 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
766 }
767
769 InfFileSize,
772 pSetupData->LanguageId,
773 &ErrorLine);
774
776#else
777 {
779
780
782 if (!
ptr)
ptr = PathBuffer;
783
784
788
789
791
795 pSetupData->LanguageId,
796 &ErrorLine);
797 }
798#endif
799
801 {
803 if (pSetupData->ErrorRoutine)
804 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
806 }
807
809 {
810#if !(defined(__REACTOS__) && defined(USE_CABINET_INF))
812#endif
813
815 }
816
817#if !(defined(__REACTOS__) && defined(USE_CABINET_INF))
819#endif
821
823}
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
pSpFileQueueOpen SpFileQueueOpen
NTSTATUS CombinePaths(OUT PWSTR PathBuffer, IN SIZE_T cchPathSize, IN ULONG NumberOfPathComponents, IN ...)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
pSpInfFindNextLine SpInfFindNextLine
pSpInfFindFirstLine SpInfFindFirstLine
FORCEINLINE VOID INF_FreeData(IN PCWSTR InfData)
pSpInfOpenInfFile SpInfOpenInfFile
pSpInfCloseInfFile SpInfCloseInfFile
BOOLEAN INF_GetData(IN PINFCONTEXT Context, OUT PCWSTR *Key, OUT PCWSTR *Data)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)