📄 remoteapi.h
字号:
#pragma once
#include <rapi.h>
class CRemoteAPI
{
typedef HRESULT (__stdcall *CERAPIINITEX)(RAPIINIT*);
typedef HRESULT (__stdcall *CERAPUNINIT)(void);
typedef HRESULT (__stdcall *CERAPIINVOKE)(LPCWSTR, LPCWSTR,DWORD,BYTE *, DWORD *,BYTE **, IRAPIStream **,DWORD);
typedef HANDLE (__stdcall *CEFINDFIRSTFILE)(LPCWSTR, LPCE_FIND_DATA);
typedef BOOL (__stdcall *CEFINDNEXTFILE) (HANDLE, LPCE_FIND_DATA);
typedef BOOL (__stdcall *CEFINDALLFILES) (LPCWSTR, DWORD, LPDWORD, LPLPCE_FIND_DATA);
typedef BOOL (__stdcall *CEFINDCLOSE)(HANDLE);
typedef BOOL (__stdcall *CEDELETEFILE)(LPCWSTR);
typedef BOOL (__stdcall *CECREATEDIRECTORY)(LPCWSTR, LPSECURITY_ATTRIBUTES);
typedef BOOL (__stdcall *CEREMOVEDIRECTORY)(LPCWSTR);
typedef HANDLE (__stdcall *CECREATEFILE)(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
typedef BOOL (__stdcall *CEWRITEFILE)(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
typedef BOOL (__stdcall *CEREADFILE)(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
typedef BOOL (__stdcall *CECLOSEHANDLE)(HANDLE);
typedef DWORD (__stdcall *CEGETFILESIZE)(HANDLE, LPDWORD);
typedef DWORD (__stdcall *CESETFILEPOINTER)(HANDLE, LONG, PLONG, DWORD);
typedef BOOL (__stdcall *CESETFILETIME)(HANDLE, const FILETIME*, const FILETIME*, const FILETIME*);
typedef BOOL (__stdcall *CEFINDCLOSE)(HANDLE);
typedef DWORD (__stdcall *CEGETLASTERROR)(void);
typedef HRESULT (__stdcall *CERAPIGETERROR)(void);
typedef BOOL (__stdcall *CEDELETEFILE)(LPCWSTR);
typedef BOOL (__stdcall *CEGETVERSIONEX)(CEOSVERSIONINFO*);
typedef BOOL (__stdcall *CEMOVEFILE)(LPCWSTR,LPCWSTR);
typedef BOOL (__stdcall *CECOPYFILE)(LPCWSTR,LPCWSTR,BOOL);
typedef BOOL (__stdcall *CEGETDISKFREESPACEEX)(LPCWSTR, ULARGE_INTEGER *, ULARGE_INTEGER *, ULARGE_INTEGER *);
typedef HRESULT (_stdcall *CERAPIFREEBUFFER)(LPVOID);
public:
CRemoteAPI(void);
~CRemoteAPI(void);
HRESULT InitEx(RAPIINIT* pRapiInit);
HRESULT Uninit();
BOOL ReloadDLL ();
HRESULT Invoke (LPCWSTR pszDLL, LPCWSTR pszFUnction, DWORD cbInput, BYTE *pInput, DWORD *pcbOutput, BYTE **ppOutput, IRAPIStream **ppIRAPIStream, DWORD dwReserved);
HANDLE CreateFile (LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
BOOL WriteFile (HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
BOOL ReadFile (HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);
BOOL CloseHandle (HANDLE hHandle);
DWORD GetFileSize (HANDLE hFile, LPDWORD lpFileSizeHigh);
DWORD SetFilePointer (HANDLE hFile, LONG lDistance, PLONG pDistanceHigh, DWORD dwMoveMethod);
BOOL SetFileTime (HANDLE hFile, const FILETIME *lpCreationTime, const FILETIME *lpLastAccessTime, const FILETIME *lpLastWriteTime);
HANDLE FindFirstFile (LPCWSTR lpFileName, LPCE_FIND_DATA lpFindFileData);
BOOL FindNextFile (HANDLE hFind, LPCE_FIND_DATA lpFindFileData);
BOOL FindAllFiles (LPCWSTR pszPath, DWORD dwFlags, LPDWORD lpdwFoundCount, LPLPCE_FIND_DATA ppFindDataArray);
BOOL CreateDirectory (LPCWSTR pszDirName);
BOOL RemoveDirectory (LPCWSTR pszDirName);
BOOL FindClose (HANDLE hFindFile);
DWORD GetLastError();
HRESULT GetError ();
BOOL GetVersionEx(CEOSVERSIONINFO *pVersionInfo);
BOOL DeleteFile (LPCWSTR lpFileName);
BOOL MoveFile (LPCWSTR pszOldFileName, LPCWSTR pszNewFileName);
BOOL CopyFile (LPCWSTR pszSrcFileName, LPCWSTR pszTgtFileName, BOOL bFailIfExists);
BOOL GetDiskFreeSpaceEx (LPCTSTR lpDirectoryName,
PULARGE_INTEGER lpFreeBytesAvailable,
PULARGE_INTEGER lpTotalNumberOfBytes,
PULARGE_INTEGER lpTotalNumberOfFreeBytes);
HRESULT FreeBuffer (LPVOID pVoid);
protected:
HMODULE m_hDll;
CEFINDFIRSTFILE m_pfnFindFirstFile;
CEFINDNEXTFILE m_pfnFindNextFile;
CEFINDALLFILES m_pfnFindAllFiles;
CEFINDCLOSE m_pfnFindClose;
CEREMOVEDIRECTORY m_pfnRemoveDirectory;
CECREATEDIRECTORY m_pfnCreateDirectory;
CEMOVEFILE m_pfnMoveFile;
CECOPYFILE m_pfnCopyFile;
CEWRITEFILE m_pfnWriteFile;
CEREADFILE m_pfnReadFile;
CEGETFILESIZE m_pfnGetFileSize;
CEGETDISKFREESPACEEX m_pfnGetDiskFreeSpaceEx;
CERAPIFREEBUFFER m_pfnFreeBuffer;
CESETFILEPOINTER m_pfnSetFilePointer;
CESETFILETIME m_pfnSetFileTime;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -