⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wimadll.h

📁 对ima、imz压缩文件修改
💻 H
📖 第 1 页 / 共 3 页
字号:

// CreateCDIsoIma : Create an Image Object by loading CDRom ISO image
//  lpFn : Filename of .ISO file
//  inject,...cannot be used
HIMA WIMAAPI CreateCDIsoIma(LPCSTR lpFn);

// OpenFatLargeFile : Open a large disk image (hard disk image)
//  hWnd : parent window for progress window
//  lpFn : FileName
//  dwPosFileBegin : position in file (usualy 0)
//  dwPosFileBegin : position in file, high (usualy 0), for file > 4GB
//  fReadOnlyAsked : if the file must be opened in read-only mode
HIMA WIMAAPI OpenFatLargeFile(HWND hWnd,LPCSTR lpFn,DWORD dwPosInFile,DWORD dwPosInFileHigh,BOOL fReadOnlyAsked);
HIMA WIMAAPI OpenFatLargeFileCB(HWND hWnd,EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                                LPCSTR lpFn,DWORD dwPosInFile,DWORD dwPosInFileHigh,BOOL fReadOnlyAsked);

HIMA WIMAAPI OpenLargeImageFile(HWND hWnd,LPCSTR lpFn,DWORD dwPosInFile,DWORD dwPosInFileHigh,BOOL fReadOnlyAsked);

HIMA WIMAAPI OpenLargeImageFileCB(HWND hWnd,EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                                LPCSTR lpFn,DWORD dwPosInFile,DWORD dwPosInFileHigh,BOOL fReadOnlyAsked);

// DeleteIma : Delete an Image Object.
void WIMAAPI DeleteIma(HIMA);

// Read an image file (.IMA or .IMZ)
//  hWnd : parent window for progress window
//  lpFn : FileName
//  lpfCompr : pointer to Boolean (will receive TRUE if file is compressed)
//  dwPosFileBegin : position in file (usualy 0, except in WLZ)
BOOL WIMAAPI ReadImaFile(HIMA hIma,HWND hWnd,LPCSTR lpFn,
                         LPBOOL lpfCompr,DWORD dwPosFileBegin);
BOOL WIMAAPI ReadImaFileEx(HIMA hIma,HWND hWnd,LPCSTR lpFn,
                           LPBOOL lpfCompr,DWORD dwPosFileBegin,
                           LPCSTR lpszPassword);
BOOL WIMAAPI ReadImaFileExCB(HIMA hIma,
                             HWND hWnd,EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                             LPCSTR lpFn,
                             LPBOOL lpfCompr,DWORD dwPosFileBegin,
                             LPCSTR lpszPassword);
// WriteImaFile : WriteCompressed image
//  hWnd : parent window for progress window
//  lpFn : FileName
//  fTruncate : TRUE if you want truncate unused part of image
//  fCompress : TRUE if you want compress
//  iLevelCompress : used is fCompress is TRUE, level of compress (1 to 9)
//  dwPosBeginWrite : position in file (usualy 0)
//  lpNameInCompr : alternate name in compressed file (can be NULL)
BOOL WIMAAPI WriteImaFile(HIMA hIma,HWND hWnd,LPCSTR lpFn,BOOL fTruncate,
                          BOOL fCompress,int iLevelCompress,
                          DWORD dwPosBeginWrite,LPCSTR lpNameInCompr);

BOOL WIMAAPI WriteImaFileEx(HIMA hIma,HWND hWnd,LPCSTR lpFn,BOOL fTruncate,
                            BOOL fCompress,int iLevelCompress,
                            DWORD dwPosBeginWrite,LPCSTR lpNameInCompr,
                            DWORD dwCryptMethod,LPCSTR lpszPassword);

BOOL WIMAAPI WriteImaFileExCB(HIMA hIma,
                              HWND hWnd,EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                              LPCSTR lpFn,BOOL fTruncate,
                              BOOL fCompress,int iLevelCompress,
                              DWORD dwPosBeginWrite,LPCSTR lpNameInCompr,
                              DWORD dwCryptMethod,LPCSTR lpszPassword);
//  ReadFloppy : Read a floppy
//  hWnd : parent window for progress window
//  bFloppy : Floppy to read (0 for A:)
//  caRead : USED, or ALL (ALL if you want read unused part of floppy)
BOOL WIMAAPI ReadFloppy(HIMA hIma,HWND hWnd,BYTE bFloppy,CHOICEAPP caRead);

// ReadFloppyCB : do not display user interface but call CallBack
BOOL WIMAAPI ReadFloppyCB(HIMA hIma,HWND hWnd,
                          EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                          BYTE bFloppy,CHOICEAPP caRead);

// WriteFloppy : Write a floppy
//  hWnd : parent window for progress window
//  bFloppy : Floppy to write (0 for A:)
//  caFormat : NOTHING or ALL (ALL for format)
//  caWrite : USED or ALL
//  caCompare : NOTHING, USED or ALL
//  fCheckDiskBeforeWrite : if you want check disk is empty
BOOL WIMAAPI WriteFloppy(HIMA hIma,HWND hWnd,BYTE bFloppy,CHOICEAPP caFormat,
                         CHOICEAPP caWrite,CHOICEAPP caCompare,
                         BYTE fCheckDiskBeforeWrite);

