Стартовый пул
This commit is contained in:
35
unrar/Documentation/Introduction.htm
Normal file
35
unrar/Documentation/Introduction.htm
Normal file
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<p>UnRAR.dll is Windows dynamic-link library, which provides file extraction.
|
||||
from RAR archives. It is available both as 32-bit (unrar.dll) and 64-bit x64
|
||||
(unrar64.dll) versions.</p>
|
||||
|
||||
<p>You can find samples of UnRAR.dll use in "Examples" folder.
|
||||
All samples except C sample (UnRDLL.c) are contributed by unrar.dll users.
|
||||
We at rarlab.com created and tested only UnRDLL.c sample.</p>
|
||||
|
||||
<p>Brief scenario of unrar.dll use includes the call of
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> to open an archive,
|
||||
<a href="RARReadHeaderEx.htm">RARReadHeaderEx</a> to read archive headers,
|
||||
<a href="RARProcessFileW.htm">RARProcessFileW</a> to process read header
|
||||
and <a href="RARCloseArchive.htm">RARCloseArchive</a> to close the archive
|
||||
and free all previously allocated objects.<p>
|
||||
|
||||
<p>If you use this library in Unix, you may need to call
|
||||
setlocale(LC_CTYPE, "") in your application, so Unicode conversion functions
|
||||
work properly.
|
||||
|
||||
<p>Please read <a href="index.htm#functions">the functions description</a>
|
||||
and look into source code in "Examples" folder for more details.</p>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
136
unrar/Documentation/RARCallback.htm
Normal file
136
unrar/Documentation/RARCallback.htm
Normal file
@@ -0,0 +1,136 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>User defined callback function</h3>
|
||||
|
||||
int CALLBACK CallbackProc(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2);
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>This function is called by UnRAR.dll library to process different
|
||||
UnRAR events listed below. You can specify the address of this function
|
||||
either in <a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> (preferable)
|
||||
or in <a href="RARSetCallback.htm">RARSetCallback</a> (obsolete)</p>
|
||||
|
||||
<h3>Function parameters</h3>
|
||||
|
||||
<p>The function will be passed four parameters:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a name="msg"></a>
|
||||
<i>msg</i>
|
||||
<blockquote>
|
||||
<p>Event type. Possible values:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>UCM_CHANGEVOLUME<br>
|
||||
UCM_CHANGEVOLUMEW</b>
|
||||
<blockquote>
|
||||
<p>Process volume change.</p>
|
||||
|
||||
<p><b>P1</b> points to the zero terminated name of the next volume.</p>
|
||||
|
||||
<p><b>P2</b> defines the function call mode.</p>
|
||||
<table border=1><tr>
|
||||
<td>RAR_VOL_ASK</td>
|
||||
<td>Required volume is absent. The function should prompt user
|
||||
and return 1 to retry or return -1 value to terminate operation.
|
||||
The function may also set a new volume name, placing up to
|
||||
1024 characters to the address specified by P1 parameter.<br><br>
|
||||
Volume name uses single byte ANSI encoding for UCM_CHANGEVOLUME
|
||||
and Unicode for UCM_CHANGEVOLUMEW. If application provides
|
||||
a new volume name in UCM_CHANGEVOLUMEW, UCM_CHANGEVOLUME
|
||||
is not sent.
|
||||
</td>
|
||||
</tr><tr>
|
||||
<td>RAR_VOL_NOTIFY</td>
|
||||
<td>Required volume is successfully opened. This is a notification
|
||||
call and volume name modification is not allowed. The function
|
||||
should return 1 to continue or -1 to terminate operation.
|
||||
Volume name uses single byte ANSI encoding for UCM_CHANGEVOLUME
|
||||
and Unicode for UCM_CHANGEVOLUMEW.
|
||||
</td>
|
||||
</tr></table>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<b>UCM_PROCESSDATA</b>
|
||||
<blockquote>
|
||||
<p>Process unpacked data. It can be used to read a file from memory,
|
||||
while it is being extracted or tested. If you use this event
|
||||
while testing a file, then it makes possible to read file data
|
||||
without extracting file to disk.</p>
|
||||
|
||||
<p>Return 1 to continue processing or -1 to cancel the archive
|
||||
operation.</p>
|
||||
|
||||
<p><b>P1</b> contains the address pointing to the unpacked data.
|
||||
Callback function can read the data but must not modify it.</p>
|
||||
|
||||
<p><b>P2</b> contains the size of the unpacked data. It is guaranteed
|
||||
that this size will not exceed the maximum dictionary size
|
||||
(4 MB in RAR 3.0).</p>
|
||||
</blockquote>
|
||||
<li>
|
||||
<b>UCM_NEEDPASSWORD<br>
|
||||
UCM_NEEDPASSWORDW</b>
|
||||
<blockquote>
|
||||
<p>DLL needs a password to process archive. This message must be
|
||||
processed if you wish to be able to handle encrypted archives.</p>
|
||||
|
||||
<p>Return 1 to continue process or -1 to cancel the archive
|
||||
operation.</p>
|
||||
|
||||
<p><b>P1</b> contains the address pointing to the buffer for
|
||||
a password in single byte encoding. You need to copy a password
|
||||
here. Password uses single byte ANSI encoding for UCM_NEEDPASSWORD
|
||||
and Unicode for UCM_NEEDPASSWORDW. If application provides
|
||||
a password in UCM_NEEDPASSWORDW, UCM_NEEDPASSWORD is not sent.</p>
|
||||
|
||||
<p><b>P2</b> contains the size of password buffer in characters.</p>
|
||||
</blockquote>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>UserData</i>
|
||||
<blockquote>
|
||||
<p>User defined value passed to RARSetCallback. You can specify it,
|
||||
when defining the callback function in
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a>
|
||||
or <a href="RARSetCallback.htm">RARSetCallback</a></p>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<li>
|
||||
<i>P1</i><br>
|
||||
<i>P2</i>
|
||||
<blockquote>
|
||||
<p>Event dependent parameters. Read <a href="#msg"><i>msg</i> description</a>
|
||||
above for detailed information.<p>
|
||||
</blockquote>
|
||||
</ul>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<p>In general returning -1 means canceling the operation and returning
|
||||
1 continues processing. Please also read event descriptions above
|
||||
in case we'll add some exceptions from this rule.
|
||||
Return 0 for those event types which you do not process including
|
||||
unknown event types.
|
||||
</p>
|
||||
|
||||
<h3>Notes</h3>
|
||||
<blockquote>
|
||||
Other UnRAR.dll functions must not be called from the callback function.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
42
unrar/Documentation/RARCloseArchive.htm
Normal file
42
unrar/Documentation/RARCloseArchive.htm
Normal file
@@ -0,0 +1,42 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>int PASCAL RARCloseArchive(HANDLE hArcData)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>
|
||||
Close RAR archive and release allocated memory. It must be called when
|
||||
archive processing is finished, even if the archive processing was stopped
|
||||
due to an error.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>hArcData</i>
|
||||
<blockquote>
|
||||
This parameter should contain the archive handle obtained from
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> or
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function call.
|
||||
</blockquote>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td>0</td><td>Success</td></tr>
|
||||
<tr><td>ERAR_ECLOSE</td><td>Archive close error</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
36
unrar/Documentation/RARGetDllVersion.htm
Normal file
36
unrar/Documentation/RARGetDllVersion.htm
Normal file
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>int PASCAL RARGetDllVersion()</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
|
||||
Returns API version.
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
None.
|
||||
|
||||
<h3>Return values</h3>
|
||||
<p>Returns an integer value denoting UnRAR.dll API version, which is also
|
||||
defined in unrar.h as RAR_DLL_VERSION. API version number is incremented
|
||||
only in case of noticeable changes in UnRAR.dll API. Do not confuse it
|
||||
with version of UnRAR.dll stored in DLL resources, which is incremented
|
||||
with every DLL rebuild.</p>
|
||||
|
||||
<p>If RARGetDllVersion() returns a value lower than UnRAR.dll, which your
|
||||
application was designed for, it may indicate that DLL version is too old
|
||||
and it may fail to provide all necessary functions to your application.</p>
|
||||
|
||||
<p>This function is missing in very old versions of UnRAR.dll,
|
||||
so it is safer to use LoadLibrary and GetProcAddress to access it.</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
183
unrar/Documentation/RARHeaderData.htm
Normal file
183
unrar/Documentation/RARHeaderData.htm
Normal file
@@ -0,0 +1,183 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>RARHeaderData structure</h3>
|
||||
|
||||
<pre>
|
||||
struct RARHeaderData
|
||||
{
|
||||
char ArcName[260];
|
||||
char FileName[260];
|
||||
unsigned int Flags;
|
||||
unsigned int PackSize;
|
||||
unsigned int UnpSize;
|
||||
unsigned int HostOS;
|
||||
unsigned int FileCRC;
|
||||
unsigned int FileTime;
|
||||
unsigned int UnpVer;
|
||||
unsigned int Method;
|
||||
unsigned int FileAttr;
|
||||
char *CmtBuf;
|
||||
unsigned int CmtBufSize;
|
||||
unsigned int CmtSize;
|
||||
unsigned int CmtState;
|
||||
};
|
||||
</pre>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>This structure is used by <a href="RARReadHeader.htm">RARReadHeader</a>
|
||||
function.</p>
|
||||
|
||||
<h3>Structure fields</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<i>ArcName</i>
|
||||
<blockquote>
|
||||
Output parameter which contains a zero terminated string of the
|
||||
current archive name. May be used to determine the current volume name.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileName</i>
|
||||
<blockquote>
|
||||
Output parameter which contains a zero terminated string of the
|
||||
file name in OEM (DOS) encoding.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Flags</i>
|
||||
<blockquote>
|
||||
<p>Output parameter which contains file flags:</p>
|
||||
<table border="1">
|
||||
<tr><td>RHDF_SPLITBEFORE</td><td>0x01</td><td>File continued from previous volume</td></tr>
|
||||
<tr><td>RHDF_SPLITAFTER</td><td>0x02</td><td>File continued on next volume</td></tr>
|
||||
<tr><td>RHDF_ENCRYPTED</td><td>0x04</td><td>File encrypted with password</td></tr>
|
||||
<tr><td></td><td>0x08</td><td>Reserved</td></tr>
|
||||
<tr><td>RHDF_SOLID</td><td>0x10</td><td>Previous files data is used (solid flag)</td></tr>
|
||||
<tr><td>RHDF_DIRECTORY</td><td>0x20</td><td>Directory entry</td></tr>
|
||||
</table>
|
||||
<p>Other bits are reserved.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>PackSize</i>
|
||||
<blockquote>
|
||||
Output parameter. Packed file size or size of file part if file
|
||||
was split between volumes.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>UnpSize</i>
|
||||
<blockquote>
|
||||
Output parameter. Unpacked file size.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>HostOS</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Operating system used to create the archive.</p>
|
||||
|
||||
<table border="1">
|
||||
<tr><td>0</td><td>MS DOS</td></tr>
|
||||
<tr><td>1</td><td>OS/2</td></tr>
|
||||
<tr><td>2</td><td>Windows</td></tr>
|
||||
<tr><td>3</td><td>Unix</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileCRC</i>
|
||||
<blockquote>
|
||||
Output parameter, which contains unpacked file CRC32. In case of file
|
||||
parts split between volumes only the last part contains the correct
|
||||
CRC and it is accessible only in RAR_OM_LIST_INCSPLIT listing mode.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileTime</i>
|
||||
<blockquote>
|
||||
Output parameter. Contains the file modification date and time in standard
|
||||
MS DOS format.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>UnpVer</i>
|
||||
<blockquote>
|
||||
Output parameter. RAR version needed to extract file.
|
||||
It is encoded as 10 * Major version + minor version.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Method</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Packing method.</p>
|
||||
|
||||
<table border="1">
|
||||
<tr><td>0x30</td><td>Storing</td></tr>
|
||||
<tr><td>0x31</td><td>Fastest compression</td></tr>
|
||||
<tr><td>0x32</td><td>Fast compression</td></tr>
|
||||
<tr><td>0x33</td><td>Normal compression</td></tr>
|
||||
<tr><td>0x34</td><td>Good compression</td></tr>
|
||||
<tr><td>0x35</td><td>Best compression</td></tr>
|
||||
</table>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileAttr</i>
|
||||
<blockquote>
|
||||
Output parameter. File attributes.
|
||||
</blockquote>
|
||||
</ul>
|
||||
|
||||
<li>
|
||||
<i>CmtBuf</i>
|
||||
<blockquote>
|
||||
<p>Input parameter. Points to the buffer for file comment.</p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.
|
||||
Appropriate parameters are preserved only for compatibility
|
||||
with older versions.</p>
|
||||
<p>Set this field to NULL.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtBufSize</i>
|
||||
<blockquote>
|
||||
<p>Input parameter. Size of buffer for file comments.</p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.</p>
|
||||
<p>Set this field to 0.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtSize</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Size of file comment read into buffer.<p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.</p>
|
||||
<p>Always equal to 0.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtState</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. State of file comment.<p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.</p>
|
||||
<p>Always equal to 0.</p>
|
||||
</blockquote>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RARReadHeader.htm">RARReadHeader</a> function.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
292
unrar/Documentation/RARHeaderDataEx.htm
Normal file
292
unrar/Documentation/RARHeaderDataEx.htm
Normal file
@@ -0,0 +1,292 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>RARHeaderDataEx structure</h3>
|
||||
|
||||
<pre>
|
||||
struct RARHeaderDataEx
|
||||
{
|
||||
char ArcName[1024];
|
||||
wchar_t ArcNameW[1024];
|
||||
char FileName[1024];
|
||||
wchar_t FileNameW[1024];
|
||||
unsigned int Flags;
|
||||
unsigned int PackSize;
|
||||
unsigned int PackSizeHigh;
|
||||
unsigned int UnpSize;
|
||||
unsigned int UnpSizeHigh;
|
||||
unsigned int HostOS;
|
||||
unsigned int FileCRC;
|
||||
unsigned int FileTime;
|
||||
unsigned int UnpVer;
|
||||
unsigned int Method;
|
||||
unsigned int FileAttr;
|
||||
char *CmtBuf;
|
||||
unsigned int CmtBufSize;
|
||||
unsigned int CmtSize;
|
||||
unsigned int CmtState;
|
||||
unsigned int DictSize;
|
||||
unsigned int HashType;
|
||||
char Hash[32];
|
||||
unsigned int RedirType;
|
||||
wchar_t *RedirName;
|
||||
unsigned int RedirNameSize;
|
||||
unsigned int DirTarget;
|
||||
unsigned int Reserved[994];
|
||||
};
|
||||
</pre>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>This structure is used by <a href="RARReadHeaderEx.htm">RARReadHeaderEx</a>
|
||||
function. Please fill either the entire structure or at least its Reserved
|
||||
field with zeroes before passing to RARReadHeaderEx.</p>
|
||||
|
||||
<h3>Structure fields</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<i>ArcName</i>
|
||||
<blockquote>
|
||||
Output parameter, which contains a zero terminated string of the current
|
||||
archive name. May be used to determine the current volume name.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>ArcNameW</i>
|
||||
<blockquote>
|
||||
Output parameter, which contains a zero terminated string of the current
|
||||
archive name in Unicode. May be used to determine the current volume name.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileName</i>
|
||||
<blockquote>
|
||||
Output parameter, which contains a zero terminated string of the file name
|
||||
in OEM (DOS) encoding.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileNameW</i>
|
||||
<blockquote>
|
||||
Output parameter, which contains a zero terminated string of the file name
|
||||
in Unicode.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Flags</i>
|
||||
<blockquote>
|
||||
<p>Output parameter which contains file flags:</p>
|
||||
<table border="1">
|
||||
<tr><td>RHDF_SPLITBEFORE</td><td>0x01</td><td>File continued from previous volume</td></tr>
|
||||
<tr><td>RHDF_SPLITAFTER</td><td>0x02</td><td>File continued on next volume</td></tr>
|
||||
<tr><td>RHDF_ENCRYPTED</td><td>0x04</td><td>File encrypted with password</td></tr>
|
||||
<tr><td></td><td>0x08</td><td>Reserved</td></tr>
|
||||
<tr><td>RHDF_SOLID</td><td>0x10</td><td>Previous files data is used (solid flag)</td></tr>
|
||||
<tr><td>RHDF_DIRECTORY</td><td>0x20</td><td>Directory entry</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>PackSize</i>
|
||||
<blockquote>
|
||||
Output parameter. Lower 32 bits of packed file size. If file is split
|
||||
between volumes, it contains the lower 32 bits of file part size.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>PackSizeHigh</i>
|
||||
<blockquote>
|
||||
Output parameter. Higher 32 bits of packed file size. If file is split
|
||||
between volumes, it contains the higher 32 bits of file part size.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>UnpSize</i>
|
||||
<blockquote>
|
||||
Output parameter. Lower 32 bits of unpacked file size.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>UnpSizeHigh</i>
|
||||
<blockquote>
|
||||
Output parameter. Higher 32 bits of unpacked file size.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>HostOS</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Operating system used to create the archive.</p>
|
||||
|
||||
<table border="1">
|
||||
<tr><td>0</td><td>MS DOS</td></tr>
|
||||
<tr><td>1</td><td>OS/2</td></tr>
|
||||
<tr><td>2</td><td>Windows</td></tr>
|
||||
<tr><td>3</td><td>Unix</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileCRC</i>
|
||||
<blockquote>
|
||||
Output parameter, which contains unpacked file CRC32. In case of file
|
||||
parts split between volumes only the last part contains the correct
|
||||
CRC and it is accessible only in RAR_OM_LIST_INCSPLIT listing mode.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileTime</i>
|
||||
<blockquote>
|
||||
Output parameter. Contains the file modification date and time in standard
|
||||
MS DOS format.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>UnpVer</i>
|
||||
<blockquote>
|
||||
Output parameter. RAR version needed to extract file.
|
||||
It is encoded as 10 * Major version + minor version.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Method</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Packing method.</p>
|
||||
|
||||
<table border="1">
|
||||
<tr><td>0x30</td><td>Storing</td></tr>
|
||||
<tr><td>0x31</td><td>Fastest compression</td></tr>
|
||||
<tr><td>0x32</td><td>Fast compression</td></tr>
|
||||
<tr><td>0x33</td><td>Normal compression</td></tr>
|
||||
<tr><td>0x34</td><td>Good compression</td></tr>
|
||||
<tr><td>0x35</td><td>Best compression</td></tr>
|
||||
</table>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>FileAttr</i>
|
||||
<blockquote>
|
||||
Output parameter. File attributes.
|
||||
</blockquote>
|
||||
</ul>
|
||||
|
||||
<li>
|
||||
<i>CmtBuf</i>
|
||||
<blockquote>
|
||||
<p>Input parameter. Points to the buffer for file comment.</p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.
|
||||
Appropriate parameters are preserved only for compatibility
|
||||
with older versions.</p>
|
||||
<p>Set this field to NULL.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtBufSize</i>
|
||||
<blockquote>
|
||||
<p>Input parameter. Size of buffer for file comments.</p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.</p>
|
||||
<p>Set this field to 0.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtSize</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Size of file comment read into buffer.</p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.</p>
|
||||
<p>Always equal to 0.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtState</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. State of file comment.</p>
|
||||
<p>File comment support is not implemented in current unrar.dll version.</p>
|
||||
<p>Always equal to 0.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>DictSize</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Size of file compression dictionary in kilobytes.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>HashType</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Type of hash function used to protect file data
|
||||
integrity. Can be RAR_HASH_NONE (no checksum or unknown hash function type),
|
||||
RAR_HASH_CRC32 (CRC32) or RAR_HASH_BLAKE2 (BLAKE2sp)</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Hash</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. If HashType is equal to RAR_HASH_BLAKE2, this array
|
||||
contains 32 bytes of file data BLAKE2sp hash.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>RedirType</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Type of file system redirection.</p>
|
||||
<table border="1">
|
||||
<tr><td>0</td><td>No redirection, usual file.</td></tr>
|
||||
<tr><td>1</td><td>Unix symbolic link</td></tr>
|
||||
<tr><td>2</td><td>Windows symbolic link</td></tr>
|
||||
<tr><td>3</td><td>Windows junction</td></tr>
|
||||
<tr><td>4</td><td>Hard link</td></tr>
|
||||
<tr><td>5</td><td>File reference saved with -oi switch</td></tr>
|
||||
</table>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>RedirName</i>
|
||||
<blockquote>
|
||||
<p>Input/output parameter. Pointer to buffer to receive file system
|
||||
redirection target name, such as target of symbolic link or file reference.
|
||||
It is returned as stored in archive and its value might be not immediately
|
||||
applicable for further use. For example, you may need to remove \??\
|
||||
or UNC\ prefixes for Windows junctions or prepend the extraction
|
||||
destination path.</p>
|
||||
<p>If you set RedirName to NULL, it is ignored and nothing is returned
|
||||
here.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>RedirNameSize</i>
|
||||
<blockquote>
|
||||
<p>Input parameter. Size of buffer specified in RedirName. Ignored if
|
||||
RedirName is NULL.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>DirTarget</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Non-zero if RedirType is symbolic link
|
||||
and RedirName points to directory.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Reserved</i>
|
||||
<blockquote>
|
||||
Reserved for future use. The entire array must be filled with zeroes
|
||||
before passing RARHeaderDataEx structure to RARReadHeaderEx.
|
||||
</blockquote>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RARReadHeaderEx.htm">RARReadHeaderEx</a> function.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
38
unrar/Documentation/RAROpenArchive.htm
Normal file
38
unrar/Documentation/RAROpenArchive.htm
Normal file
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>Open RAR archive and allocate memory structures.</p>
|
||||
<p>This function is obsolete. It does not support Unicode names
|
||||
and does not allow to specify the callback function. It is recommended
|
||||
to use <a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> instead.<p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>ArchiveData</i>
|
||||
<blockquote>
|
||||
Points to <a href="RAROpenArchiveData.htm">RAROpenArchiveData structure</a>.
|
||||
</blockquote>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
Archive handle or NULL in case of error.
|
||||
</blockquote>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RAROpenArchiveData.htm">RAROpenArchiveData</a> structure.
|
||||
</blockquote>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
137
unrar/Documentation/RAROpenArchiveData.htm
Normal file
137
unrar/Documentation/RAROpenArchiveData.htm
Normal file
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>RAROpenArchiveData structure</h3>
|
||||
|
||||
<pre>
|
||||
struct RAROpenArchiveData
|
||||
{
|
||||
char *ArcName;
|
||||
UINT OpenMode;
|
||||
UINT OpenResult;
|
||||
char *CmtBuf;
|
||||
UINT CmtBufSize;
|
||||
UINT CmtSize;
|
||||
UINT CmtState;
|
||||
};
|
||||
</pre>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>This structure is used by <a href="RAROpenArchive.htm">RAROpenArchive</a>
|
||||
function.</p>
|
||||
|
||||
<h3>Structure fields</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<i>ArcName</i>
|
||||
<blockquote>
|
||||
Input parameter which should point to zero terminated string
|
||||
containing the archive name.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>OpenMode</i>
|
||||
<blockquote>
|
||||
<p>Input parameter.</p>
|
||||
|
||||
<p>Possible values</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>RAR_OM_LIST</b>
|
||||
<p>Open archive for reading file headers only.</p>
|
||||
|
||||
<li>
|
||||
<b>RAR_OM_EXTRACT</b>
|
||||
<p>Open archive for testing and extracting files.</p>
|
||||
|
||||
<li>
|
||||
<b>RAR_OM_LIST_INCSPLIT</b>
|
||||
<p>Open archive for reading file headers only. If you open an archive
|
||||
in such mode, RARReadHeader[Ex] will return all file headers,
|
||||
including those with "file continued from previous volume" flag.
|
||||
In case of RAR_OM_LIST such headers are automatically skipped.
|
||||
So if you process RAR volumes in RAR_OM_LIST_INCSPLIT mode, you will
|
||||
get several file header records for same file if file is split between
|
||||
volumes. For such files only the last file header record will contain
|
||||
the correct file CRC and if you wish to get the correct packed size,
|
||||
you need to sum up packed sizes of all parts.</p>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>OpenResult</i>
|
||||
<blockquote>
|
||||
<p>Output parameter.</p>
|
||||
|
||||
<p>Possible values:</p>
|
||||
|
||||
<table border=1>
|
||||
<tr><td> 0 </td><td> Success</td></tr>
|
||||
<tr><td> ERAR_NO_MEMORY </td><td> Not enough memory to initialize data structures</td></tr>
|
||||
<tr><td> ERAR_BAD_DATA </td><td> Archive header broken</td></tr>
|
||||
<tr><td> ERAR_UNKNOWN_FORMAT </td><td> Unknown encryption used for archive headers </td></tr>
|
||||
<tr><td> ERAR_EOPEN </td><td> File open error</td></tr>
|
||||
<tr><td> ERAR_BAD_PASSWORD </td>
|
||||
<td>Entered password is invalid. This code is returned only for archives
|
||||
in RAR 5.0 format</td></tr>
|
||||
</table>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtBuf</i>
|
||||
<blockquote>
|
||||
Input parameter which should point to the buffer for archive
|
||||
comments. Maximum comment size is limited to 64Kb. Comment text is
|
||||
zero terminated. If the comment text is larger than the buffer
|
||||
size, the comment text will be truncated. If CmtBuf is set to
|
||||
NULL, comments will not be read.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtBufSize</i>
|
||||
<blockquote>
|
||||
Input parameter which should contain size of buffer for archive
|
||||
comments.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtSize</i>
|
||||
<blockquote>
|
||||
Output parameter containing size of comments actually read into the
|
||||
buffer, cannot exceed CmtBufSize.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtState</i>
|
||||
<blockquote>
|
||||
<p>Output parameter.</p>
|
||||
|
||||
<p>Possible values:</p>
|
||||
|
||||
<table border=1>
|
||||
<tr><td> 0 </td><td> Comments are not present</td></tr>
|
||||
<tr><td> 1 </td><td> Comments are read completely</td></tr>
|
||||
<tr><td> ERAR_NO_MEMORY </td><td> Not enough memory to extract comments</td></tr>
|
||||
<tr><td> ERAR_BAD_DATA </td><td> Broken comment</td></tr>
|
||||
<tr><td> ERAR_SMALL_BUF </td><td> Buffer is too small, comments are not read completely.</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
</ul>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> function.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
194
unrar/Documentation/RAROpenArchiveDataEx.htm
Normal file
194
unrar/Documentation/RAROpenArchiveDataEx.htm
Normal file
@@ -0,0 +1,194 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>RAROpenArchiveDataEx structure</h3>
|
||||
|
||||
<pre>
|
||||
struct RAROpenArchiveDataEx
|
||||
{
|
||||
char *ArcName;
|
||||
wchar_t *ArcNameW;
|
||||
unsigned int OpenMode;
|
||||
unsigned int OpenResult;
|
||||
char *CmtBuf;
|
||||
unsigned int CmtBufSize;
|
||||
unsigned int CmtSize;
|
||||
unsigned int CmtState;
|
||||
unsigned int Flags;
|
||||
UNRARCALLBACK Callback;
|
||||
LPARAM UserData;
|
||||
unsigned int Reserved[28];
|
||||
};
|
||||
</pre>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>This structure is used by <a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a>
|
||||
function.</p>
|
||||
|
||||
<h3>Structure fields</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<i>ArcName</i>
|
||||
<blockquote>
|
||||
Input parameter which should point to zero terminated string
|
||||
containing the archive name or NULL if only Unicode name is specified.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>ArcNameW</i>
|
||||
<blockquote>
|
||||
Input parameter which should point to zero terminated Unicode string
|
||||
containing the archive name or NULL if Unicode name is not specified.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>OpenMode</i>
|
||||
<blockquote>
|
||||
<p>Input parameter.</p>
|
||||
|
||||
<p>Possible values</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>RAR_OM_LIST</b>
|
||||
<p>Open archive for reading file headers only.</p>
|
||||
|
||||
<li>
|
||||
<b>RAR_OM_EXTRACT</b>
|
||||
<p>Open archive for testing and extracting files.</p>
|
||||
|
||||
<li>
|
||||
<b>RAR_OM_LIST_INCSPLIT</b>
|
||||
<p>Open archive for reading file headers only. If you open an archive
|
||||
in such mode, RARReadHeader[Ex] will return all file headers,
|
||||
including those with "file continued from previous volume" flag.
|
||||
In case of RAR_OM_LIST such headers are automatically skipped.
|
||||
So if you process RAR volumes in RAR_OM_LIST_INCSPLIT mode, you will
|
||||
get several file header records for same file if file is split between
|
||||
volumes. For such files only the last file header record will contain
|
||||
the correct file CRC and if you wish to get the correct packed size,
|
||||
you need to sum up packed sizes of all parts.</p>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>OpenResult</i>
|
||||
<blockquote>
|
||||
<p>Output parameter.</p>
|
||||
|
||||
<p>Possible values:</p>
|
||||
|
||||
<table border=1>
|
||||
<tr><td> 0 </td><td> Success</td></tr>
|
||||
<tr><td> ERAR_NO_MEMORY </td><td> Not enough memory to initialize data structures</td></tr>
|
||||
<tr><td> ERAR_BAD_DATA </td><td> Archive header broken</td></tr>
|
||||
<tr><td> ERAR_UNKNOWN_FORMAT </td><td> Unknown encryption used for archive headers </td></tr>
|
||||
<tr><td> ERAR_EOPEN </td><td> File open error</td></tr>
|
||||
<tr><td> ERAR_BAD_PASSWORD </td>
|
||||
<td>Entered password is invalid. This code is returned only for archives
|
||||
in RAR 5.0 format</td></tr>
|
||||
</table>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtBuf</i>
|
||||
<blockquote>
|
||||
Input parameter which should point to the buffer for archive
|
||||
comments. Maximum comment size is limited to 64Kb. Comment text is
|
||||
zero terminated. If the comment text is larger than the buffer
|
||||
size, the comment text will be truncated. If CmtBuf is set to
|
||||
NULL, comments will not be read.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtBufSize</i>
|
||||
<blockquote>
|
||||
Input parameter which should contain size of buffer for archive
|
||||
comments.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtSize</i>
|
||||
<blockquote>
|
||||
Output parameter containing size of comments actually read into the
|
||||
buffer, cannot exceed CmtBufSize.
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>CmtState</i>
|
||||
<blockquote>
|
||||
<p>Output parameter.</p>
|
||||
|
||||
<p>Possible values:</p>
|
||||
|
||||
<table border=1>
|
||||
<tr><td> 0 </td><td> Comments are not present</td></tr>
|
||||
<tr><td> 1 </td><td> Comments are read completely</td></tr>
|
||||
<tr><td> ERAR_NO_MEMORY </td><td> Not enough memory to extract comments</td></tr>
|
||||
<tr><td> ERAR_BAD_DATA </td><td> Broken comment</td></tr>
|
||||
<tr><td> ERAR_SMALL_BUF </td><td> Buffer is too small, comments are not read completely.</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Flags</i>
|
||||
<blockquote>
|
||||
<p>Output parameter. Combination of bit flags..</p>
|
||||
|
||||
<p>Possible values:</p>
|
||||
|
||||
<table border=1>
|
||||
<tr><td> 0x0001 </td><td> Volume attribute (archive volume)</td></tr>
|
||||
<tr><td> 0x0002 </td><td> Archive comment present</td></tr>
|
||||
<tr><td> 0x0004 </td><td> Archive lock attribute</td></tr>
|
||||
<tr><td> 0x0008 </td><td> Solid attribute (solid archive)</td></tr>
|
||||
<tr><td> 0x0010 </td><td> New volume naming scheme ('volname.partN.rar')</td></tr>
|
||||
<tr><td> 0x0020 </td><td> Authenticity information present</td></tr>
|
||||
<tr><td> 0x0040 </td><td> Recovery record present</td></tr>
|
||||
<tr><td> 0x0080 </td><td> Block headers are encrypted</td></tr>
|
||||
<tr><td> 0x0100 </td><td> First volume (set only by RAR 3.0 and later)</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Callback</i>
|
||||
<blockquote>
|
||||
<p>Address of <a href="RARCallback.htm">user defined callback function</a>
|
||||
to process UnRAR events.</p>
|
||||
<p>Set it to NULL if you do not want to define the callback function.
|
||||
Callback function is required to process multivolume and encrypted
|
||||
archives properly.</p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>UserData</i>
|
||||
<blockquote>
|
||||
<p>User defined value, which will be passed to
|
||||
<a href="RARCallback.htm">callback function.</a></p>
|
||||
</blockquote>
|
||||
|
||||
<li>
|
||||
<i>Reserved[28]</i>
|
||||
<blockquote>
|
||||
<p>Reserved for future use. Must be zero.</p>
|
||||
</blockquote>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RAROpenArchive.htm">RAROpenArchiveEx</a> function.<br>
|
||||
<a href="RARCallback.htm">User defined callback function</a>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
38
unrar/Documentation/RAROpenArchiveEx.htm
Normal file
38
unrar/Documentation/RAROpenArchiveEx.htm
Normal file
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>Open RAR archive and allocate memory structures. Replaces the obsolete
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> providing more options
|
||||
and Unicode names support.
|
||||
</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>ArchiveData</i>
|
||||
<blockquote>
|
||||
Points to <a href="RAROpenArchiveDataEx.htm">RAROpenArchiveDataEx structure</a>.
|
||||
</blockquote>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
Archive handle or NULL in case of error.
|
||||
</blockquote>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RAROpenArchiveDataEx.htm">RAROpenArchiveDataEx</a> structure.
|
||||
</blockquote>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
118
unrar/Documentation/RARProcessFile.htm
Normal file
118
unrar/Documentation/RARProcessFile.htm
Normal file
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>
|
||||
int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
|
||||
<p>Performs the user defined action and moves the current position
|
||||
in the archive to the next file.</p>
|
||||
|
||||
<p>If archive is opened in RAR_OM_EXTRACT mode, this function extracts
|
||||
or tests the current file and sets the archive position to the next file.</p>
|
||||
|
||||
<p>If open mode is RAR_OM_LIST, then a call to this function will skip
|
||||
the current file and set the archive position to the next file.</p>
|
||||
|
||||
<p>It is recommended to use <a href="RARProcessFileW.htm">RARProcessFileW</a>
|
||||
insted of this function, because RARProcessFileW supports Unicode.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>hArcData</i>
|
||||
<blockquote>
|
||||
This parameter should contain the archive handle obtained from
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> or
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function call.
|
||||
</blockquote>
|
||||
|
||||
<i>Operation</i>
|
||||
<blockquote>
|
||||
<p>File operation.</p>
|
||||
|
||||
<p>Possible values</p>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>RAR_SKIP</td>
|
||||
<td>Move to the next file in the archive. If archive is solid
|
||||
and RAR_OM_EXTRACT mode was set when the archive was opened,
|
||||
the current file is analyzed and operation is performed slower
|
||||
than a simple seek.</td>
|
||||
</tr><tr>
|
||||
<td>RAR_TEST</td>
|
||||
<td>Test the current file and move to the next file in the archive.
|
||||
If the archive was opened in RAR_OM_LIST mode, the operation
|
||||
is equal to RAR_SKIP.</td>
|
||||
</tr><tr>
|
||||
<td>RAR_EXTRACT</td>
|
||||
<td>Extract the current file and move to the next file in the archive.
|
||||
If the archive was opened with RAR_OM_LIST mode, the operation
|
||||
is equal to RAR_SKIP.</td>
|
||||
</tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<i>DestPath</i>
|
||||
<blockquote>
|
||||
<p>This parameter should point to a zero terminated string, containing
|
||||
the destination directory to place the extracted files to. If DestPath
|
||||
is equal to NULL, it means extracting to the current directory.
|
||||
This parameter has meaning only if DestName is NULL.</p>
|
||||
|
||||
<p>This parameter must be in OEM encoding. If necessary, use CharToOem
|
||||
to convert text to OEM before passing it as DestPath.</p>
|
||||
</blockquote>
|
||||
|
||||
<i>DestName</i>
|
||||
<blockquote>
|
||||
<p>This parameter should point to a zero terminated string, containing
|
||||
the full path and name to assign to extracted file or it can be NULL
|
||||
to use the default name. If DestName is defined (not NULL),
|
||||
it overrides both the original file name stored in the archive
|
||||
and path specified in DestPath setting.</p>
|
||||
|
||||
<p>This parameter must be in OEM encoding. If necessary, use CharToOem
|
||||
to convert text to OEM before passing it as DestName.</p>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td> 0 </td><td> Success </td></tr>
|
||||
<tr><td> ERAR_BAD_DATA </td><td> File CRC error </td></tr>
|
||||
<tr><td> ERAR_UNKNOWN_FORMAT </td><td> Unknown archive format </td></tr>
|
||||
<tr><td> ERAR_EOPEN </td><td> Volume open error </td></tr>
|
||||
<tr><td> ERAR_ECREATE </td><td> File create error </td></tr>
|
||||
<tr><td> ERAR_ECLOSE </td><td> File close error </td></tr>
|
||||
<tr><td> ERAR_EREAD </td><td> Read error </td></tr>
|
||||
<tr><td> ERAR_EWRITE </td><td> Write error </td></tr>
|
||||
<tr><td> ERAR_NO_MEMORY </td><td> Not enough memory</td></tr>
|
||||
<tr><td> ERAR_EREFERENCE </td>
|
||||
<td>When attempting to unpack a reference record (see RAR -oi switch),
|
||||
source file for this reference was not found. Entire archive needs to be
|
||||
unpacked to properly create file references. This error is returned when
|
||||
attempting to unpack the reference record without its source file.</td></tr>
|
||||
<tr><td> ERAR_BAD_PASSWORD </td>
|
||||
<td>Entered password is invalid. This code is returned only for archives
|
||||
in RAR 5.0 format</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<h3>Notes</h3>
|
||||
<blockquote>
|
||||
If you wish to cancel extraction, return -1 when processing UCM_PROCESSDATA
|
||||
message in <a href="RARCallback.htm">user defined callback function</a>.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
109
unrar/Documentation/RARProcessFileW.htm
Normal file
109
unrar/Documentation/RARProcessFileW.htm
Normal file
@@ -0,0 +1,109 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
|
||||
<p>Performs the user defined action and moves the current position
|
||||
in the archive to the next file.</p>
|
||||
|
||||
<p>If archive is opened in RAR_OM_EXTRACT mode, this function extracts
|
||||
or tests the current file and sets the archive position to the next file.</p>
|
||||
|
||||
<p>If open mode is RAR_OM_LIST, then a call to this function will skip
|
||||
the current file and set the archive position to the next file.</p>
|
||||
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>hArcData</i>
|
||||
<blockquote>
|
||||
This parameter should contain the archive handle obtained from
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> or
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function call.
|
||||
</blockquote>
|
||||
|
||||
<i>Operation</i>
|
||||
<blockquote>
|
||||
<p>File operation.</p>
|
||||
|
||||
<p>Possible values</p>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>RAR_SKIP</td>
|
||||
<td>Move to the next file in the archive. If archive is solid
|
||||
and RAR_OM_EXTRACT mode was set when the archive was opened,
|
||||
the current file is analyzed and operation is performed slower
|
||||
than a simple seek.</td>
|
||||
</tr><tr>
|
||||
<td>RAR_TEST</td>
|
||||
<td>Test the current file and move to the next file in the archive.
|
||||
If the archive was opened in RAR_OM_LIST mode, the operation
|
||||
is equal to RAR_SKIP.</td>
|
||||
</tr><tr>
|
||||
<td>RAR_EXTRACT</td>
|
||||
<td>Extract the current file and move to the next file in the archive.
|
||||
If the archive was opened with RAR_OM_LIST mode, the operation
|
||||
is equal to RAR_SKIP.</td>
|
||||
</tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<i>DestPath</i>
|
||||
<blockquote>
|
||||
<p>This parameter should point to a zero terminated Unicode string,
|
||||
containing the destination directory to place the extracted files to.
|
||||
If DestPath is equal to NULL, it means extracting to the current directory.
|
||||
This parameter has meaning only if DestName is NULL.</p>
|
||||
</blockquote>
|
||||
|
||||
<i>DestName</i>
|
||||
<blockquote>
|
||||
<p>This parameter should point to a zero terminated Unicode string,
|
||||
containing the full path and name to assign to extracted file
|
||||
or it can be NULL to use the default name. If DestName is defined
|
||||
(not NULL), it overrides both the original file name stored
|
||||
in the archive and path specified in DestPath setting.</p>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td> 0 </td><td> Success </td></tr>
|
||||
<tr><td> ERAR_BAD_DATA </td><td> File CRC error </td></tr>
|
||||
<tr><td> ERAR_UNKNOWN_FORMAT </td><td> Unknown archive format </td></tr>
|
||||
<tr><td> ERAR_EOPEN </td><td> Volume open error </td></tr>
|
||||
<tr><td> ERAR_ECREATE </td><td> File create error </td></tr>
|
||||
<tr><td> ERAR_ECLOSE </td><td> File close error </td></tr>
|
||||
<tr><td> ERAR_EREAD </td><td> Read error </td></tr>
|
||||
<tr><td> ERAR_EWRITE </td><td> Write error </td></tr>
|
||||
<tr><td> ERAR_NO_MEMORY </td><td> Not enough memory</td></tr>
|
||||
<tr><td> ERAR_EREFERENCE </td>
|
||||
<td>When attempting to unpack a reference record (see RAR -oi switch),
|
||||
source file for this reference was not found. Entire archive needs to be
|
||||
unpacked to properly create file references. This error is returned when
|
||||
attempting to unpack the reference record without its source file.</td></tr>
|
||||
<tr><td> ERAR_BAD_PASSWORD </td>
|
||||
<td>Entered password is invalid. This code is returned only for archives
|
||||
in RAR 5.0 format</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<h3>Notes</h3>
|
||||
<blockquote>
|
||||
If you wish to cancel extraction, return -1 when processing UCM_PROCESSDATA
|
||||
message in <a href="RARCallback.htm">user defined callback function</a>.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
51
unrar/Documentation/RARReadHeader.htm
Normal file
51
unrar/Documentation/RARReadHeader.htm
Normal file
@@ -0,0 +1,51 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>Read a file header from archive.</p>
|
||||
<p>This function is obsolete. It does not support Unicode names
|
||||
and 64 bit file sizes. It is recommended to use
|
||||
<a href="RARReadHeaderEx.htm">RARReadHeaderEx</a> instead.<p>
|
||||
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>hArcData</i>
|
||||
<blockquote>
|
||||
This parameter should contain the archive handle obtained from
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> or
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function call.
|
||||
</blockquote>
|
||||
|
||||
<i>HeaderData</i>
|
||||
<blockquote>
|
||||
Points to <a href="RARHeaderData.htm">RARHeaderData structure</a>.
|
||||
</blockquote>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td>0</td><td>Success</td></tr>
|
||||
<tr><td>ERAR_END_ARCHIVE</td><td>End of archive</td></tr>
|
||||
<tr><td>ERAR_BAD_DATA</td><td>File header broken</td></tr>
|
||||
<tr><td>ERAR_MISSING_PASSWORD</td><td>Password was not provided
|
||||
for encrypted file header</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RARHeaderData.htm">RARHeaderData</a> structure.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
48
unrar/Documentation/RARReadHeaderEx.htm
Normal file
48
unrar/Documentation/RARReadHeaderEx.htm
Normal file
@@ -0,0 +1,48 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
<p>Read a file header from archive.</p>
|
||||
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>hArcData</i>
|
||||
<blockquote>
|
||||
This parameter should contain the archive handle obtained from
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> or
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function call.
|
||||
</blockquote>
|
||||
|
||||
<i>HeaderData</i>
|
||||
<blockquote>
|
||||
Points to <a href="RARHeaderDataEx.htm">RARHeaderDataEx structure</a>.
|
||||
</blockquote>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td>0</td><td>Success</td></tr>
|
||||
<tr><td>ERAR_END_ARCHIVE</td><td>End of archive</td></tr>
|
||||
<tr><td>ERAR_BAD_DATA</td><td>File header broken</td></tr>
|
||||
<tr><td>ERAR_MISSING_PASSWORD</td><td>Password was not provided
|
||||
for encrypted file header</td></tr>
|
||||
</table>
|
||||
</blockquote>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RARHeaderDataEx.htm">RARHeaderDataEx</a> structure.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
64
unrar/Documentation/RARSetCallback.htm
Normal file
64
unrar/Documentation/RARSetCallback.htm
Normal file
@@ -0,0 +1,64 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>void PASCAL RARSetCallback(HANDLE hArcData,
|
||||
int PASCAL (*Callback)(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2),
|
||||
LPARAM UserData)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
|
||||
<p>Set a <a href="RARCallback.htm">user defined callback function</a>
|
||||
to process UnRAR events.</p>
|
||||
|
||||
<p>RARSetCallback is obsolete and less preferable way to specify the callback
|
||||
function. Recommended approach is to set <i>Callback</i> and <i>UserData</i>
|
||||
fields in <a href="RAROpenArchiveDataEx.htm">RAROpenArchiveDataEx</a>
|
||||
structure, when calling <a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a>.
|
||||
If you use RARSetCallback, you will not be able to read the archive comment
|
||||
in archives with encrypted headers. If you do not need the archive comment,
|
||||
you can continue to use RARSetCallback.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>hArcData</i>
|
||||
<blockquote>
|
||||
This parameter should contain the archive handle obtained from
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> or
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function call.
|
||||
</blockquote>
|
||||
|
||||
<i>Callback</i>
|
||||
<blockquote>
|
||||
<p>Address of <a href="RARCallback.htm">user defined callback function</a>
|
||||
to process UnRAR events.</p>
|
||||
<p>Set it to NULL if you do not want to define the callback function.
|
||||
Callback function is required to process multivolume and encrypted
|
||||
archives properly.</p>
|
||||
</blockquote>
|
||||
|
||||
<i>UserData</i>
|
||||
<blockquote>
|
||||
<p>User defined value, which will be passed to
|
||||
<a href="RARCallback.htm">callback function.</a></p>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
None.
|
||||
</blockquote>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RARCallback.htm">User defined callback function</a>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
21
unrar/Documentation/RARSetChangeVolProc.htm
Normal file
21
unrar/Documentation/RARSetChangeVolProc.htm
Normal file
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>
|
||||
void PASCAL RARSetChangeVolProc(HANDLE hArcData,
|
||||
int PASCAL (*ChangeVolProc)(char *ArcName,int Mode))
|
||||
</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
|
||||
Obsolete. Use <a href="RARCallback.htm">the callback function</a> instead.
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
49
unrar/Documentation/RARSetPassword.htm
Normal file
49
unrar/Documentation/RARSetPassword.htm
Normal file
@@ -0,0 +1,49 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>void PASCAL RARSetPassword(HANDLE hArcData,char *Password)</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
|
||||
<p>Set a password to decrypt files.</p>
|
||||
|
||||
<p>This function does not allow to process archives with encrypted headers.
|
||||
It can be used only for archives with encrypted file data and unencrypted
|
||||
headers. So the recommended way to set a password is UCM_NEEDPASSWORDW
|
||||
message in <a href="RARCallback.htm">user defined callback function</a>.
|
||||
Unlike RARSetPassword, UCM_NEEDPASSWORDW can be used for all types of
|
||||
encrypted RAR archives.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
|
||||
<i>hArcData</i>
|
||||
<blockquote>
|
||||
This parameter should contain the archive handle obtained from
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a> or
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a> function call.
|
||||
</blockquote>
|
||||
|
||||
<i>Password</i>
|
||||
<blockquote>
|
||||
Zero terminated string containing a password.
|
||||
</blockquote>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<blockquote>
|
||||
None.
|
||||
</blockquote>
|
||||
|
||||
<h3>See also</h3>
|
||||
<blockquote>
|
||||
<a href="RARCallback.htm">User defined callback function</a>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
21
unrar/Documentation/RARSetProcessDataProc.htm
Normal file
21
unrar/Documentation/RARSetProcessDataProc.htm
Normal file
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h3>
|
||||
void PASCAL RARSetProcessDataProc(HANDLE hArcData,
|
||||
int PASCAL (*ProcessDataProc)(unsigned char *Addr,int Size))
|
||||
</h3>
|
||||
|
||||
<h3>Description</h3>
|
||||
|
||||
Obsolete. Use <a href="RARCallback.htm">the callback function</a> instead.
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
40
unrar/Documentation/index.htm
Normal file
40
unrar/Documentation/index.htm
Normal file
@@ -0,0 +1,40 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>UnRAR.dll Manual</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h2>UnRAR.dll decompression library</h2>
|
||||
|
||||
<b><p><a href="Introduction.htm">Introduction</a><p></b>
|
||||
|
||||
<a name="functions"></a>
|
||||
<h3>Functions</h3>
|
||||
<blockquote>
|
||||
<a href="RAROpenArchive.htm">RAROpenArchive</a><br>
|
||||
<a href="RAROpenArchiveEx.htm">RAROpenArchiveEx</a><br>
|
||||
<a href="RARCloseArchive.htm">RARCloseArchive</a><br>
|
||||
<a href="RARReadHeader.htm">RARReadHeader</a><br>
|
||||
<a href="RARReadHeaderEx.htm">RARReadHeaderEx</a><br>
|
||||
<a href="RARProcessFile.htm">RARProcessFile</a><br>
|
||||
<a href="RARProcessFileW.htm">RARProcessFileW</a><br>
|
||||
<a href="RARSetCallback.htm">RARSetCallback</a><br>
|
||||
<a href="RARSetChangeVolProc.htm">RARSetChangeVolProc</a><br>
|
||||
<a href="RARSetProcessDataProc.htm">RARSetProcessDataProc</a><br>
|
||||
<a href="RARSetPassword.htm">RARSetPassword</a><br>
|
||||
<a href="RARGetDllVersion.htm">RARGetDllVersion</a><br>
|
||||
</blockquote>
|
||||
|
||||
<h3>Structures</h3>
|
||||
<blockquote>
|
||||
<a href="RAROpenArchiveData.htm">RAROpenArchiveData</a><br>
|
||||
<a href="RAROpenArchiveDataEx.htm">RAROpenArchiveDataEx</a><br>
|
||||
<a href="RARHeaderData.htm">RARHeaderData</a><br>
|
||||
<a href="RARHeaderDataEx.htm">RARHeaderDataEx</a><br>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
Reference in New Issue
Block a user