etc.negui.wrapper.commonarchivers.commonarchivers

統合アーカイバ。
動的に使用することを前提。
Note:
API仕様とかまったく知らないのけどとりあえずラップしてみる。 未確認だけどAPI自体は呼び出せるはず。
ToDo:
とりあえずmodule/package作っただけ。
class CommonArchiversException: etc.negui.wrapper.wrapper.WrapperException;

interface ICommonArchivers;

class CommonArchiver: etc.negui.file.dll.DLL, etc.negui.wrapper.commonarchivers.commonarchivers.ICommonArchivers, etc.negui.wrapper.wrapper.IWrapper, etc.negui.system.raii.IInitialize;

protected const Text _head;
頭。
int function(const(char)* _szFileName, int _iMode) CheckArchiveA;

int function(const(wchar)* _szFileName, int _iMode) CheckArchiveW;

int function() ClearEnumMembersProc;

int function() ClearEnumMembersProc64;

int function() ClearOwnerWindow;

int function(HANDLE _hwnd, char* _lpszComBuffer, int _iMode) ConfigDialogA;

int function(HANDLE _hwnd, wchar* _lpszComBuffer, int _iMode) ConfigDialogW;

int function(HARC _harc, ULHA_INT64* _lpllLastAccessTime) GetAccessTime64;

int function(HARC _harc, FILETIME* _lpftLastAccessTime) GetAccessTimeEx;

int function(HARC _harc, ULHA_INT64* _lpllLastAccessTime) GetArcAccessTime64;

int function(HARC _harc, FILETIME* _lpftLastAccessTime) GetArcAccessTimeEx;

int function(HARC _harc, ULHA_INT64* _lpllSize) GetArcCompressedSizeEx;

int function(HARC _harc, ULHA_INT64* _lpllCreationTime) GetArcCreateTime64;

int function(HARC _harc, FILETIME* _lpftCreationTime) GetArcCreateTimeEx;

int function(HARC _harc, ULHA_INT64* _lpllSize) GetArcFileSizeEx;

int function(HARC _harc, ULHA_INT64* _lpllSize) GetArcOriginalSizeEx;

int function(HARC _harc, ULHA_INT64* _lpllSize) GetArcReadSizeEx;

int function(HARC _harc, ULHA_INT64* _lpllLastWriteTime) GetArcWriteTime64;

int function(HARC _harc, FILETIME* _lpftLastWriteTime) GetArcWriteTimeEx;

int function() GetBackGroundMode;

int function(HARC _harc, ULHA_INT64* _lpllSize) GetCompressedSizeEx;

int function(HARC _harc, ULHA_INT64* _lpllCreationTime) GetCreateTime64;

int function(HARC _harc, FILETIME* _lpftCreationTime) GetCreateTimeEx;

int function() GetCursorMode;

int function(HARC _harc, ULHA_INT64* _lpllSize) GetOriginalSizeEx;

int function() GetRunning;

int function(HARC _harc, ULHA_INT64* _lpllLastWriteTime) GetWriteTime64;

int function(HARC _harc, FILETIME* _lpftLastWriteTime) GetWriteTimeEx;

int function(HANDLE _hwnd) KillOwnerWindowEx;

int function(HANDLE _hwnd) KillOwnerWindowEx64;

int function(int _iFunction) QueryFunctionList;

int function(int _BackGroundMode) SetBackGroundMode;

int function(uint _uCodePage) SetCP;

int function(ushort _Interval) SetCursorInterval;

int function(int _CursorMode) SetCursorMode;

int function(int function(void*)* _lpEnumProc, uint _dwStructSize) SetEnumMembersProc64;

int function(int function(void*)* _lpEnumProc) SetEnumMembersProcA;

int function(int function(void*)* _lpEnumProc) SetEnumMembersProcW;

int function() SetLangueEnglish;

int function() SetLangueJapanese;

int function(ushort _wLanguage) SetLangueSpecified;

int function(HANDLE _hwnd) SetOwnerWindowA;

