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)
10 #include "unattended.h"
16 BOOL
UseCmdParameters(LPWSTR lpCmdLine
)
19 LPWSTR
* argv
= CommandLineToArgvW(lpCmdLine
, &argc
);
21 if (!argv
|| argc
< MIN_ARGS
)
26 // TODO: use DB filenames as names because they're shorter
27 ATL::CSimpleArray
<ATL::CStringW
> arrNames
;
28 if (!StrCmpW(argv
[0], CMD_KEY_INSTALL
))
30 for (INT i
= 1; i
< argc
; ++i
)
32 arrNames
.Add(argv
[i
]);
36 if (!StrCmpW(argv
[0], CMD_KEY_SETUP
))
38 HINF InfHandle
= SetupOpenInfFileW(argv
[1], NULL
, INF_STYLE_WIN4
, NULL
);
39 if (InfHandle
== INVALID_HANDLE_VALUE
)
45 if (SetupFindFirstLineW(InfHandle
, L
"RAPPS", L
"Install", &Context
))
47 WCHAR szName
[MAX_PATH
];
50 if (SetupGetStringFieldW(&Context
, 1, szName
, MAX_PATH
, NULL
))
54 } while (SetupFindNextLine(&Context
, &Context
));
56 SetupCloseInfFile(InfHandle
);
65 apps
.Enum(ENUM_ALL_AVAILABLE
, NULL
);
67 ATL::CSimpleArray
<CAvailableApplicationInfo
*> arrAppInfo
= apps
.FindInfoList(arrNames
);
68 if (arrAppInfo
.GetSize() > 0)
70 CDownloadManager::DownloadListOfApplications(arrAppInfo
, TRUE
);