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)
9 #include "unattended.h"
11 #include "available.h"
18 BOOL
UseCmdParameters(LPWSTR lpCmdLine
)
21 LPWSTR
* argv
= CommandLineToArgvW(lpCmdLine
, &argc
);
23 if (!argv
|| argc
< MIN_ARGS
)
28 // TODO: use DB filenames as names because they're shorter
29 ATL::CSimpleArray
<ATL::CStringW
> arrNames
;
30 if (!StrCmpW(argv
[0], CMD_KEY_INSTALL
))
32 for (INT i
= 1; i
< argc
; ++i
)
34 arrNames
.Add(argv
[i
]);
38 if (!StrCmpW(argv
[0], CMD_KEY_SETUP
))
40 HINF InfHandle
= SetupOpenInfFileW(argv
[1], NULL
, INF_STYLE_WIN4
, NULL
);
41 if (InfHandle
== INVALID_HANDLE_VALUE
)
47 if (SetupFindFirstLineW(InfHandle
, L
"RAPPS", L
"Install", &Context
))
49 WCHAR szName
[MAX_PATH
];
52 if (SetupGetStringFieldW(&Context
, 1, szName
, MAX_PATH
, NULL
))
56 } while (SetupFindNextLine(&Context
, &Context
));
58 SetupCloseInfFile(InfHandle
);
67 apps
.Enum(ENUM_ALL_AVAILABLE
, NULL
);
69 ATL::CSimpleArray
<CAvailableApplicationInfo
*> arrAppInfo
= apps
.FindInfoList(arrNames
);
70 if (arrAppInfo
.GetSize() > 0)
72 CDownloadManager::DownloadListOfApplications(arrAppInfo
, TRUE
);