int function(HANDLE _hwnd, int function(HANDLE, uint, uint, void*)* _lpArcProc, uint _dwStructSize) SetOwnerWindowEx64;

int function(HANDLE _hwnd, int function(HANDLE, uint, uint, void*)* _lpArcProc) SetOwnerWindowExA;

int function(HANDLE _hwnd, int function(HANDLE, uint, uint, void*)* _lpArcProc) SetOwnerWindowExW;

int function(HANDLE _hwnd) SetOwnerWindowW;

int function(int _bUnicode) SetUnicodeMode;

uint function(HARC _harc) GetAccessTime;

uint function(HARC _harc) GetArcAccessTime;

uint function(HARC _harc) GetArcCompressedSize;

uint function(HARC _harc) GetArcCreateTime;

uint function(HARC _harc) GetArcFileSize;

uint function(HARC _harc) GetArcOriginalSize;

uint function(HARC _harc) GetArcReadSize;

uint function(HARC _harc) GetArcWriteTime;

uint function(HARC _harc) GetCRC;

uint function(HARC _harc) GetCompressedSize;

uint function(HARC _harc) GetCreateTime;

uint function(HARC _harc) GetOriginalSize;

uint function(HARC _harc) GetWriteTime;

HARC function(HANDLE _hwnd, const(char)* _szFileName, uint _dwMode, const(char)* _szOption) OpenArchive2A;

HARC function(HANDLE _hwnd, const(wchar)* _szFileName, uint _dwMode, const(wchar)* _szOption) OpenArchive2W;

HARC function(HANDLE _hwnd, const(char)* _szFileName, uint _dwMode) OpenArchiveA;

HARC function(HANDLE _hwnd, const(wchar)* _szFileName, uint _dwMode) OpenArchiveW;

uint function(HARC _harc) GetArcOSType;

uint function() GetCP;

uint function(HARC _harc) GetOSType;

ushort function(HARC _harc) GetArcDate;

ushort function(HARC _harc) GetArcRatio;

ushort function(HARC _harc) GetArcTime;

ushort function() GetCursorInterval;

ushort function(HARC _harc) GetDate;

ushort function(HARC _harc) GetRatio;

ushort function() GetSubVersion;

ushort function(HARC _harc) GetTime;

ushort function() GetVersion;

int function(HARC _harc) CloseArchive;

int function(HANDLE _hwndParent, const(char)* _szCmdLine, ubyte* _lpBuffer, uint _dwSize, int* _lpTime, ushort* _lpwAttr, uint* _lpdwWriteSize) CompressMemA;

int function(HANDLE _hwndParent, const(wchar)* _szCmdLine, ubyte* _lpBuffer, uint _dwSize, int* _lpTime, ushort* _lpwAttr, uint* _lpdwWriteSize) CompressMemW;

int function(HANDLE _hwndParent, const(char)* _szCmdLine, ubyte* _lpBuffer, uint _dwSize, int* _lpTime, ushort* _lpwAttr, uint* _lpdwWriteSize) ExtractMemA;

int function(HANDLE _hwndParent, const(wchar)* _szCmdLine, ubyte* _lpBuffer, uint _dwSize, int* _lpTime, ushort* _lpwAttr, uint* _lpdwWriteSize) ExtractMemW;

int function(HARC _harc, const(char)* _szWildName, INDIVIDUALINFOA* _lpSubInfo) FindFirstA;

int function(HARC _harc, const(wchar)* _szWildName, INDIVIDUALINFOW* _lpSubInfo) FindFirstW;

int function(HARC _harc, INDIVIDUALINFOA* _lpSubInfo) FindNextA;

int function(HARC _harc, INDIVIDUALINFOW* _lpSubInfo) FindNextW;

int function(HARC _harc, char* _lpBuffer, int _nSize) GetArcFileNameA;

int function(HARC _harc, wchar* _lpBuffer, int _nSize) GetArcFileNameW;

int function(HARC _harc) GetAttribute;

int function(HARC _harc) GetAttributes;

int function(const(char)* _szArcFile) GetFileCountA;

