679{
684#if defined(__REACTOS__) && defined(USE_CABINET_INF)
688#endif
690
691
693 if (pSetupData->SetupFileQueue ==
NULL)
694 {
696 if (pSetupData->ErrorRoutine)
697 pSetupData->ErrorRoutine(pSetupData);
699 }
700
701
703 {
704
706 }
707
708
710 {
711
713 }
714
715
716
717
718
719 do
720 {
722 break;
723
725 pSetupData->SourcePath.Buffer, CabinetName);
726
727#if defined(__REACTOS__) && defined(USE_CABINET_INF)
729
733
735 {
736 DPRINT(
"Cabinet %S\n", PathBuffer);
737
739 if (InfFileData ==
NULL)
740 {
742
744 if (pSetupData->ErrorRoutine)
745 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
747 }
748 }
749 else
750 {
751 DPRINT(
"Cannot open cabinet: %S.\n", PathBuffer);
753
755 if (pSetupData->ErrorRoutine)
756 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
758 }
759
761 InfFileSize,
764 pSetupData->LanguageId,
765 &ErrorLine);
766
768#else
769 {
771
772
774 if (!
ptr)
ptr = PathBuffer;
775
776
780
781
783
787 pSetupData->LanguageId,
788 &ErrorLine);
789 }
790#endif
791
793 {
795 if (pSetupData->ErrorRoutine)
796 pSetupData->ErrorRoutine(pSetupData, PathBuffer);
798 }
799
801 {
802#if !(defined(__REACTOS__) && defined(USE_CABINET_INF))
804#endif
805
807 }
808
809#if !(defined(__REACTOS__) && defined(USE_CABINET_INF))
811#endif
813
815}
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)