![]() |
Brauchen Sie, um die Header-Datei für Delphi WIMGAPI zu aktualisieren!
Liste der Anhänge anzeigen (Anzahl: 1)
I compared the headers vimgapi.h windows 8, windows 7 and put changes with comments. Need professional (new author) edition for updating of the header file from Serbia.
Delphi-Quellcode:
unit WIMGAPI;
interface uses Windows; const // WIMCreateFile: // WIM_GENERIC_READ = GENERIC_READ; WIM_GENERIC_WRITE = GENERIC_WRITE; WIM_GENERIC_MOUNT = GENERIC_EXECUTE; WIM_CREATE_NEW = CREATE_NEW; WIM_CREATE_ALWAYS = CREATE_ALWAYS; WIM_OPEN_EXISTING = OPEN_EXISTING; WIM_OPEN_ALWAYS = OPEN_ALWAYS; WIM_COMPRESS_NONE = 0; WIM_COMPRESS_XPRESS = 1; WIM_COMPRESS_LZX = 2; WIM_COMPRESS_LZMS = 3; // New Windows 8 WIM_CREATED_NEW = 0; WIM_OPENED_EXISTING = 1; // WIMCreateFile, WIMCaptureImage, WIMApplyImage, WIMMountImageHandle flags: // WIM_FLAG_RESERVED = $00000001; WIM_FLAG_VERIFY = $00000002; WIM_FLAG_INDEX = $00000004; WIM_FLAG_NO_APPLY = $00000008; WIM_FLAG_NO_DIRACL = $00000010; WIM_FLAG_NO_FILEACL = $00000020; WIM_FLAG_SHARE_WRITE = $00000040; WIM_FLAG_FILEINFO = $00000080; WIM_FLAG_NO_RP_FIX = $00000100; WIM_FLAG_MOUNT_READONLY = $00000200; WIM_FLAG_MOUNT_FAST = $00000400; // New Windows 8 WIM_FLAG_MOUNT_LEGACY = $00000800; // New Windows 8 // WIMGetMountedImageList flags // WIM_MOUNT_FLAG_MOUNTED = $00000001; WIM_MOUNT_FLAG_MOUNTING = $00000002; WIM_MOUNT_FLAG_REMOUNTABLE = $00000004; WIM_MOUNT_FLAG_INVALID = $00000008; WIM_MOUNT_FLAG_NO_WIM = $00000010; WIM_MOUNT_FLAG_NO_MOUNTDIR = $00000020; WIM_MOUNT_FLAG_MOUNTDIR_REPLACED = $00000040; WIM_MOUNT_FLAG_READWRITE = $00000100; // WIMCommitImageHandle flags // WIM_COMMIT_FLAG_APPEND = $00000001; // WIMSetReferenceFile // WIM_REFERENCE_APPEND = $00010000; WIM_REFERENCE_REPLACE = $00020000; // WIMExportImage // WIM_EXPORT_ALLOW_DUPLICATES = $00000001; WIM_EXPORT_ONLY_RESOURCES = $00000002; WIM_EXPORT_ONLY_METADATA = $00000004; WIM_EXPORT_VERIFY_SOURCE = $00000008; // New Windows 8 WIM_EXPORT_VERIFY_DESTINATION = $00000010; // New Windows 8 // WIMRegisterMessageCallback: // INVALID_CALLBACK_VALUE = $FFFFFFFF; // WIMCopyFile // WIM_COPY_FILE_RETRY = $01000000; // WIMDeleteImageMounts // WIM_DELETE_MOUNTS_ALL = $00000001; // WIMRegisterLogfile - New Windows 8 // WIM_LOGFILE_UTF8 = $00000001; // New Windows 8 // WIMMessageCallback Notifications: // WM_APP = $8000; // uses Messages WIM_MSG = WM_APP + $1476; WIM_MSG_TEXT = WIM_MSG + 1; WIM_MSG_PROGRESS = WIM_MSG + 2; WIM_MSG_PROCESS = WIM_MSG + 3; WIM_MSG_SCANNING = WIM_MSG + 4; WIM_MSG_SETRANGE = WIM_MSG + 5; WIM_MSG_SETPOS = WIM_MSG + 6; WIM_MSG_STEPIT = WIM_MSG + 7; WIM_MSG_COMPRESS = WIM_MSG + 8; WIM_MSG_ERROR = WIM_MSG + 9; WIM_MSG_ALIGNMENT = WIM_MSG + 10; WIM_MSG_RETRY = WIM_MSG + 11; WIM_MSG_SPLIT = WIM_MSG + 12; WIM_MSG_FILEINFO = WIM_MSG + 13; WIM_MSG_INFO = WIM_MSG + 14; WIM_MSG_WARNING_OBJECTID = WIM_MSG + 15; WIM_MSG_CHK_PROCESS = WIM_MSG + 16; WIM_MSG_STALE_MOUNT_DIR = WIM_MSG + 17; WIM_MSG_STALE_MOUNT_FILE = WIM_MSG + 18; WIM_MSG_MOUNT_CLEANUP_PROGRESS = WIM_MSG + 19; WIM_MSG_CLEANUP_SCANNING_DRIVE = WIM_MSG + 20; WIM_MSG_IMAGE_ALREADY_MOUNTED = WIM_MSG + 21; WIM_MSG_CLEANUP_UNMOUNTING_IMAGE = WIM_MSG + 22; WIM_MSG_QUERY_ABORT = WIM_MSG + 23; WIM_MSG_IO_RANGE_START_REQUEST_LOOP = WIM_MSG + 24; // New Windows 8 WIM_MSG_IO_RANGE_END_REQUEST_LOOP = WIM_MSG + 25; // New Windows 8 WIM_MSG_IO_RANGE_REQUEST = WIM_MSG + 26; // New Windows 8 WIM_MSG_IO_RANGE_RELEASE = WIM_MSG + 27; // New Windows 8 WIM_MSG_VERIFY_PROGRESS = WIM_MSG + 28; // New Windows 8 WIM_MSG_COPY_BUFFER = WIM_MSG + 29; // New Windows 8 WIM_MSG_METADATA_EXCLUDE = WIM_MSG + 30; // New Windows 8 WIM_MSG_GET_APPLY_ROOT = WIM_MSG + 31; // New Windows 8 WIM_MSG_MDPAD = WIM_MSG + 32; // New Windows 8 WIM_MSG_STEPNAME = WIM_MSG + 33; // New Windows 8 // WIMMessageCallback Return codes: // WIM_MSG_SUCCESS = ERROR_SUCCESS; WIM_MSG_DONE = $FFFFFFF0; WIM_MSG_SKIP_ERROR = $FFFFFFFE; WIM_MSG_ABORT_IMAGE = $FFFFFFFF; // WIM_INFO dwFlags values: // WIM_ATTRIBUTE_NORMAL = $00000000; WIM_ATTRIBUTE_RESOURCE_ONLY = $00000001; WIM_ATTRIBUTE_METADATA_ONLY = $00000002; WIM_ATTRIBUTE_VERIFY_DATA = $00000004; WIM_ATTRIBUTE_RP_FIX = $00000008; WIM_ATTRIBUTE_SPANNED = $00000010; WIM_ATTRIBUTE_READONLY = $00000020; // Define enumeration for WIMGetMountedImageInfo to determine structure to use... // MountedImageInfoLevel0 = 1; MountedImageInfoLevel1 = 2; MountedImageInfoLevelInvalid = 3; type PLARGE_INTEGER = ^LARGE_INTEGER; // The WIM_INFO structure used by WIMGetAttributes: // _WIM_INFO = packed record WimPath: array [0 .. MAX_PATH - 1] of WideChar; Guid: TGUID; ImageCount: DWORD; CompressionType: DWORD; PartNumber: WORD; TotalParts: WORD; BootIndex: DWORD; WimAttributes: DWORD; WimFlagsAndAttr: DWORD; end; WIM_INFO = _WIM_INFO; LPWIM_INFO = ^WIM_INFO; PWIM_INFO = ^WIM_INFO; // The WIM_MOUNT_LIST structure used for getting the list of mounted images. // _WIM_MOUNT_LIST = packed record WimPath: array [0 .. MAX_PATH - 1] of WideChar; MountPath: array [0 .. MAX_PATH - 1] of WideChar; ImageIndex: DWORD; MountedForRW: BOOL; end; WIM_MOUNT_LIST = _WIM_MOUNT_LIST; LPWIM_MOUNT_LIST = ^WIM_MOUNT_LIST; PWIM_MOUNT_LIST = ^WIM_MOUNT_LIST; WIM_MOUNT_INFO_LEVEL0 = _WIM_MOUNT_LIST; PWIM_MOUNT_INFO_LEVEL0 = ^WIM_MOUNT_LIST; LPWIM_MOUNT_INFO_LEVEL0 = ^WIM_MOUNT_LIST; // Define new WIM_MOUNT_INFO_LEVEL1 structure with additional data... // _WIM_MOUNT_INFO_LEVEL1 = packed record WimPath: array [0 .. MAX_PATH - 1] of WideChar; MountPath: array [0 .. MAX_PATH - 1] of WideChar; ImageIndex: DWORD; MountFlags: DWORD; end; WIM_MOUNT_INFO_LEVEL1 = _WIM_MOUNT_INFO_LEVEL1; PWIM_MOUNT_INFO_LEVEL1 = ^WIM_MOUNT_INFO_LEVEL1; LPWIM_MOUNT_INFO_LEVEL1 = ^WIM_MOUNT_INFO_LEVEL1; _MOUNTED_IMAGE_INFO_LEVELS = DWORD; MOUNTED_IMAGE_INFO_LEVELS = _MOUNTED_IMAGE_INFO_LEVELS; //=========================================================================== // New structure in Windows 8 WIMGAPI wimgapi.h //=========================================================================== // // An abstract type implemented by the caller when using File I/O callbacks. // typedef VOID * PFILEIOCALLBACK_SESSION; // this is probably = PFILEIOCALLBACK_SESSION = Pointer; str №448 (my note) // // The WIM_IO_RANGE_CALLBACK structure is used in conjunction with the // FileIOCallbackReadFile callback and the WIM_MSG_IO_RANGE_REQUEST and // WIM_MSG_IO_RANGE_RELEASE message callbacks. A pointer to a // WIM_IO_RANGE_REQUEST is passed in WPARAM to the callback for both messages. // typedef struct _WIM_IO_RANGE_CALLBACK { // // The callback session that corresponds to the file that is being queried. // PFILEIOCALLBACK_SESSION pSession; // Filled in by WIMGAPI for both messages: LARGE_INTEGER Offset, Size; // Filled in by the callback for WIM_MSG_IO_RANGE_REQUEST (set to TRUE to // indicate data in the specified range is available, and FALSE to indicate // it is not yet available): BOOL Available; } WIM_IO_RANGE_CALLBACK, *PWIM_IO_RANGE_CALLBACK; // // Abstract (opaque) type for WIM files used with // WIMEnumImageFiles API // typedef VOID * PWIM_ENUM_FILE; #if defined(__cplusplus) typedef struct _WIM_FILE_FIND_DATA : public _WIN32_FIND_DATAW { #else typedef struct _WIM_FILE_FIND_DATA { WIN32_FIND_DATAW; #endif BYTE bHash[20]; PSECURITY_DESCRIPTOR pSecurityDescriptor; PWSTR *ppszAlternateStreamNames; PBYTE pbReparseData; DWORD cbReparseData; } WIM_FIND_DATA, *PWIM_FIND_DATA; //=========================================================================== // // Exported Function Prototypes: // type TWIMCreateFile = function(pzWimPath: PWideChar; dwDesiredAccess, dwCreationDisposition, dwFlagsAndAttributes, dwCompressionType: DWORD; pdwCreationResult: PDWORD): THandle; stdcall; TWIMCloseHandle = function(hObject: THandle): BOOL; stdcall; TWIMSetTemporaryPath = function(hWim: THandle; pszPath: PWideChar) : BOOL; stdcall; TWIMSetReferenceFile = function(hWim: THandle; pszPath: PWideChar; dwFlags: DWORD): BOOL; stdcall; TWIMSplitFile = function(hWim: THandle; pszPartPath: PWideChar; pliPartSize: PLARGE_INTEGER; dwFlags: DWORD): BOOL; stdcall; TWIMExportImage = function(hImage, hWim: THandle; dwFlags: DWORD) : BOOL; stdcall; TWIMDeleteImage = function(hWim: THandle; dwImageIndex: DWORD): BOOL; stdcall; TWIMGetImageCount = function(hWim: THandle): DWORD; stdcall; TWIMGetAttributes = function(hWim: THandle; pWimInfo: PWIM_INFO; // in Windows 7 cbWimInfo = out_bcount(cbWimInfo) PWIM_INFO pWimInfo cbWimInfo: DWORD): BOOL; stdcall; // in Windows 8 cbWimInfo = out_writes_bytes_(cbWimInfo) PWIM_INFO pWimInfo TWIMSetBootImage = function(hWim: THandle; dwImageIndex: DWORD) : BOOL; stdcall; TWIMCaptureImage = function(hWim: THandle; pszPath: PWideChar; dwCaptureFlags: DWORD): THandle; stdcall; TWIMLoadImage = function(hWim: THandle; dwImageIndex: DWORD) : THandle; stdcall; TWIMApplyImage = function(hImage: THandle; pszPath: PWideChar; dwApplyFlags: DWORD): BOOL; stdcall; TWIMGetImageInformation = function(hImage: THandle; ppvImageInfo: Pointer; // in Windows 7 ppvImageInfo = out PVOID *ppvImageInfo pcbImageInfo: PDWORD): BOOL; stdcall; // in Windows 8 ppvImageInfo = typefix(PWSTR*) __deref_out_ecount_z(*pcbImageInfo/2) PVOID *ppvImageInfo TWIMSetImageInformation = function(hImage: THandle; pvImageInfo: Pointer; // in Windows 7 pvImageInfo = in_bcount(cbImageInfo) PVOID pvImageInfo cbImageInfo: DWORD): BOOL; stdcall; // in Windows 8 pvImageInfo = in_reads_bytes_(cbImageInfo) PVOID pvImageInfo TWIMGetMessageCallbackCount = function(hWim: THandle): DWORD; stdcall; TWIMRegisterMessageCallback = function(hWim: THandle; fpMessageProc, pvUserData: Pointer): DWORD; stdcall; TWIMUnregisterMessageCallback = function(hWim: THandle; fpMessageProc: Pointer): BOOL; stdcall; TWIMMessageCallback = function(dwMessageId: DWORD; wParam: wParam; lParam: lParam; pvUserData: Pointer): DWORD; stdcall; TWIMCopyFile = function(pszExistingFileName, pszNewFileName: PWideChar; pProgressRoutine, pvData: Pointer; pbCancel: PBOOL; dwCopyFlags: DWORD) : BOOL; stdcall; TWIMMountImage = function(pszMountPath, pszWimFileName: PWideChar; dwImageIndex: DWORD; pszTempPath: PWideChar): BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMMountImageHandle = function(hImage: THandle; pszMountPath: PWideChar; dwMountFlags: DWORD): BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMRemountImage = function(pszMountPath: PWideChar; dwMountFlags: DWORD) : BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMCommitImageHandle = function(hImage: THandle; dwCommitFlags: DWORD; phNewImageHandle: PHandle): BOOL; stdcall; TWIMUnmountImage = function(pszMountPath, pszWimFileName: PWideChar; dwImageIndex: DWORD; bCommitChanges: BOOL): BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMUnmountImageHandle = function(hImage: THandle; dwUnmountFlags: DWORD) : BOOL; stdcall; // OBSOLETE since Windows 7 - Replaced by WIMGetMountedImageInfo TWIMGetMountedImages = function(pMountList: PWIM_MOUNT_LIST; // in Windows 7 pMountList = out_bcount_opt(*pcbMountList) PWIM_MOUNT_LIST pMountList pcbMountListLength: PDWORD): BOOL; stdcall; // in Windows 8 pMountList = out_writes_bytes_opt_(*pcbMountList) PWIM_MOUNT_LIST pMountList // New in Windows 7 WIMGAPI TWIMGetMountedImageInfo = function(fInfoLevelId: MOUNTED_IMAGE_INFO_LEVELS; // in Windows 7 pMountInfo = out_bcount_opt(*pcbMountInfo) PVOID pMountInfo pdwImageCount: PDWORD; pMountInfo: Pointer; cbMountInfoLength: DWORD; // in Windows 8 pMountInfo = out_writes_bytes_opt_(cbMountInfoLength) PVOID pMountInfo pcbReturnLength: PDWORD): BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMGetMountedImageInfoFromHandle = function(hImage: THandle; // in Windows 7 pMountInfo = out_bcount_opt(*pcbMountInfo) PVOID pMountInfo fInfoLevelId: MOUNTED_IMAGE_INFO_LEVELS; pMountInfo: Pointer; // in Windows 8 pMountInfo = out_writes_bytes_opt_(cbMountInfoLength) PVOID pMountInfo cbMountInfoLength: DWORD; pcbReturnLength: PDWORD): BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMGetMountedImageHandle = function(pszMountPath: PWideChar; dwFlags: DWORD; phWimHandle, phImageHandle: PHandle): BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMDeleteImageMounts = function(dwDeleteFlags: DWORD): BOOL; stdcall; // Neu in Windows 7 WIMGAPI TWIMRegisterLogFile = function(pszLogFile: PWideChar; dwFlags: DWORD) : BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMUnregisterLogFile = function(pszLogFile: PWideChar): BOOL; stdcall; // New in Windows 7 WIMGAPI TWIMExtractImagePath = function(hImage: THandle; pszImagePath, pszDestinationPath: PWideChar; dwExtractFlags: DWORD) : BOOL; stdcall; TWIMInitFileIOCallbacks = function(pCallbacks: Pointer): BOOL; stdcall; TWIMSetFileIOCallbackTemporaryPath = function(pszPath: PWideChar) : BOOL; stdcall; //=========================================================================== // New Function in Windows 8 WIMGAPI wimgapi.h //=========================================================================== //--------------------------------------------------------------------------- HANDLE WINAPI WIMFindFirstImageFile( _In_ HANDLE hImage, _In_ PCWSTR pwszFilePath, _Out_ PWIM_FIND_DATA pFindFileData ); //--------------------------------------------------------------------------- BOOL WINAPI WIMFindNextImageFile( _In_ HANDLE hFindFile, _Out_ PWIM_FIND_DATA pFindFileData ); //--------------------------------------------------------------------------- // // API for fast enumeration of image files // typedef HRESULT (CALLBACK * WIMEnumImageFilesCallback)( _In_ PWIM_FIND_DATA pFindFileData, _In_ PWIM_ENUM_FILE pEnumFile, _In_opt_ PVOID pEnumContext ); //--------------------------------------------------------------------------- BOOL WINAPI WIMEnumImageFiles( _In_ HANDLE hImage, _In_opt_ PWIM_ENUM_FILE pEnumFile, _In_ WIMEnumImageFilesCallback fpEnumImageCallback, _In_opt_ PVOID pEnumContext ); //--------------------------------------------------------------------------- HANDLE WINAPI WIMCreateImageFile( _In_ HANDLE hImage, _In_ PCWSTR pwszFilePath, _In_ DWORD dwDesiredAccess, _In_ DWORD dwCreationDisposition, _In_ DWORD dwFlagsAndAttributes ); //--------------------------------------------------------------------------- BOOL WINAPI WIMReadImageFile( _In_ HANDLE hImgFile, _Out_writes_bytes_to_(dwBytesToRead, *pdwBytesRead) PBYTE pbBuffer, _In_ DWORD dwBytesToRead, _Out_opt_ PDWORD pdwBytesRead, _Inout_ LPOVERLAPPED lpOverlapped ); //=========================================================================== // // File I/O callback prototypes // type PFILEIOCALLBACK_SESSION = Pointer; type FileIOCallbackOpenFile = function(pszFileName: PWideChar) : PFILEIOCALLBACK_SESSION; FileIOCallbackCloseFile = function(hFile: PFILEIOCALLBACK_SESSION): BOOL; FileIOCallbackReadFile = function(hFile: PFILEIOCALLBACK_SESSION; // in Windows 7 pOverlapped = in LPOVERLAPPED pOverlapped pBuffer: Pointer; nNumberOfBytesToRead: DWORD; pNumberOfBytesRead: LPDWORD; // in Windows 8 pOverlapped = inout_LPOVERLAPPED pOverlapped pOverlapped: pOverlapped): BOOL; FileIOCallbackSetFilePointer = function(hFile: PFILEIOCALLBACK_SESSION; // in Windows 7 pNewFilePointer = in PLARGE_INTEGER pNewFilePointer liDistanceToMove: LARGE_INTEGER; pNewFilePointer: PLARGE_INTEGER; // in Windows 8 pNewFilePointer = out_PLARGE_INTEGER pNewFilePointer dwMoveMethod: DWORD): BOOL; FileIOCallbackGetFileSize = function(hFile: THandle; pFileSize: PLARGE_INTEGER): BOOL; type _SFileIOCallbackInfo = packed record pfnOpenFile: FileIOCallbackOpenFile; pfnCloseFile: FileIOCallbackCloseFile; pfnReadFile: FileIOCallbackReadFile; pfnSetFilePointer: FileIOCallbackSetFilePointer; pfnGetFileSize: FileIOCallbackGetFileSize; end; SFileIOCallbackInfo = _SFileIOCallbackInfo; const WIMGAPI_LIBNAME = 'wimgapi.dll'; var WIMCreateFile: TWIMCreateFile; WIMCloseHandle: TWIMCloseHandle; WIMSetTemporaryPath: TWIMSetTemporaryPath; WIMSetReferenceFile: TWIMSetReferenceFile; WIMSplitFile: TWIMSplitFile; WIMExportImage: TWIMExportImage; WIMDeleteImage: TWIMDeleteImage; WIMGetImageCount: TWIMGetImageCount; WIMGetAttributes: TWIMGetAttributes; WIMSetBootImage: TWIMSetBootImage; WIMCaptureImage: TWIMCaptureImage; WIMLoadImage: TWIMLoadImage; WIMApplyImage: TWIMApplyImage; WIMGetImageInformation: TWIMGetImageInformation; WIMSetImageInformation: TWIMSetImageInformation; WIMGetMessageCallbackCount: TWIMGetMessageCallbackCount; WIMRegisterMessageCallback: TWIMRegisterMessageCallback; WIMUnregisterMessageCallback: TWIMUnregisterMessageCallback; WIMMessageCallback: TWIMMessageCallback; WIMCopyFile: TWIMCopyFile; WIMMountImage: TWIMMountImage; WIMMountImageHandle: TWIMMountImageHandle; WIMRemountImage: TWIMRemountImage; WIMCommitImageHandle: TWIMCommitImageHandle; WIMUnmountImage: TWIMUnmountImage; WIMUnmountImageHandle: TWIMUnmountImageHandle; WIMGetMountedImages: TWIMGetMountedImages; WIMGetMountedImageInfo: TWIMGetMountedImageInfo; WIMGetMountedImageInfoFromHandle: TWIMGetMountedImageInfoFromHandle; WIMGetMountedImageHandle: TWIMGetMountedImageHandle; WIMDeleteImageMounts: TWIMDeleteImageMounts; WIMRegisterLogFile: TWIMRegisterLogFile; WIMUnregisterLogFile: TWIMUnregisterLogFile; WIMExtractImagePath: TWIMExtractImagePath; WIMInitFileIOCallbacks: TWIMInitFileIOCallbacks; WIMSetFileIOCallbackTemporaryPath: TWIMSetFileIOCallbackTemporaryPath; procedure InitWIMGAPI(const APath: String = WIMGAPI_LIBNAME); function WIMGAPILoaded: Boolean; implementation var hWIMGAPI: THandle; procedure InitWIMGAPI(const APath: String = WIMGAPI_LIBNAME); begin if (hWIMGAPI = 0) then begin hWIMGAPI := LoadLibrary(PChar(APath)); if (hWIMGAPI <> 0) then begin @WIMCreateFile := GetProcAddress(hWIMGAPI, 'WIMCreateFile'); @WIMCloseHandle := GetProcAddress(hWIMGAPI, 'WIMCloseHandle'); @WIMSetTemporaryPath := GetProcAddress(hWIMGAPI, 'WIMSetTemporaryPath'); @WIMSetReferenceFile := GetProcAddress(hWIMGAPI, 'WIMSetReferenceFile'); @WIMSplitFile := GetProcAddress(hWIMGAPI, 'WIMSplitFile'); @WIMExportImage := GetProcAddress(hWIMGAPI, 'WIMExportImage'); @WIMDeleteImage := GetProcAddress(hWIMGAPI, 'WIMDeleteImage'); @WIMGetImageCount := GetProcAddress(hWIMGAPI, 'WIMGetImageCount'); @WIMGetAttributes := GetProcAddress(hWIMGAPI, 'WIMGetAttributes'); @WIMSetBootImage := GetProcAddress(hWIMGAPI, 'WIMSetBootImage'); @WIMCaptureImage := GetProcAddress(hWIMGAPI, 'WIMCaptureImage'); @WIMLoadImage := GetProcAddress(hWIMGAPI, 'WIMLoadImage'); @WIMApplyImage := GetProcAddress(hWIMGAPI, 'WIMApplyImage'); @WIMGetImageInformation := GetProcAddress(hWIMGAPI, 'WIMGetImageInformation'); @WIMSetImageInformation := GetProcAddress(hWIMGAPI, 'WIMSetImageInformation'); @WIMGetMessageCallbackCount := GetProcAddress(hWIMGAPI, 'WIMGetMessageCallbackCount'); @WIMRegisterMessageCallback := GetProcAddress(hWIMGAPI, 'WIMRegisterMessageCallback'); @WIMUnregisterMessageCallback := GetProcAddress(hWIMGAPI, 'WIMUnregisterMessageCallback'); @WIMMessageCallback := GetProcAddress(hWIMGAPI, 'WIMMessageCallback'); @WIMCopyFile := GetProcAddress(hWIMGAPI, 'WIMCopyFile'); @WIMMountImage := GetProcAddress(hWIMGAPI, 'WIMMountImage'); @WIMMountImageHandle := GetProcAddress(hWIMGAPI, 'WIMMountImageHandle'); @WIMRemountImage := GetProcAddress(hWIMGAPI, 'WIMRemountImage'); @WIMCommitImageHandle := GetProcAddress(hWIMGAPI, 'WIMCommitImageHandle'); @WIMUnmountImage := GetProcAddress(hWIMGAPI, 'WIMUnmountImage'); @WIMUnmountImageHandle := GetProcAddress(hWIMGAPI, 'WIMUnmountImageHandle'); @WIMGetMountedImages := GetProcAddress(hWIMGAPI, 'WIMGetMountedImages'); @WIMGetMountedImageInfo := GetProcAddress(hWIMGAPI, 'WIMGetMountedImageInfo'); @WIMGetMountedImageInfoFromHandle := GetProcAddress(hWIMGAPI, 'WIMGetMountedImageInfoFromHandle'); @WIMGetMountedImageHandle := GetProcAddress(hWIMGAPI, 'WIMGetMountedImageHandle'); @WIMDeleteImageMounts := GetProcAddress(hWIMGAPI, 'WIMDeleteImageMounts'); @WIMRegisterLogFile := GetProcAddress(hWIMGAPI, 'WIMRegisterLogFile'); @WIMUnregisterLogFile := GetProcAddress(hWIMGAPI, 'WIMUnregisterLogFile'); @WIMExtractImagePath := GetProcAddress(hWIMGAPI, 'WIMExtractImagePath'); @WIMInitFileIOCallbacks := GetProcAddress(hWIMGAPI, 'WIMInitFileIOCallbacks'); @WIMSetFileIOCallbackTemporaryPath := GetProcAddress(hWIMGAPI, 'WIMSetFileIOCallbackTemporaryPath'); end; end; end; procedure CloseWIMGAPI; begin if (hWIMGAPI <> 0) then begin FreeLibrary(hWIMGAPI); hWIMGAPI := 0; end; end; function WIMGAPILoaded: Boolean; begin Result := (hWIMGAPI <> 0); end; initialization hWIMGAPI := 0; WIMCreateFile := nil; WIMCloseHandle := nil; WIMSetTemporaryPath := nil; WIMSetReferenceFile := nil; WIMSplitFile := nil; WIMExportImage := nil; WIMDeleteImage := nil; WIMGetImageCount := nil; WIMGetAttributes := nil; WIMSetBootImage := nil; WIMCaptureImage := nil; WIMLoadImage := nil; WIMApplyImage := nil; WIMGetImageInformation := nil; WIMSetImageInformation := nil; WIMGetMessageCallbackCount := nil; WIMRegisterMessageCallback := nil; WIMUnregisterMessageCallback := nil; WIMMessageCallback := nil; WIMCopyFile := nil; WIMMountImage := nil; WIMMountImageHandle := nil; WIMRemountImage := nil; WIMCommitImageHandle := nil; WIMUnmountImage := nil; WIMUnmountImageHandle := nil; WIMGetMountedImages := nil; WIMGetMountedImageInfo := nil; WIMGetMountedImageInfoFromHandle := nil; WIMGetMountedImageHandle := nil; WIMDeleteImageMounts := nil; WIMRegisterLogFile := nil; WIMUnregisterLogFile := nil; WIMExtractImagePath := nil; WIMInitFileIOCallbacks := nil; WIMSetFileIOCallbackTemporaryPath := nil; finalization CloseWIMGAPI; ReportMemoryLeaksOnShutdown := True; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz