在vb.net中调用WIMGAPI.DLL
WIMExportImage 没有问题
Private Declare Function WIMExportImage Lib "wimgapi.dll" (ByVal hImage As IntPtr, ByVal hWim As IntPtr, ByVal dwApplyFlags As Integer) As Boolean
Private Declare Auto Function WIMSetTemporaryPath Lib "wimgapi.dll" (ByVal hWnd As IntPtr, <MarshalAs(UnmanagedType.LPWStr)> ByVal TemporaryPath As String) As Boolean
Public Sub S_ExportImage(ByVal OriginalWIm As String, ByVal NewWIM As String, ByVal sIndex As Integer, ByVal Temp As String)
Dim s As IntPtr = WIMCreateFile(OriginalWIm, WIM_GENERIC_READ, WIM_OPEN_EXISTING, WIM_FLAG_VERIFY, WIM_COMPRESS_NONE, WIM_OPENED_EXISTING)
Dim t As IntPtr = WIMCreateFile(NewWIM, WIM_GENERIC_WRITE, WIM_OPEN_ALWAYS, WIM_FLAG_VERIFY, WIM_COMPRESS_XPRESS, WIM_CREATED_NEW)
WIMSetTemporaryPath(t, Temp)
WIMSetTemporaryPath(s, Temp)
Dim si As IntPtr = WIMLoadImage(s, sIndex)
WIMExportImage(si, t, 0)
WIMCloseHandle(si)
WIMCloseHandle(t)
WIMCloseHandle(s)
DeleteFolder(Temp, False)
End Sub
但是WIMApplyImage 就不成功
Private Declare Function WIMApplyImage Lib "WIMGAPI.DLL" (ByVal hImage As IntPtr, ByVal lpszPath As String, ByVal dwApplyFlags As Integer) As Boolean
Public Sub CWIM_WIMApplyImage(ByVal WimImg As String, ByVal Folder As String, ByVal sIndex As Integer)
Dim s As IntPtr = WIMCreateFile(WimImg, WIM_GENERIC_READ, WIM_OPEN_EXISTING, WIM_FLAG_VERIFY, WIM_COMPRESS_NONE, WIM_OPENED_EXISTING)
WIMSetTemporaryPath(s, "C:\Windows\Temp")
Dim si As IntPtr = WIMLoadImage(s, sIndex)
WIMApplyImage(si, Folder, sIndex)
WIMCloseHandle(si)
End Sub
不知道是哪里有错误?本人初学VB.NET,麻烦大神们帮忙看看!谢谢!