2 * PROJECT: ReactOS Applications Manager
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/applications/rapps/unattended.cpp
5 * PURPOSE: Functions to parse command-line flags and process them
6 * PROGRAMMERS: Alexander Shaposhnikov (chaez.san@gmail.com)
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 // Setup key - single app expected
29 // TODO: use DB filenames as names because they're shorter
31 ATL::CSimpleArray
<ATL::CStringW
> arrNames
;
32 if (!StrCmpW(argv
[0], CMD_KEY_INSTALL
))
34 for (INT i
= 1; i
< argc
; ++i
)
36 arrNames
.Add(argv
[i
]);
40 if (!StrCmpW(argv
[0], CMD_KEY_SETUP
))
42 HINF InfHandle
= SetupOpenInfFileW(argv
[1], NULL
, INF_STYLE_WIN4
, NULL
);
43 if (InfHandle
== INVALID_HANDLE_VALUE
)
49 if (SetupFindFirstLineW(InfHandle
, L
"RAPPS", L
"Install", &Context
))
51 WCHAR szName
[MAX_PATH
];
54 if (SetupGetStringFieldW(&Context
, 1, szName
, MAX_PATH
, NULL
))
58 } while (SetupFindNextLine(&Context
, &Context
));
60 SetupCloseInfFile(InfHandle
);
69 apps
.Enum(ENUM_ALL_AVAILABLE
, NULL
);
71 ATL::CSimpleArray
<CAvailableApplicationInfo
*> arrAppInfo
= apps
.FindInfoList(arrNames
);
72 if (arrAppInfo
.GetSize() > 0)
74 CDownloadManager::DownloadListOfApplications(arrAppInfo
, TRUE
);