Public Class WimgAPI
'Option Explicit
Public Declare Function WIMApplyImage Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByVal lpszPath As String, ByVal dzApplyFlags As Long) As Boolean
Public Declare Function WIMCaptureImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPath As String, ByVal dwCaptureFlags As Long) As Boolean
Public Declare Function WIMCloseHandle Lib "WIMGAPI.DLL" (ByVal hObject As Long) As Boolean
Public Declare Function WIMCreateFile Lib "WIMGAPI.DLL" (ByVal lpszWimPath As String, ByVal dwDesiredAccess As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwCompressionType As Long, ByRef CreationResult As Boolean) As Long
Public Declare Function WIMMountImage Lib "WIMGAPI.DLL" (ByVal lpszMountPath As String, ByVal lpszWimFileName As String, ByVal dwImageIndex As Long, Optional ByVal lpszTempPath As String = "") As Boolean
Public Declare Function WIMDeleteImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal dwApplyFlags As Integer) As Boolean
Public Declare Function WIMExportImage Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByVal hwim As Long, ByVal dwApplyFlags As Integer) As Boolean
Public Declare Function WIMGetImageCount Lib "WIMGAPI.DLL" (ByVal hwim As Long) As Integer
Public Declare Function WIMGetMessagecallbackCount Lib "WIMGAPI.DLL" (ByVal hwim As Long) As Integer
Public Declare Function WIMLoadImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal dwImageIndex As Integer) As Long
Public Declare Function WIMSetBootImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal dwImageIndex As Integer) As Boolean
Public Declare Function WIMSetReferenceFile Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPath As String, ByVal dwFlags As Integer) As Boolean
Public Declare Function WIMSplitFile Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPartPath As String, ByRef pliPartSize As Integer, ByVal dwFlags As Integer) As Boolean
Public Declare Function WIMUnmountImage Lib "WIMGAPI.DLL" (ByVal lpszMountPath As String, ByVal lpszWimFileName As String, ByVal dwImageIndex As Integer, ByVal bCommitChanges As Boolean) As Boolean
Public Declare Function WIMSetTemporaryPath Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPath As String) As Boolean
Public Declare Function WIMGetImageInformation Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByRef lplpvImageInfo As Long, ByRef lpcbImageInfo As Integer) As Boolean
Public Declare Function WIMSetImageInformation Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByVal lpvImageInfo As Long, ByVal cbImageInfo As Integer) As Boolean
Public Declare Function WIMMessageCallback Lib "WIMGAPI.DLL" (ByVal dwMessageId As Integer, ByVal wParam As Long, ByVal lParam As Long, ByVal lpvUserData As Long) As Integer
Public Declare Function WIMCopyFile Lib "WIMGAPI.DLL" (ByVal lpszExistingFileName As String, ByVal lpszNewFileName As String, ByVal lpProgressRoutine As Object, ByVal lpvData As Long, ByVal pbCancel As Boolean, ByVal dwCopyFlags As Integer) As Boolean
Public Const WIM_GENERIC_READ As Long = &H80000000
Public Const WIM_GENERIC_WRITE As Long = &H40000000
Public Const WIM_Create_NEW As Byte = &H1
Public Const WIM_Create_ALWAYS As Byte = &H2
Public Const WIM_OPEN_EXISTING As Byte = &H3
Public Const WIM_OPEN_ALWAYS As Byte = &H4
Public Const WIM_COMPRESS_NONE As Byte = 0
Public Const WIM_COMPRESS_XPRESS As Byte = 1
Public Const WIM_COMPRESS_LZX As Byte = 2
Public Const WIM_CreateD_NEW As Byte = 0
Public Const WIM_OPENED_EXISTING As Byte = 1
Public Const WIM_FLAG_RESERVED As Byte = &H1
Public Const WIM_FLAG_VERIFY As Byte = &H2
Public Const WIM_FLAG_INDEX As Byte = &H4
Public Const WIM_FLAG_NO_APPLY As Byte = &H8
Public Const WIM_FLAG_NO_DIRACL As Byte = &H10
Public Const WIM_FLAG_NO_FILEACL As Byte = &H20
Public Const WIM_FLAG_SHARE_WRITE As Byte = &H40
Public Const WIM_FLAG_FILEINFO As Byte = &H80
Public Const WIM_FLAG_NO_RP_FIX As Integer = &H100
Public Const WIM_REFERENCE_APPEND As Long = &H10000
Public Const WIM_REFERENCE_REPLACE As Long = &H20000
Public Const WIM_EXPORT_ALLOW_DUPLICATES As Byte = &H1
Public Const WIM_EXPORT_ONLY_RESOURCES As Byte = &H2
Public Const WIM_EXPORT_ONLY_METADATA As Byte = &H4
Public Const INVALID_CALLBACK_VALUE As Long = &HFFFFFFFF
Public Const WIM_COPY_FILE_RETRY As Long = &H1000000
Public Const WIM_MSG_SUCCESS As Byte = 0&
Public Const WIM_MSG_DONE As Long = &HFFFFFFF0
Public Const WIM_MSG_SKIP_ERROR As Long = &HFFFFFFFE
Public Const WIM_MSG_ABORT_IMAGE As Long = &HFFFFFFFF
Public Const WIM_ATTRIBUTE_NORMAL As Byte = &H0
Public Const WIM_ATTRIBUTE_RESOURCE_ONLY As Byte = &H1
Public Const WIM_ATTRIBUTE_METADATA_ONLY As Byte = &H2
Public Const WIM_ATTRIBUTE_VERIFY_DATA As Byte = &H4
Public Const WIM_ATTRIBUTE_RP_FIX As Byte = &H8
Public Const WIM_ATTRIBUTE_SPANNED As Byte = &H10
Public Const WIM_ATTRIBUTE_READONLY As Byte = &H20
'Delete
'lHandle = WIMCreateFile(ConvertToUniCode("Path_To_Wim"), WIM_GENERIC_WRITE, WIM_OPEN_EXISTING, WIM_FLAG_SHARE_WRITE, WIM_COMPRESS_XPRESS, 0)
'WIMSetTemporaryPath(lHandle, ConvertToUniCode(oWSHShell.ExpandEnvironmentStrings("%Temp%")))
'WIMDeleteImage(lHandle, cmbImageNumber.Text)
'WIMCloseHandle (lHandle)
'Mount
'WIMMountImage(ConvertToUniCode("Path_To_Mount"), ConvertToUniCode("Path_To_Wim"), ImageNumber, ConvertToUniCode("Path_To_Temp"))
'Unmount
'WIMUnmountImage(ConvertToUniCode("Path_To_Mount"), ConvertToUniCode("Path_To_Wim"), ImageNumber, True/FalseSaveChanges))
'Get Number of Images in WIM file
'lHandle = WIMCreateFile(ConvertToUniCode("Path_To_Wim"), WIM_GENERIC_WRITE, WIM_OPEN_EXISTING, WIM_FLAG_SHARE_WRITE, WIM_COMPRESS_XPRESS, 0)
'iNumberOfImages = WIMGetImageCount(lHandle)
'WIMCloseHandle (lHandle)
End Class
无标题.jpg (16.17 KB, 下载次数: 53)
原帖由 neo4026 于 2009-6-28 17:16 发表
MWim.VB:Imports System.Runtime.InteropServices
Imports System.IO
Module MWim
Public Const WIM_GENERIC_READ As Long = &H80000000
Public Const WIM_GENERIC_WRITE As Long = &H40000000
...
原帖由 lxl1638 于 2009-6-28 18:25 发表
小子进步神速啊,搞起VB来了?
不过VB.NET做出来的东东是不是要NET XX才能运行?如果这样大多数PE1.X都得加这个NET组件了。
原帖由 netwinxp 于 2009-6-28 20:21 发表
VB编的程序个头太大,而且支持库更是繁琐,特别是.net的VB,没有看到多少增加的亮点,相反资源占用和CPU时间消耗呈指数级上升。
如果你要性能和自由推荐masm32,如果要性能和可读性VC和Dephi不错,如果非用VB不 ...
原帖由 netwinxp 于 2009-6-28 21:05 发表
.net与非.net的区别是可以编译出居于.net framework的中间代码的程序(个人认为这块显然没有Java的通用性高),除非你编写C/S架构的咚咚,否则除了增加资源消耗之外看不出有什么根本性的变化。
***只要学过Basic ...
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) | Powered by Discuz! X3.3 |