亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? newapis_fixed.h

?? C++實(shí)現(xiàn)的橢圓曲線算法。已經(jīng)寫成一個(gè)庫(kù)文件只要調(diào)用就行了
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// == Following lines added by Erik:
#define COMPILE_NEWAPIS_STUBS
#define WANT_GETDISKFREESPACEEX_WRAPPER
#define WANT_GETLONGPATHNAME_WRAPPER
//#define WANT_GETFILEATTRIBUTESEX_WRAPPER
//#define WANT_ISDEBUGGERPRESENT_WRAPPER
// == End of lines added by Erik.

/*
	Erik:
	There were some errors in the original NewAPIs.h file.
	The changes I made are below.

	(1)
	In this file I replaced all occurrences of:
		SetLastError(ERROR_something);
	to:
		SetLastError((unsigned long)ERROR_something);

	(2)
	Near line 340 (this file) I changed this:
		BOOL (CALLBACK *RealGetLongPathName)(LPCTSTR, LPTSTR, DWORD);
	to:
		DWORD (CALLBACK *RealGetLongPathName)(LPCTSTR, LPTSTR, DWORD);

*/

/*
 *  Copyright (c) 1997-1999, Microsoft Corporation
 *
 *  Wrapper module that "stubs" APIs that were not implemented
 *  on Windows 95 or Windows NT versions less than 4.0 SP 3.
 *
 *  By using this header, your code will run on older platforms.
 *
 *  To enable a particular wrapper, define the corresponding symbol.
 *
 *  Function                Symbol
 *
 *  GetDiskFreeSpaceEx      WANT_GETDISKFREESPACEEX_WRAPPER
 *  GetLongPathName         WANT_GETLONGPATHNAME_WRAPPER
 *  GetFileAttributesEx     WANT_GETFILEATTRIBUTESEX_WRAPPER
 *  IsDebuggerPresent       WANT_ISDEBUGGERPRESENT_WRAPPER
 *
 *  Exactly one source file must include the line
 *
 *  #define COMPILE_NEWAPIS_STUBS
 *
 *  before including this file.
 *
 */

