Frost Moon Project

Src/ArcDll.h-Ashley Ver.1.30- - Frost Moon Project アクセスランキング

Home > ソフトウェア > Ashley > Ashley130.zip/Ashley130.exe > Src > ArcDll.h

//ArcDll.h

/*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
    Ashley Ver.1.30
    Coded by x@rgs

    This code is released under NYSL Version 0.9982
    See NYSL_withfaq.TXT for further details.

    Ashleyは、アップローダからダウンロードしたZIPやRAR等のファイル名を元に戻すソフトです。
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*/


#ifndef ARCDLL_H
#define ARCDLL_H
#include "third-party/unlha32/UNLHA32.H"

class CArcDll{
public:
    //コンストラクタ
    CArcDll();
    //デストラクタ
    virtual ~CArcDll();

public:
    //DLLをロードします
    bool LoadDll(LPCTSTR lpzDllName,LPCTSTR lpszDllPrefix);
    //DLLを解放します
    bool UnloadDll();

protected:
    LPCTSTR m_lpszDllName;
    LPCTSTR m_lpszDllPrefix;
    HMODULE m_hDll;
    HARC m_hArc;

protected:
    //関数名を投げるだけで良いGetProcAddress
    FARPROC GetProcAddress(LPCTSTR lpProcName);

public:
    //DLLの動作中にカーソルを表示するモードか否かを設定します
    bool SetCursorMode(const bool _CursorMode);
    //現在DLLが動作中か否かを得ます
    bool GetRunning();
    //指定ファイルがサポートしている書庫ファイルとして正しいかどうかを返します。
    bool CheckArchive(LPCTSTR _szFileName,const int _iMode);
    //指定ファイルがサポートしている書庫ファイルとして正しいかどうかを返します。[ANSI]
    bool CheckArchiveA(LPCSTR _szFileName,const int _iMode);
    //指定ファイルがサポートしている書庫ファイルとして正しいかどうかを返します。[Unicode]
    bool CheckArchiveW(LPCWSTR _szFileName,const int _iMode);
    //指定したアーカイブファイルの形式を得ます。
    int     GetArchiveType(LPCSTR szFileName);
    //指定されたAPIが使用可能かどうかを得ます
    bool QueryFunctionList(const int _iFunction);
    //指定ファイルが有効な書庫ファイルかどうか調べ、有効であればオープンし、一意の数値(ハンドル)を返します。
    HARC OpenArchive(const HWND _hwnd,LPCTSTR _szFileName,const DWORD _dwMode);
    //指定ファイルが有効な書庫ファイルかどうか調べ、有効であればオープンし、一意の数値(ハンドル)を返します。[ANSI]
    HARC OpenArchiveA(const HWND _hwnd,LPCSTR _szFileName,const DWORD _dwMode);
    //指定ファイルが有効な書庫ファイルかどうか調べ、有効であればオープンし、一意の数値(ハンドル)を返します。[Unicode]
    HARC OpenArchiveW(const HWND _hwnd,LPCWSTR _szFileName,const DWORD _dwMode);
    //OpenArchive()で割り付けたハンドルを解放する
    int CloseArchive();
    //最初の格納ファイルの情報を得ます
    int FindFirst(LPCTSTR _szWildName,INDIVIDUALINFO FAR *lpSubInfo);
    //最初の格納ファイルの情報を得ます[ANSI]
    int FindFirstA(LPCSTR _szWildName,INDIVIDUALINFOA FAR *lpSubInfo);
    //最初の格納ファイルの情報を得ます[Unicode]
    int FindFirstW(LPCWSTR _szWildName,INDIVIDUALINFOW FAR *lpSubInfo);
    //2番目以降の格納ファイルの情報を返す
    int FindNext(INDIVIDUALINFO FAR *_lpSubInfo);
    //2番目以降の格納ファイルの情報を返す[ANSI]
    int FindNextA(INDIVIDUALINFOA FAR *_lpSubInfo);
    //2番目以降の格納ファイルの情報を返す[Unicode]
    int FindNextW(INDIVIDUALINFOW FAR *_lpSubInfo);
    //次の格納ファイルの情報を得ます
    int GetFileName(LPTSTR _lpBuffer,const int _nSize);
    //次の格納ファイルの情報を得ます[ANSI]
    int GetFileNameA(LPSTR _lpBuffer,const int _nSize);
    //次の格納ファイルの情報を得ます[Unicode]
    int GetFileNameW(LPWSTR _lpBuffer,const int _nSize);
    //格納ファイルのサイズを64ビット整数で得ます
    bool GetOriginalSizeEx(ULHA_INT64* lpllSize);
    //格納ファイルの圧縮サイズを得ます
    bool GetCompressedSizeEx(ULHA_INT64* lpllSize);
    //格納ファイルの属性を得ます
    int GetAttribute();
    //メモリーバッファへ展開します
    int ExtractMem(HWND hwnd,LPCTSTR szCmdLine,LPBYTE szBuffer,const DWORD dwSize,time_t* lpTime,LPWORD lpwAttr,LPDWORD lpdwWriteSize);
    //メモリーバッファへ展開します[ANSI]
    int ExtractMemA(HWND hwnd,LPCSTR szCmdLine,LPBYTE szBuffer,const DWORD dwSize,time_t* lpTime,LPWORD lpwAttr,LPDWORD lpdwWriteSize);
    //メモリーバッファへ展開します[Unicode]
    int ExtractMemW(HWND hwnd,LPCWSTR szCmdLine,LPBYTE szBuffer,const DWORD dwSize,time_t* lpTime,LPWORD lpwAttr,LPDWORD lpdwWriteSize);


    //ディレクトリであるか否か
    inline bool IsDirectory(){return (bool)(CArcDll::GetAttribute()&FA_DIREC);}
};
#endif //ARCDLL_H

Home > ソフトウェア > Ashley > Ashley130.zip/Ashley130.exe > Src > ArcDll.h