// WriteFloppyCB : do not display user interface but call CallBack
BOOL WIMAAPI WriteFloppyCB(HIMA hIma,HWND hWnd,
                           EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                           BYTE bFloppy,CHOICEAPP caFormat,
                           CHOICEAPP caWrite,CHOICEAPP caCompare,
                           BYTE fCheckDiskBeforeWrite);



// Create a directory in the image
//  lpDir : Directory name
BOOL WIMAAPI MkDir(HIMA hIma,LPCSTR lpDir);

// Change current directory by name
//  lpDir : Directory name
BOOL WIMAAPI ChszDir(HIMA hIma,LPCSTR lpDir);

// Change current directory by mode
//  bMode : CDM_ROOT or CDM_UPPER (equiv. to cd \ and cd ..)
BOOL WIMAAPI ChDir(HIMA hIma,BYTE bMode);

// Change current directory by mode
//  bMode : CDM_ROOT or CDM_UPPER or CDM_ENTRY (equiv. to cd \ and cd ..)
BOOL WIMAAPI ChDirPos(HIMA hIma,BYTE bMode,DWORD dwPosDir);

// InjectFile : Inject a file in floppy
//  lpFn : file to inject
//  lpDwSize : Pointer to DWORD that will receive the size. Can be NULL.
//  lpTooBig : Pointer to BOOL, become TRUE if file too big to be injected
//      (if InjectFile return FALSE). Can be NULL.
//  lpNameWhenInjected : if not NULL, contain a new name in the image
//      (if the file must have another name when injected). Can be NULL.
//    for the CB version, the only event is DWEV_PROGRESSPERCENT
BOOL WIMAAPI InjectFile(HIMA hIma,LPCSTR lpFn,
                        LPDWORD lpDwSize,LPBOOL lpTooBig,
                        LPCSTR lpNameWhenInjected);

BOOL WIMAAPI InjectFileCB(HIMA hIma,
                          EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                          LPCSTR lpFn,LPDWORD lpDwSize,
                          LPBOOL lpTooBig,LPCSTR lpNameWhenInjected);

// MakeEmptyImage : make an empty image
// iNotypeDisk : 4=720K,6=1440K,7=2880K,8=DMF2048,9=DMF1024,10=1680K
//                  0=160K,1=180K,2=320K,3=360K,5=1200K (old, no ! :-))
BOOL WIMAAPI MakeEmptyImage(HIMA hIma,int iNoTypeDisk);

// MakeEmptyImageEx : make an empty image
// lpszBootSectorGeom : contain a boot sector with the geometry of needed image
// lpszBootSectorCode : contain the boot sector code (can be NULL to standard code)
BOOL WIMAAPI MakeEmptyImageEx(HIMA hIma,LPCSTR lpszBootSectorGeom,LPCSTR lpszBootSectorCode);

// BuildImaNewFormat : Defrag (and pehaps change format)
//   Success: return new Image object (hOldIma is destroyed)
//   Error : Return NULL, hOldIma is not destroyed
// fNewTypeDisk : TRUE: change format using iNotypeDisk, FALSE: Just defrag
// iNotypeDisk : 4=720K,6=1440K,7=2880K,8=DMF2048,9=DMF1024,10=1680K
//                  0=160K,1=180K,2=320K,3=360K,5=1200K (old, no ! :-))
HIMA WIMAAPI BuildImaNewFormat(HIMA hOldIma,BOOL fNewTypeDisk,int iNoTypeDisk);


// BuildImaNewFormat : Defrag (and pehaps change format)
// hNewIma will receive the new image and must have been created
// lpszBootSectForGeometry : contain a boot sector with geometry of new image
// fDiscardOldIma : TRUE to delete hOldIma (if BuildImaNewFormatEx has success)
BOOL WIMAAPI BuildImaNewFormatEx(HIMA hOldIma,HIMA hNewIma,BOOL fNewTypeDisk,
                                 LPCSTR lpszBootSectForGeometry,BOOL fDiscardOldIma);


BOOL WIMAAPI BuildImaNewFormatExCB(HIMA hOldIma,HIMA hNewIma,
                                   EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                                   BOOL fNewTypeDisk,
                                   LPCSTR lpszBootSectForGeometry,BOOL fDiscardOldIma);



// Create an empty FAT16 image file, by specifying number of sector and number of root entry
//   This API is supported, but obsolete (MakeEmptyImageEx is better)
BOOL WIMAAPI BuildFat16EmptyImageFromSize(LPCTSTR lpszFileName,DWORD dwNbSector,DWORD dwNbRootEntry);


// InitWimaSdk : Init the DLL and use hinstdll for resource
#define DEBENUSTD "ENU"
#define BASEENUSTD (10000)
// default lpDeb value is "ENU" and wBase is BASEENUSTD
BOOL WIMAAPI InitWimaSdk(HINSTANCE hinstdll,LPCSTR lpDeb,WORD wBase);

