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

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

?? newapis_fixed.h

?? C++實(shí)現(xiàn)的橢圓曲線算法。已經(jīng)寫成一個(gè)庫文件只要調(diào)用就行了
?? H
?? 第 1 頁 / 共 2 頁
字號(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精品一区二区三区在线观看| 青娱乐精品在线视频| 亚洲精品亚洲人成人网在线播放| 久久精品一区二区三区av| 日韩一区二区在线看| 91精品国产欧美一区二区成人| 欧美日韩国产a| 在线不卡免费欧美| 久久久www免费人成精品| 久久精品亚洲国产奇米99 | 欧美专区日韩专区| 欧美日韩亚洲综合| 精品国产一区二区三区四区四| 日韩美女在线视频| 亚洲三级久久久| 亚洲成人免费观看| 国产东北露脸精品视频| 成人午夜碰碰视频| 亚洲桃色在线一区| 国产校园另类小说区| 亚洲精品欧美激情| av不卡一区二区三区| 亚洲欧美日韩在线| 欧美午夜宅男影院| 美女高潮久久久| 一区二区三区欧美久久| 久久久美女毛片| 日本丶国产丶欧美色综合| 有码一区二区三区| 亚洲视频免费在线观看| 一区二区三区波多野结衣在线观看 | 欧美一级在线免费| 首页亚洲欧美制服丝腿| 欧美久久免费观看| 黑人巨大精品欧美一区| 国产精品国产三级国产aⅴ入口 | 欧美激情综合在线| 亚洲高清在线视频| 国模大尺度一区二区三区| 国产一区二区三区在线观看免费 | 中文字幕一区二| 国产嫩草影院久久久久| 午夜精品福利在线| 亚洲美女少妇撒尿| 国产麻豆精品一区二区| 欧美精品在线观看一区二区| 亚洲最大的成人av| 91视频一区二区三区| 在线播放中文一区| 国产精品少妇自拍| 亚洲国产一二三| 亚洲国产精品一区二区尤物区| 久久色.com| 一区二区三区国产豹纹内裤在线| 日本不卡在线视频| 欧美福利电影网| 一区二区在线看| 99精品国产热久久91蜜凸| 亚洲欧美日韩中文字幕一区二区三区 | 色老头久久综合| 美国毛片一区二区三区| 亚洲色图欧美偷拍| 国产精品沙发午睡系列990531| 日韩欧美不卡一区| 欧美电影精品一区二区| 7799精品视频| 精品电影一区二区| www激情久久| 亚洲激情自拍视频| 毛片基地黄久久久久久天堂| 精品少妇一区二区三区在线视频| 欧美一区二区三区在线观看| 欧美第一区第二区| 91在线观看高清| 国产在线麻豆精品观看| 日韩av在线播放中文字幕| 亚洲一卡二卡三卡四卡无卡久久 | 中文字幕欧美国产| 日韩高清一区二区| 精品88久久久久88久久久| 日本不卡高清视频| 亚洲人123区| 国产日韩欧美不卡| 欧美一区二区成人6969| 色成人在线视频| 欧美在线三级电影| 91美女蜜桃在线| 在线看一区二区| 91蝌蚪porny九色| 欧美视频自拍偷拍| 欧美精品丝袜中出| 日韩女优制服丝袜电影| 日韩一区二区三区在线观看| 欧美一区二区三区在| 日韩欧美一区电影| 欧美极品少妇xxxxⅹ高跟鞋 | 中文字幕一区日韩精品欧美| 久久亚洲一区二区三区四区| 97精品国产97久久久久久久久久久久| 日本少妇一区二区| 2020国产精品自拍| 国产激情一区二区三区桃花岛亚洲| 久久黄色级2电影| 亚洲成人在线观看视频| 国产精品亲子乱子伦xxxx裸| 国产精品理伦片| 一区二区三区在线观看国产| 国产成人午夜片在线观看高清观看| 免费成人av在线播放| 亚洲欧美偷拍卡通变态| 久久蜜臀精品av| 国产精品视频免费看| 国产精品午夜电影| 一区二区三区蜜桃| 国产一区不卡在线| 国产最新精品精品你懂的| 午夜精品影院在线观看| 久久国产精品无码网站| 福利一区二区在线| 欧美三级视频在线观看| 26uuu色噜噜精品一区二区| 亚洲日本一区二区| 国产麻豆成人传媒免费观看| 欧美系列一区二区| 中文字幕在线不卡一区| 美女在线观看视频一区二区| 91小视频免费观看| 国产欧美日韩麻豆91| 免费成人av在线| 91精品国产色综合久久ai换脸| 中文字幕+乱码+中文字幕一区| 日本特黄久久久高潮| 欧洲精品在线观看| 亚洲欧美中日韩| 成人黄色av网站在线| 久久久久久9999| 高清beeg欧美| 中文字幕在线播放不卡一区| 国产盗摄一区二区三区| 久久久久国产精品麻豆ai换脸| 毛片av中文字幕一区二区| 欧美一区二区啪啪| 久久99久久精品欧美| 精品日韩欧美在线| 国产suv一区二区三区88区| 久久久久久久久伊人| 国产成人超碰人人澡人人澡| 欧美国产一区在线| 日本高清不卡视频| 日韩精品一级二级| 国产精品久久午夜夜伦鲁鲁| 国产成人亚洲综合a∨婷婷图片| 国产精品无圣光一区二区| 91麻豆国产自产在线观看| 一区二区三区视频在线看| 91精品国产综合久久久久久久| 激情伊人五月天久久综合| 中文字幕一区二区不卡| 欧美一卡二卡三卡| 99国产精品国产精品久久| 日韩精品亚洲一区二区三区免费| 精品久久久久久久人人人人传媒| 不卡的av网站| 久久精品国产99国产精品| 亚洲乱码一区二区三区在线观看| 91精品欧美综合在线观看最新| 国产电影一区二区三区| 舔着乳尖日韩一区| 国产精品美女久久久久aⅴ国产馆| 在线观看一区不卡| 国产盗摄女厕一区二区三区| 亚洲综合偷拍欧美一区色| 国产亚洲一二三区| 91精品国产91综合久久蜜臀| 91丨九色丨蝌蚪丨老版| 国产suv精品一区二区三区| 久久电影网站中文字幕| 日韩国产欧美在线观看| 亚洲第一激情av| 亚洲摸摸操操av| 亚洲黄色尤物视频| 一区二区三区中文免费| 国产精品久久久久天堂| 国产嫩草影院久久久久| 国产精品视频一二| 亚洲欧洲精品天堂一级| 一区二区三区四区在线播放| 一区二区三区中文免费| 亚洲一区二区三区四区在线| 亚洲一区在线观看视频| 亚洲成人免费影院| 美女一区二区三区在线观看| 免费成人在线网站| 岛国一区二区在线观看| 91网站最新地址| 7777女厕盗摄久久久| 久久久久久日产精品| 亚洲视频香蕉人妖| 毛片av中文字幕一区二区|