Что нового

Пользовательская функция WIMGAPI UDF. Прогресс бар для _WIM_ApplyImage

Gena

Новичок
Сообщения
2
Репутация
0
Здравствуйте.
Есть пользовательская функция WIMGAPI UDF
В неё включена функция _WIM_ApplyImage. По аналогии с функцией Func Extract($sWimFile, $iImageIndex, $sFilePath, $sExtractTo) я написал Func Apply($sWimFile, $iImageIndex, $Path)

Код:
Func Apply($sWimFile, $iImageIndex, $Path)

	; load .wim file with read access
    $hWim = _WIM_CreateFile($sWimFile, $WIM_GENERIC_READ, $WIM_OPEN_EXISTING, 0, 0, 0)

    If $hWim = 0 Then
        MsgBox(48, "Apply", "Error: Failed to load image. (" & $hWim & "," & @error & "," & @extended & ")")
        Cleanup()
        Exit (252)
    EndIf

	; set our temp path
    $aResult = _WIM_SetTemporaryPath($hWim, @TempDir)

	; load the image index
    $hImage = _WIM_LoadImage($hWim, $iImageIndex)

	; apply the image
    $aResult = _WIM_ApplyImage($hImage, $Path, 0)
	    If $aResult = 0 Then MsgBox(48, "Apply", "Error: Failed to apply image. Make sure your path exists! (" & $aResult & "," & @error & "," & @extended & ")")
	Cleanup() ; free resources

EndFunc   ;==>Apply


Однако приделать к ней Progress bar как у функции Func Capture($Path, $sWimFile, $sImageName, $sImageDesc, $Compress) я не могу, так как не понимаю работу функциий DllCallbackRegister и _WIM_RegisterMessageCallback. Если не сложно, подскажите пожалуйста, как сделать прогресс бар к функции _WIM_ApplyImage. Спасибо.
 
Автор
G

Gena

Новичок
Сообщения
2
Репутация
0
Ответ получен. В текущей реализации AutoIt получить $WIM_MSG_PROGRESS из _WIM_ApplyImage невозможно в связи с тем, что используемая функция apply из wimgapi.dll многопоточная.
 
Верх