// GetCurDir : Get the name of current directory
//  lpBuf : buffer that will receive the name
//  uiMaxSize : the size of buffer
BOOL WIMAAPI GetCurDir(HIMA hIma,LPSTR lpBuf,UINT uiMaxSize);

// GetNbEntryCurDir : Get the number of entry of cur directory
DWORD WIMAAPI GetNbEntryCurDir(HIMA hIma);

// GetDirInfo : Get info about the entry of cur directory
//  LPDIRINFO : array of DIRINFO that will receive the info
//                  (use GetNbEntryCurDir for know the size needed)
//  bSort :     specify how the file must be sort
//          (SORT_NONE, SORT_NAME, SORT_EXT, SORT_SIZE or SORT_DATE)
BOOL WIMAAPI GetDirInfo(HIMA hIma,LPDIRINFO lpdi,BYTE bSort);

// Sort : Resort the array obtained by GetDirInfo
BOOL WIMAAPI Sort(HIMA hIma,LPDIRINFO lpdi,BYTE bSort);


BOOL WIMAAPI RefreshInternalBufferDirInfo(HIMA hIma,BYTE bSort,LPDWORD lpdwNumberItem);

BOOL WIMAAPI GetBufferDirInfoItem(HIMA hIma,LPDIRINFO lpdiItem,DWORD dwItemPos);

BOOL WIMAAPI ReSortBufferDirInfo(HIMA hIma,BYTE bSort);

// GetLabel : Get the label of Image
//  lpBuf : will receive the label
BOOL WIMAAPI GetLabel(HIMA hIma,LPSTR lpBuf);

// SetLabel : Set the label of Image
//  lpBuf : contain the new label
BOOL WIMAAPI SetLabel(HIMA hIma,LPCSTR lpBuf);

// ExtractFile : Extract one file
//  uiPosDir :  The uiPosInDir fields in DIRINFO structure that describe
//                  the file
//  lpPath :    Path where extract the file
//  lpFullName: will receive the exact full name of created file. Can be NULL
//    for the CB version, the only event is DWEV_PROGRESSPERCENT
BOOL WIMAAPI ExtractFile(HIMA hIma,DWORD dwPosDir,LPCSTR lpPath,LPSTR lpFullName);

BOOL WIMAAPI ExtractFileCB(HIMA hIma,
                           EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                           DWORD dwPosDir,LPCSTR lpPath,LPSTR lpFullName);

BOOL WIMAAPI ExtractFileVirtual(HIMA hIma,
                                  FILEIOCALLBACK pFileIoCallBack,DWORD dwMaxVirtualBufSize,LPVOID lpParamUsrExtractOut,
                                  DWORD dwPosDir,LPCSTR lpPath,LPSTR lpFullName);

BOOL WIMAAPI ExtractFileVirtualCB(HIMA hIma,
                                  FILEIOCALLBACK pFileIoCallBack,DWORD dwMaxVirtualBufSize,LPVOID lpParamUsrExtractOut,
                                  EVENTNOTIFCALLBACK pEventNotifCallBack,LPVOID lpUsrParam,
                                  DWORD dwPosDir,LPCSTR lpPath,LPSTR lpFullName);

// CheckSpaceForFile : Check you've space for inject a file of dwSize bytes
BOOL WIMAAPI CheckSpaceForFile(HIMA hIma,DWORD dwSize);

// to know if an inject is possible but need replace
//  lpFn : contain the name of file to be injected
//  lpDwSize : will receive the size of old file with same name. Can be NULL
//  lpNameWhenInjected : if not NULL, contain a new name in the image
//  lpShortName : will receive the short (8) name of file in image. Can be NULL
//  lpShortExt  : will receive the short (3) ext of file in image. Can be NULL
//      (if the file must have another name when injected)
BOOL WIMAAPI IfInjectPossibleButNeedReplace(HIMA hIma,LPCSTR lpFn,
         LPDWORD lpDwSize,LPSTR lpShortName,
         LPSTR lpShortExt,LPCSTR lpNameWhenInjected);

// RmDir : Remove a directory
//  unPosDir :  The uiPosInDir fields in DIRINFO structure that describe
//                  the file
BOOL WIMAAPI RmDir(HIMA hIma,UINT uiPosDir);

// DeleteFileNameExt
//   Delete a file in the image
//     for filling lpNom and lpExt, use data obtained from GetDirInfo
//   lpNom : pointer to array of 8 chars (name of 8.3 name, use DIRINFO.nom)
//   lpExt : pointer to array of 3 chars (ext  of 8.3 name, use DIRINFO.ext)
//   fRealDel : TRUE to really delete, FALSE to only test if delete is possible
BOOL WIMAAPI DeleteFileNameExt(HIMA hIma,LPCSTR lpNom,LPCSTR lpExt,BOOL fRealDel);


// MoveFileToDir
//    Move a file from current directory to another directory

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -