Я установил Windows ADK и пытаюсь программно воспроизвести тот же вызов этой команды:
dism /apply-image /imagefile:E:\sources\install.esd /index:6 /applydir:F:\
Просматривая функции DISM API, а также непосредственно файл dismapi.h, я не нашел подходящей функции для использования, нет «DismApplyImage».
Ближайшим вариантом является DismMountImage, но для флагов нет слова «компактный».
#include
#include
#pragma comment(lib, "dismapi.lib")
int main(int argc, char *argv[])
{
DismLogLevel dwLogLevel = DismLogLevel::DismLogErrors;
HRESULT hr = DismInitialize(dwLogLevel, NULL, NULL);
DismSession session = NULL;
// dism /apply-image /imagefile:E:\sources\install.esd /index:6 /applydir:F:\ /compact"
hr = DismMountDismApplyImageImage(L"E:\sources\install.esd", L"F:\\", 6, L"", DismImageIndex, ?
/*
DismMountImage(
_In_ PCWSTR ImageFilePath,
_In_ PCWSTR MountPath,
_In_ UINT ImageIndex,
_In_opt_ PCWSTR ImageName,
_In_ DismImageIdentifier ImageIdentifier,
_In_ DWORD Flags,
_In_opt_ HANDLE CancelEvent,
_In_opt_ DISM_PROGRESS_CALLBACK Progress,
_In_opt_ PVOID UserData
);
*/
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-dism-api