int function(const(wchar)* _szArcFile) GetFileCountW;

int function(HARC _harc, char* _lpBuffer, int _nSize) GetFileNameA;

int function(HARC _harc, wchar* _lpBuffer, int _nSize) GetFileNameW;

int function(uint* _lpdwSystemError) GetLastError;

int function(HARC _harc, char* _lpBuffer, int _nSize) GetMethodA;

int function(HARC _harc, wchar* _lpBuffer, int _nSize) GetMethodW;

int function(HARC _harc) IsSFXFile;

int function(HANDLE _hwnd, const(char)* _szCmdLine, char* _szOutput, uint _dwSize) CommandA;
int function(HANDLE _hwnd, const(wchar)* _szCmdLine, wchar* _szOutput, uint _dwSize) CommandW;
コマンド。
alias CheckArchive;

alias ConfigDialog;

alias SetEnumMembersProc;

alias SetOwnerWindowEx;

alias OpenArchive;

alias FindFirst;

alias FindNext;

alias GetArcFileName;

alias GetFileCount;

alias GetFileName;

alias GetMethod;

alias Command;

void initialize();
関数を全て読み込む。
Inheritance:
共通部分はこいつで読み込めるようにしたい。
this(in Text Path , in Text HeadName );

const ubyte[4u] getVersion();
バージョン情報取得。
Returns:
DLLバージョン。
ドキュメント中ではバージョンは1.23.4.5としてa.bc.d.eと読み替える。 戻り値の要素ごとに各値が設定される。
戻り値の配列はarray[a, bc, d, e]となる。
DLLバージョンが0.20未満の場合、d, eの部分は0。
UNLHA32.DLL, API.TXT参照
バージョン 意味
a メジャーバージョン。
b APIの追加や仕様変更の際には必ずインクリメントされます。
c 改版のたびにインクリメントされます。 返却値の仕様から, 10 回改版されれば API の変更等にかかわらず b のほうもインクリメントされる結果となることに注意してください。
d 修正バージョンやβ版等, 改版に満たない修正版の際にインクリメントされます。 ドキュメント等で 1.45a となっていれば a の部分を表します。b なら 2 となります。
e 版においてのパッチレベル。レベルが 100 を超えると d が一つインクリメントされます。
Wrappers:
  • GetVersion
  • GetSubVersion
const Text getVersionText();
バージョン情報文字列取得。
Returns:
getVersionで取得した内容を書式化した文字列。
Note:
dの部分が[a-z]までしか対応できてないけど問題ないはず。
const bool isRunning();
現在のAPI動作確認。
Returns:
動作中であればtrue、非動作中ならfalse。
trueの場合はAPIの実行が出来ない。
Wrappers:
  • GetRunning
const bool backGroundMode();
バックグラウンドモードの確認。
Wrappers:
  • GetBackGroundMode
bool backGroundMode(bool Mode );
バックグラウンドモードを設定。
Params:
bool Mode
バックグラウンドモードの状態。 trueでバックグラウンドモード、falseで非バックグラウンドモード。
Returns:
成功時にtrue、失敗時にfalse。
詳細はlastError参照。
Wrappers:
  • SetBackGroundMode
const bool cursorMode();
独自カーソル表示状態取得。
Wrappers:
  • GetCursorMode
bool cursorMode(bool Mode );
独自カーソル表示設定。
Wrappers:
  • SetCursorMode
WORD CURSOR_INTERVAL;

const WORD cursorInterval();
独自カーソルの回転速度取得。
Returns:
回転速度をミリ秒で返す。
Wrappers:
  • GetCursorInterval
bool cursorInterval(WORD Ms );
独自カーソルの回転速度設定。
Params:
WORD Ms
ミリ秒。
Returns:
成功の真偽値。
Wrappers:
  • SetCursorInterval
Text command(in Window window , in Text cmd , size_t Buffer = (BUFFER).TEXT);
コマンド。
BUGS:
A, Wと0.01から実装されているやつ、とりあえず全てにおいて微妙すぎる。