#ifdef __cplusplus
extern "C" {            /* Assume C declarations for C++ */
#endif  /* __cplusplus */

/*****************************************************************************
 *
 * GetDiskFreeSpaceEx
 *
 *****************************************************************************/

#ifdef WANT_GETDISKFREESPACEEX_WRAPPER

#undef GetDiskFreeSpaceEx
#define GetDiskFreeSpaceEx _GetDiskFreeSpaceEx

extern BOOL (CALLBACK *GetDiskFreeSpaceEx)
             (LPCTSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);

/*
 * Exactly one file should define this symbol.
 */
#ifdef COMPILE_NEWAPIS_STUBS

/*
 * The version to use if we are forced to emulate.
 */
static BOOL WINAPI
Emulate_GetDiskFreeSpaceEx(LPCTSTR ptszRoot, PULARGE_INTEGER pliQuota,
                         PULARGE_INTEGER pliTotal, PULARGE_INTEGER pliFree)
{
    DWORD dwSecPerClus, dwBytesPerSec, dwFreeClus, dwTotalClus;
    BOOL fRc;

    fRc = GetDiskFreeSpace(ptszRoot, &dwSecPerClus, &dwBytesPerSec,
                           &dwFreeClus, &dwTotalClus);
    if (fRc) {
        DWORD dwBytesPerClus = dwSecPerClus * dwBytesPerSec;

        /*
         *  Curiously, of all the output parameters, only pliFree is
         *  allowed to be NULL.
         */

		*(__int64 *)pliQuota = Int32x32To64(dwBytesPerClus, dwFreeClus);
        if (pliFree) {
            *pliFree = *pliQuota;
        }

        *(__int64 *)pliTotal = Int32x32To64(dwBytesPerClus, dwTotalClus);
    }

    return fRc;
}

/*
 * The stub that probes to decide which version to use.
 */
static BOOL WINAPI
Probe_GetDiskFreeSpaceEx(LPCTSTR ptszRoot, PULARGE_INTEGER pliQuota,
                         PULARGE_INTEGER pliTotal, PULARGE_INTEGER pliFree)
{
    HINSTANCE hinst;
    FARPROC fp;
    BOOL fRc;
    BOOL (CALLBACK *RealGetDiskFreeSpaceEx)
             (LPCTSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);

    hinst = GetModuleHandle(TEXT("KERNEL32"));
#ifdef UNICODE
    fp = GetProcAddress(hinst, "GetDiskFreeSpaceExW");
#else
    fp = GetProcAddress(hinst, "GetDiskFreeSpaceExA");
#endif

    if (fp) {
        *(FARPROC *)&RealGetDiskFreeSpaceEx = fp;
        fRc = RealGetDiskFreeSpaceEx(ptszRoot, pliQuota, pliTotal, pliFree);
        if (fRc || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) {
            GetDiskFreeSpaceEx = RealGetDiskFreeSpaceEx;
        } else {
            GetDiskFreeSpaceEx = Emulate_GetDiskFreeSpaceEx;
            fRc = GetDiskFreeSpaceEx(ptszRoot, pliQuota, pliTotal, pliFree);
        }
    } else {
        GetDiskFreeSpaceEx = Emulate_GetDiskFreeSpaceEx;
        fRc = GetDiskFreeSpaceEx(ptszRoot, pliQuota, pliTotal, pliFree);
    }

    return fRc;

}

BOOL (CALLBACK *GetDiskFreeSpaceEx)
             (LPCTSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER) =
                Probe_GetDiskFreeSpaceEx;

#endif /* COMPILE_NEWAPIS_STUBS */
#endif /* WANT_GETDISKFREESPACEEX_WRAPPER */

/*****************************************************************************
 *
 * GetLongPathName
 *
 *****************************************************************************/

#ifdef WANT_GETLONGPATHNAME_WRAPPER

#include <shlobj.h>

#undef GetLongPathName
#define GetLongPathName _GetLongPathName

extern DWORD (CALLBACK *GetLongPathName)(LPCTSTR, LPTSTR, DWORD);

/*
 * Exactly one file should define this symbol.
 */
#ifdef COMPILE_NEWAPIS_STUBS

/*
 * The version to use if we are forced to emulate.
 */
static DWORD WINAPI
Emulate_GetLongPathName(LPCTSTR ptszShort, LPTSTR ptszLong, DWORD ctchBuf)
{
    LPSHELLFOLDER psfDesk;
    HRESULT hr;
    LPITEMIDLIST pidl;
    TCHAR tsz[MAX_PATH];            /* Scratch TCHAR buffer */
    DWORD dwRc;
    LPMALLOC pMalloc;

    /*
     *  The file had better exist.  GetFileAttributes() will
     *  not only tell us, but it'll even call SetLastError()
     *  for us.
     */
    if (GetFileAttributes(ptszShort) == 0xFFFFFFFF) {
        return 0;
    }

    /*
     *  First convert from relative path to absolute path.
     *  This uses the scratch TCHAR buffer.
     */
    dwRc = GetFullPathName(ptszShort, MAX_PATH, tsz, NULL);
    if (dwRc == 0) {
        /*
         *  Failed; GFPN already did SetLastError().
         */
    } else if (dwRc >= MAX_PATH) {
        /*
         *  Resulting path would be too long.
         */
        SetLastError((unsigned long)ERROR_BUFFER_OVERFLOW);	// (unsigned long) by Erik
        dwRc = 0;
    } else {
        /*
         *  Just right.
         */
        hr = SHGetDesktopFolder(&psfDesk);
        if (SUCCEEDED(hr)) {
            ULONG cwchEaten;

#ifdef UNICODE
#ifdef __cplusplus
            hr = psfDesk->ParseDisplayName(NULL, NULL, tsz,
                                       &cwchEaten, &pidl, NULL);
#else
            hr = psfDesk->lpVtbl->ParseDisplayName(psfDesk, NULL, NULL, tsz,
                                       &cwchEaten, &pidl, NULL);
#endif
#else
            WCHAR wsz[MAX_PATH];        /* Scratch WCHAR buffer */

            /*
             *  ParseDisplayName requires UNICODE, so we use
             *  the scratch WCHAR buffer during the conversion.
             */
            dwRc = MultiByteToWideChar(
                        AreFileApisANSI() ? CP_ACP : CP_OEMCP,
                        0, tsz, -1, wsz, MAX_PATH);
            if (dwRc == 0) {
                /*
                 *  Couldn't convert to UNICODE.  MB2WC uses
                 *  ERROR_INSUFFICIENT_BUFFER, which we convert
                 *  to ERROR_BUFFER_OVERFLOW.  Any other error
                 *  we leave alone.
                 */
                if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
					SetLastError((unsigned long)ERROR_BUFFER_OVERFLOW);
                }
                dwRc = 0;
            } else {
#ifdef __cplusplus
                hr = psfDesk->ParseDisplayName(NULL, NULL, wsz,
                                           &cwchEaten, &pidl, NULL);
#else
                hr = psfDesk->lpVtbl->ParseDisplayName(psfDesk, NULL, NULL,
                                           wsz, &cwchEaten, &pidl, NULL);
#endif
#endif

                if (FAILED(hr)) {
                    /*
                     *  Weird.  Convert the result back to a Win32
                     *  error code if we can.  Otherwise, use the
                     *  generic "duh" error code ERROR_INVALID_DATA.
                     */
                    if (HRESULT_FACILITY(hr) == FACILITY_WIN32) {
						SetLastError((unsigned long)HRESULT_CODE(hr));
					} else {
						SetLastError((unsigned long)ERROR_INVALID_DATA);
                    }
                    dwRc = 0;
                } else {
                    /*
                     *  Convert the pidl back to a filename in the
                     *  TCHAR scratch buffer.
                     */
                    dwRc = SHGetPathFromIDList(pidl, tsz);
                    if (dwRc == 0 && tsz[0]) {
                        /*
                         *  Bizarre failure.
                         */
						SetLastError((unsigned long)ERROR_INVALID_DATA);
                    } else {
                        /*
                         *  Copy the result back to the user's buffer.
                         */
                        dwRc = lstrlen(tsz);
                        if (dwRc + 1 > ctchBuf) {
                            /*
                             *  On buffer overflow, return necessary
                             *  size including terminating null (+1).

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女国产一区二区三区| 欧美色爱综合网| 岛国精品在线观看| 91福利视频网站| 久久毛片高清国产| 亚洲线精品一区二区三区| 麻豆91免费看| 在线免费不卡视频| 中文子幕无线码一区tr| 日韩精品电影在线| 在线精品视频免费播放| 国产精品国产三级国产专播品爱网| 亚洲国产另类av| 91麻豆福利精品推荐| 国产欧美一区二区三区网站| 日韩高清不卡在线| 欧美精品在线观看一区二区| 国产精品色呦呦| 国产在线精品一区二区| 日韩女优毛片在线| 日本不卡不码高清免费观看| 色悠久久久久综合欧美99| 欧美激情在线一区二区| 免费观看久久久4p| 7777精品伊人久久久大香线蕉经典版下载 | 欧美一区二区三级| 亚洲免费av在线| 91影视在线播放| 亚洲欧美日韩在线不卡| 99久久综合精品| 亚洲免费av高清| 在线影院国内精品| 一区二区在线观看不卡| 91视视频在线直接观看在线看网页在线看 | 欧美一区二区三区公司| 性做久久久久久久免费看| 欧美日韩一区二区在线观看| 亚洲一区二区三区视频在线| 色老综合老女人久久久| 亚洲激情图片小说视频| 色天天综合色天天久久| 亚洲一二三四在线观看| 欧美日韩一级二级三级| 日韩不卡手机在线v区| 欧美一区二区三区精品| 国内精品写真在线观看| 国产校园另类小说区| 成人av影院在线| 亚洲精品免费播放| 欧美日韩国产中文| 极品少妇xxxx精品少妇| 国产婷婷色一区二区三区四区| 成人免费高清视频| 一区二区三区四区在线播放| 欧美日本国产视频| 国内精品伊人久久久久av影院| 国产香蕉久久精品综合网| 91美女蜜桃在线| 视频一区二区三区中文字幕| 精品久久久网站| 99久久婷婷国产综合精品| 亚洲一区在线观看免费观看电影高清| 欧美高清激情brazzers| 国产一区二区不卡| 亚洲中国最大av网站| 日韩精品一区二区三区在线| 风间由美一区二区av101| 一区二区三区影院| 久久久一区二区| 欧美午夜视频网站| 激情欧美一区二区| 亚洲激情成人在线| 日韩欧美在线影院| 日本精品视频一区二区三区| 免费欧美日韩国产三级电影| 国产精品久久久久一区二区三区| 欧美午夜一区二区三区| 国产精品亚洲第一| 日韩中文字幕av电影| 成人免费一区二区三区视频| 91麻豆精品国产91久久久使用方法| 国产精品99久久久久| 午夜精品福利一区二区三区av| 国产精品私人影院| 日韩视频免费观看高清完整版在线观看| 成人美女在线观看| 美女在线视频一区| 午夜一区二区三区视频| 亚洲婷婷综合久久一本伊一区| 日韩精品一区二区三区四区| 欧美色电影在线| 91浏览器在线视频| 成人黄色一级视频| 国产精品538一区二区在线| 免费xxxx性欧美18vr| 亚洲一区二区在线观看视频| 国产三级久久久| 精品久久免费看| 欧美一区二区三区喷汁尤物| 欧美性xxxxx极品少妇| 日本高清成人免费播放| 成人av免费观看| 国产不卡视频在线播放| 麻豆国产欧美一区二区三区| 天天综合网 天天综合色| 一区二区在线观看免费| 亚洲视频免费在线| 亚洲欧洲综合另类| 亚洲欧洲成人自拍| 国产女人18水真多18精品一级做| 日韩精品一区二区在线| 日韩欧美国产综合| 日韩女优毛片在线| 久久综合网色—综合色88| 日韩欧美国产电影| 欧美成人猛片aaaaaaa| 7799精品视频| 在线不卡a资源高清| 欧美裸体bbwbbwbbw| 777亚洲妇女| 欧美成人免费网站| 久久色视频免费观看| 久久综合九色欧美综合狠狠| 2020国产精品自拍| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲视频网在线直播| 亚洲精品国产视频| 亚洲成a天堂v人片| 日本成人在线网站| 国产一区二区三区在线观看免费| 国产精品综合av一区二区国产馆| 精品一区中文字幕| 国产精品综合二区| 99久久精品一区二区| 色综合久久中文字幕| 欧美视频一区在线| 精品88久久久久88久久久 | 3d动漫精品啪啪一区二区竹菊| 777午夜精品免费视频| 欧美成人三级在线| 国产精品伦一区二区三级视频| 中文字幕一区二区三区四区不卡 | 91福利资源站| 日韩一区二区三区观看| 久久久不卡网国产精品一区| 中文字幕视频一区| 亚洲国产日韩综合久久精品| 久久国产福利国产秒拍| av不卡免费在线观看| 欧美日韩精品一区二区| 精品精品国产高清a毛片牛牛| 国产欧美一区视频| 丝袜亚洲另类丝袜在线| 国产.欧美.日韩| 欧美日韩日日骚| 国产精品视频一二三区| 午夜精品一区二区三区电影天堂| 激情丁香综合五月| 色狠狠av一区二区三区| 2020国产精品自拍| 亚洲国产精品人人做人人爽| 国内成+人亚洲+欧美+综合在线| 99国产精品久| 亚洲精品一线二线三线| 亚洲欧美另类小说视频| 韩国在线一区二区| 欧美日韩国产大片| 国产精品久久久久久久久免费相片 | 欧美男女性生活在线直播观看| 久久综合九色综合97婷婷女人| 亚洲精品高清在线| 国产成人亚洲综合a∨猫咪| 欧美日韩一本到| 中文字幕亚洲区| 国产精品一区二区在线观看网站| 欧美色大人视频| 亚洲男人的天堂网| 国产高清在线精品| 日韩精品一区在线| 天堂蜜桃91精品| 日本高清成人免费播放| 中文字幕在线不卡一区二区三区| 美腿丝袜亚洲色图| 91精品国产一区二区| 一区二区三区欧美日| 成人听书哪个软件好| 2021中文字幕一区亚洲| 麻豆中文一区二区| 91精品在线一区二区| 亚洲一区二区三区四区在线免费观看 | 欧美日韩国产综合一区二区| 亚洲人成在线播放网站岛国| 国产精品456露脸| 久久久一区二区| 国产一区二区中文字幕| 欧美大尺度电影在线| 首页亚洲欧美制服丝腿| 777久久久精品| 麻豆精品一二三| 精品国产乱码久久久久久免费|