Skip to content

Instantly share code, notes, and snippets.

@illikainen

illikainen/Yz1.h Secret

Created July 13, 2020 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save illikainen/16ce066720e58dffd8a80fffe877df14 to your computer and use it in GitHub Desktop.
Save illikainen/16ce066720e58dffd8a80fffe877df14 to your computer and use it in GitHub Desktop.
/*
* From https://www.madobe.net/archiver/lib/yz1d032.exe
*/
#if !defined(YZ1_H)
#define YZ1_H
#define YZ_DLL_VERSION 32
#define YZ_DLL_NAME "YZ1.DLL"
#include <wtypes.h>
/* FNAME_MAX */
#if !defined(FNAME_MAX32)
#define FNAME_MAX32 512
#define FNAME_MAX FNAME_MAX32
#else
#if !defined(FNAME_MAX)
#define FNAME_MAX 128
#endif
#endif
/* CHECKARCHIVE */
#if !defined(CHECKARCHIVE_RAPID)
#define CHECKARCHIVE_RAPID 0
#define CHECKARCHIVE_BASIC 1
#define CHECKARCHIVE_FULLCRC 2
#define CHECKARCHIVE_RECOVERY 4
#define CHECKARCHIVE_SFX 8
#define CHECKARCHIVE_ALL 16
#endif
/* ISARC */
#if !defined(ISARC_FUNCTION_START)
#define ISARC_FUNCTION_START 0
#define ISARC 0
#define ISARC_GET_VERSION 1
#define ISARC_GET_CURSOR_INTERVAL 2
#define ISARC_SET_CURSOR_INTERVAL 3
#define ISARC_GET_BACK_GROUND_MODE 4
#define ISARC_SET_BACK_GROUND_MODE 5
#define ISARC_GET_CURSOR_MODE 6
#define ISARC_SET_CURSOR_MODE 7
#define ISARC_GET_RUNNING 8
#define ISARC_CHECK_ARCHIVE 16
#define ISARC_CONFIG_DIALOG 17
#define ISARC_GET_FILE_COUNT 18
#define ISARC_QUERY_FUNCTION_LIST 19
#define ISARC_HOUT 20
#define ISARC_STRUCTOUT 21
#define ISARC_GET_ARC_FILE_INFO 22
#define ISARC_OPEN_ARCHIVE 23
#define ISARC_CLOSE_ARCHIVE 24
#define ISARC_FIND_FIRST 25
#define ISARC_FIND_NEXT 26
#define ISARC_EXTRACT 27
#define ISARC_ADD 28
#define ISARC_MOVE 29
#define ISARC_DELETE 30
#define ISARC_SETOWNERWINDOW 31
#define ISARC_CLEAROWNERWINDOW 32
#define ISARC_SETOWNERWINDOWEX 33
#define ISARC_KILLOWNERWINDOWEX 34
#define ISARC_GET_ARC_FILE_NAME 40
#define ISARC_GET_ARC_FILE_SIZE 41
#define ISARC_GET_ARC_ORIGINAL_SIZE 42
#define ISARC_GET_ARC_COMPRESSED_SIZE 43
#define ISARC_GET_ARC_RATIO 44
#define ISARC_GET_ARC_DATE 45
#define ISARC_GET_ARC_TIME 46
#define ISARC_GET_ARC_OS_TYPE 47
#define ISARC_GET_ARC_IS_SFX_FILE 48
#define ISARC_GET_ARC_WRITE_TIME_EX 49
#define ISARC_GET_ARC_CREATE_TIME_EX 50
#define ISARC_GET_ARC_ACCESS_TIME_EX 51
#define ISARC_GET_ARC_CREATE_TIME_EX2 52
#define ISARC_GET_ARC_WRITE_TIME_EX2 53
#define ISARC_GET_FILE_NAME 57
#define ISARC_GET_ORIGINAL_SIZE 58
#define ISARC_GET_COMPRESSED_SIZE 59
#define ISARC_GET_RATIO 60
#define ISARC_GET_DATE 61
#define ISARC_GET_TIME 62
#define ISARC_GET_CRC 63
#define ISARC_GET_ATTRIBUTE 64
#define ISARC_GET_OS_TYPE 65
#define ISARC_GET_METHOD 66
#define ISARC_GET_WRITE_TIME 67
#define ISARC_GET_CREATE_TIME 68
#define ISARC_GET_ACCESS_TIME 69
#define ISARC_GET_WRITE_TIME_EX 70
#define ISARC_GET_CREATE_TIME_EX 71
#define ISARC_GET_ACCESS_TIME_EX 72
#define ISARC_SET_ENUM_MEMBERS_PROC 80
#define ISARC_CLEAR_ENUM_MEMBERS_PROC 81
#define ISARC_FUNCTION_END 81
#endif
/* ERROR */
#if !defined(ERROR_START)
#define ERROR_START 0x8000
/* warning */
#define ERROR_DISK_SPACE 0x8005
#define ERROR_READ_ONLY 0x8006
#define ERROR_USER_SKIP 0x8007
#define ERROR_UNKNOWN_TYPE 0x8008
#define ERROR_METHOD 0x8009
#define ERROR_PASSWORD_FILE 0x800A
#define ERROR_VERSION 0x800B
#define ERROR_FILE_CRC 0x800C
#define ERROR_FILE_OPEN 0x800D
#define ERROR_MORE_FRESH 0x800E
#define ERROR_NOT_EXIST 0x800F
#define ERROR_ALREADY_EXIST 0x8010
#define ERROR_TOO_MANY_FILES 0x8011
/* error */
#define ERROR_MAKEDIRECTORY 0x8012
#define ERROR_CANNOT_WRITE 0x8013
#define ERROR_HUFFMAN_CODE 0x8014
#define ERROR_COMMENT_HEADER 0x8015
#define ERROR_HEADER_CRC 0x8016
#define ERROR_HEADER_BROKEN 0x8017
#define ERROR_ARC_FILE_OPEN 0x8018
#define ERROR_NOT_ARC_FILE 0x8019
#define ERROR_CANNOT_READ 0x801A
#define ERROR_FILE_STYLE 0x801B
#define ERROR_COMMAND_NAME 0x801C
#define ERROR_MORE_HEAP_MEMORY 0x801D
#define ERROR_ENOUGH_MEMORY 0x801E
#if !defined(ERROR_ALREADY_RUNNING)
#define ERROR_ALREADY_RUNNING 0x801F
#endif
#define ERROR_USER_CANCEL 0x8020
#define ERROR_HARC_ISNOT_OPENED 0x8021
#define ERROR_NOT_SEARCH_MODE 0x8022
#define ERROR_NOT_SUPPORT 0x8023
#define ERROR_TIME_STAMP 0x8024
#define ERROR_TMP_OPEN 0x8025
#define ERROR_LONG_FILE_NAME 0x8026
#define ERROR_ARC_READ_ONLY 0x8027
#define ERROR_SAME_NAME_FILE 0x8028
#define ERROR_NOT_FIND_ARC_FILE 0x8029
#define ERROR_RESPONSE_READ 0x802A
#define ERROR_NOT_FILENAME 0x802B
#define ERROR_TMP_COPY 0x802C
#define ERROR_EOF 0x802D
#define ERROR_ADD_TO_LARC 0x802E
#define ERROR_TMP_BACK_SPACE 0x802F
#define ERROR_SHARING 0x8030
#define ERROR_NOT_FIND_FILE 0x8031
#define ERROR_LOG_FILE 0x8032
#define ERROR_NO_DEVICE 0x8033
#define ERROR_GET_ATTRIBUTES 0x8034
#define ERROR_SET_ATTRIBUTES 0x8035
#define ERROR_GET_INFORMATION 0x8036
#define ERROR_GET_POINT 0x8037
#define ERROR_SET_POINT 0x8038
#define ERROR_CONVERT_TIME 0x8039
#define ERROR_GET_TIME 0x803a
#define ERROR_SET_TIME 0x803b
#define ERROR_CLOSE_FILE 0x803c
#define ERROR_HEAP_MEMORY 0x803d
#define ERROR_HANDLE 0x803e
#define ERROR_TIME_STAMP_RANGE 0x803f
#define ERROR_MAKE_ARCHIVE 0x8040
#define ERROR_END ERROR_MAKE_ARCHIVE
#define ERROR_BUF_TOO_SMALL 0x8041 /**/
#endif
/* CONFIG */
#if !defined(UNPACK_CONFIG_MODE)
#define UNPACK_CONFIG_MODE 1
#define PACK_CONFIG_MODE 2
#endif
/* OPENARCHIVE */
#if !defined(EXTRACT_FOUND_FILE)
#define M_INIT_FILE_USE 0x00000001L
#define M_REGARDLESS_INIT_FILE 0x00000002L
#define M_NO_BACKGROUND_MODE 0x00000004L
#define M_NOT_USE_TIME_STAMP 0x00000008L
#define M_EXTRACT_REPLACE_FILE 0x00000010L
#define M_EXTRACT_NEW_FILE 0x00000020L
#define M_EXTRACT_UPDATE_FILE 0x00000040L
#define M_CHECK_ALL_PATH 0x00000100L
#define M_CHECK_FILENAME_ONLY 0x00000200L
#define M_CHECK_DISK_SIZE 0x00000400L
#define M_REGARDLESS_DISK_SIZE 0x00000800L
#define M_USE_DRIVE_LETTER 0x00001000L
#define M_NOT_USE_DRIVE_LETTER 0x00002000L
#define M_INQUIRE_DIRECTORY 0x00004000L
#define M_NOT_INQUIRE_DIRECTORY 0x00008000L
#define M_INQUIRE_WRITE 0x00010000L
#define M_NOT_INQUIRE_WRITE 0x00020000L
#define M_CHECK_READONLY 0x00040000L
#define M_REGARDLESS_READONLY 0x00080000L
#define M_REGARD_E_COMMAND 0x00100000L
#define M_REGARD_X_COMMAND 0x00200000L
#define M_ERROR_MESSAGE_ON 0x00400000L
#define M_ERROR_MESSAGE_OFF 0x00800000L
#define M_BAR_WINDOW_ON 0x01000000L
#define M_BAR_WINDOW_OFF 0x02000000L
#define M_CHECK_PATH 0x04000000L
#define M_RECOVERY_ON 0x08000000L
#define M_MAKE_INDEX_FILE 0x10000000L
#define M_NOT_MAKE_INDEX_FILE 0x20000000L
#define EXTRACT_FOUND_FILE 0x40000000L
#define EXTRACT_NAMED_FILE 0x80000000L
#endif
/* ATTRIBUTE */
#ifndef FA_RDONLY
#define FA_RDONLY 0x01
#define FA_HIDDEN 0x02
#define FA_SYSTEM 0x04
#define FA_LABEL 0x08
#define FA_DIREC 0x10
#define FA_ARCH 0x20
#endif
#ifndef FA_ENCRYPTED
#define FA_ENCRYPTED 0x40
#endif
/* STRUCTURES */
#if defined(__BORLANDC__)
#pragma option -a-
#else
#pragma pack(1)
#endif
typedef HGLOBAL HARCHIVE;
#ifndef ARC_DECSTRACT
#define ARC_DECSTRACT
typedef HGLOBAL HARC;
typedef struct {
DWORD dwOriginalSize;
DWORD dwCompressedSize;
DWORD dwCRC;
UINT uFlag;
UINT uOSType;
WORD wRatio;
WORD wDate;
WORD wTime;
char szFileName[FNAME_MAX32 + 1];
char dummy1[3];
char szAttribute[8];
char szMode[8];
} INDIVIDUALINFO, FAR *LPINDIVIDUALINFO;
typedef struct {
DWORD dwFileSize;
DWORD dwWriteSize;
char szSourceFileName[FNAME_MAX32 + 1];
char dummy1[3];
char szDestFileName[FNAME_MAX32 + 1];
char dummy[3];
} EXTRACTINGINFO, FAR *LPEXTRACTINGINFO;
typedef struct {
EXTRACTINGINFO exinfo;
DWORD dwCompressedSize;
DWORD dwCRC;
UINT uOSType;
WORD wRatio;
WORD wDate;
WORD wTime;
char szAttribute[8];
char szMode[8];
} EXTRACTINGINFOEX, *LPEXTRACTINGINFOEX;
#endif
#if !defined(__BORLANDC__)
#pragma pack()
#else
#pragma option -a.
#endif
#if !defined(__BORLANDC__)
#define _export
#endif
/* WindowsMessage */
#ifndef WM_ARCEXTRACT
#define WM_ARCEXTRACT "wm_arcextract"
#define ARCEXTRACT_BEGIN 0
#define ARCEXTRACT_INPROCESS 1
#define ARCEXTRACT_END 2
#define ARCEXTRACT_OPEN 3
#define ARCEXTRACT_COPY 4
typedef BOOL CALLBACK ARCHIVERPROC(HWND,UINT,UINT,LPEXTRACTINGINFOEX);
typedef ARCHIVERPROC *LPARCHIVERPROC;
#endif
/* API */
#ifdef __cplusplus
extern "C"
#endif
{
/* LHA.DLL Compatible API */
int WINAPI Yz1( const HWND,LPCSTR,LPSTR,const DWORD );
WORD WINAPI Yz1GetVersion();
BOOL WINAPI Yz1GetBackGroundMode();
BOOL WINAPI Yz1SetBackGroundMode( const BOOL );
BOOL WINAPI Yz1GetCursorMode();
BOOL WINAPI Yz1SetCursorMode( const BOOL );
WORD WINAPI Yz1GetCursorInterval();
BOOL WINAPI Yz1SetCursorInterval( const WORD );
BOOL WINAPI Yz1GetRunning();
/* True Compatible API */
BOOL WINAPI Yz1CheckArchive( LPCSTR,const int );
int WINAPI Yz1GetFileCount( LPCSTR );
BOOL WINAPI Yz1QueryFunctionList( const int );
BOOL WINAPI Yz1ConfigDialog( const HWND,LPSTR,const int );
/* OpenArchive etc */
HARC WINAPI Yz1OpenArchive( const HWND,LPCSTR,const DWORD );
int WINAPI Yz1CloseArchive( HARC );
int WINAPI Yz1GetArcFileName( HARC,LPSTR,const int );
DWORD WINAPI Yz1GetArcFileSize( HARC );
WORD WINAPI Yz1GetArcDate( HARC );
WORD WINAPI Yz1GetArcTime( HARC );
int WINAPI Yz1IsSFXFile( HARC );
BOOL WINAPI Yz1GetArcCreateTimeEx( HARC,FILETIME* );
BOOL WINAPI Yz1GetArcAccessTimeEx( HARC,FILETIME* );
BOOL WINAPI Yz1GetArcWriteTimeEx( HARC,FILETIME* );
int WINAPI Yz1FindFirst( HARC,LPCSTR,LPINDIVIDUALINFO );
int WINAPI Yz1FindNext( HARC,LPINDIVIDUALINFO );
DWORD WINAPI Yz1GetArcOriginalSize( HARC );
int WINAPI Yz1GetFileName( HARC,LPSTR,const int );
DWORD WINAPI Yz1GetOriginalSize( HARC );
int WINAPI Yz1GetAttribute( HARC arc );
int WINAPI Yz1GetMethod( HARC,LPSTR,const int );
WORD WINAPI Yz1GetTime( HARC );
WORD WINAPI Yz1GetDate( HARC );
DWORD WINAPI Yz1GetWriteTime( HARC );
/* Messaging API */
BOOL WINAPI Yz1SetOwnerWindow( HWND );
BOOL WINAPI Yz1ClearOwnerWindow();
BOOL WINAPI Yz1SetOwnerWindowEx( HWND,LPARCHIVERPROC );
BOOL WINAPI Yz1KillOwnerWindowEx( HWND );
/* Original API */
int WINAPI Yz1SetDefaultPassword( HARC,LPCSTR );
DWORD WINAPI Yz1GetDefaultPassword( HARC,LPSTR,DWORD );
int WINAPI Yz1PasswordDialog( HWND,LPSTR,DWORD );
#ifdef __cplusplus
}
#endif
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment