2 * PROJECT: ReactOS Applications Manager
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * FILE: base/applications/rapps/unattended.cpp
5 * PURPOSE: Functions to parse command-line flags and process them
6 * COPYRIGHT: Copyright 2017 Alexander Shaposhnikov (sanchaez@reactos.org)
8 #include "unattended.h"
10 #include "available.h"
17 BOOL
UseCmdParameters(LPWSTR lpCmdLine
)
20 LPWSTR
* argv
= CommandLineToArgvW(lpCmdLine
, &argc
);
22 if (!argv
|| argc
< MIN_ARGS
)
27 // TODO: use DB filenames as names because they're shorter
28 ATL::CSimpleArray
<ATL::CStringW
> arrNames
;
29 if (!StrCmpW(argv
[0], CMD_KEY_INSTALL
))
31 for (INT i
= 1; i
< argc
; ++i
)
33 arrNames
.Add(argv
[i
]);
37 if (!StrCmpW(argv
[0], CMD_KEY_SETUP
))
39 HINF InfHandle
= SetupOpenInfFileW(argv
[1], NULL
, INF_STYLE_WIN4
, NULL
);
40 if (InfHandle
== INVALID_HANDLE_VALUE
)
46 if (SetupFindFirstLineW(InfHandle
, L
"RAPPS", L
"Install", &Context
))
48 WCHAR szName
[MAX_PATH
];
51 if (SetupGetStringFieldW(&Context
, 1, szName
, MAX_PATH
, NULL
))
55 } while (SetupFindNextLine(&Context
, &Context
));
57 SetupCloseInfFile(InfHandle
);
66 apps
.Enum(ENUM_ALL_AVAILABLE
, NULL
);
68 ATL::CSimpleArray
<CAvailableApplicationInfo
*> arrAppInfo
= apps
.FindInfoList(arrNames
);
69 if (arrAppInfo
.GetSize() > 0)
71 CDownloadManager::DownloadListOfApplications(arrAppInfo
, TRUE
);