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

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

?? interop.c

?? sqlite 3.3.8 支持加密的版本
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "src/sqliteint.h"
#include "src\os.h"
#include <tchar.h>

#if NDEBUG

#if _WIN32_WCE
#include "merge.h"

// IMPORTANT: This placeholder is here for a reason!!!
// On the Compact Framework the .data section of the DLL must have its RawDataSize larger than the VirtualSize!
// If its not, strong name validation will fail and other bad things will happen.
DWORD _ph[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

#else
#include "merge_full.h"
#endif // _WIN32_WCE
#endif // NDEBUG

#ifdef OS_WIN

#include <tchar.h>

typedef void (WINAPI *SQLITEUSERFUNC)(void *, int, void **);
typedef int  (WINAPI *SQLITECOLLATION)(int, const void *, int, const void*);

typedef void (WINAPI *SQLITEUPDATEHOOK)(int, const char *, int, const char *, int, sqlite_int64);
typedef int  (WINAPI *SQLITECOMMITHOOK)();
typedef void (WINAPI *SQLITEROLLBACKHOOK)();

typedef HANDLE (WINAPI *CREATEFILEW)(
    LPCWSTR,
    DWORD,
    DWORD,
    LPSECURITY_ATTRIBUTES,
    DWORD,
    DWORD,
    HANDLE);

// Callback wrappers
int sqlite3_interop_collationfunc(void *pv, int len1, const void *pv1, int len2, const void *pv2)
{
  SQLITECOLLATION *p = (SQLITECOLLATION *)pv;
  return p[0](len1, pv1, len2, pv2);
}

void sqlite3_interop_func(sqlite3_context *pctx, int n, sqlite3_value **pv)
{
  SQLITEUSERFUNC *pf = (SQLITEUSERFUNC *)sqlite3_user_data(pctx);
  pf[0](pctx, n, (void **)pv);
}

void sqlite3_interop_step(sqlite3_context *pctx, int n, sqlite3_value **pv)
{
  SQLITEUSERFUNC *pf = (SQLITEUSERFUNC *)sqlite3_user_data(pctx);
  pf[1](pctx, n, (void **)pv);
}

void sqlite3_interop_final(sqlite3_context *pctx)
{
  SQLITEUSERFUNC *pf = (SQLITEUSERFUNC *)sqlite3_user_data(pctx);
  pf[2](pctx, 0, 0);
}

__declspec(dllexport) void WINAPI sqlite3_sleep_interop(int milliseconds)
{
  Sleep(milliseconds);
}

int SetCompression(const wchar_t *pwszFilename, unsigned short ufLevel)
{
#ifdef FSCTL_SET_COMPRESSION
  HMODULE hMod = GetModuleHandle(_T("KERNEL32"));
  CREATEFILEW pfunc;
  HANDLE hFile;
  unsigned long dw = 0;
  int n;

  if (hMod == NULL)
  {
    SetLastError(ERROR_NOT_SUPPORTED);
    return 0;
  }

  pfunc = (CREATEFILEW)GetProcAddress(hMod, _T("CreateFileW"));
  if (pfunc == NULL)
  {
    SetLastError(ERROR_NOT_SUPPORTED);
    return 0;
  }

  hFile = pfunc(pwszFilename, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  if (hFile == NULL)
    return 0;

  n = DeviceIoControl(hFile, FSCTL_SET_COMPRESSION, &ufLevel, sizeof(ufLevel), NULL, 0, &dw, NULL);

  CloseHandle(hFile);

  return n;
#else
  SetLastError(ERROR_NOT_SUPPORTED);
  return 0;
#endif
}

__declspec(dllexport) int WINAPI sqlite3_compressfile(const wchar_t *pwszFilename)
{
  return SetCompression(pwszFilename, COMPRESSION_FORMAT_DEFAULT);
}

__declspec(dllexport) int WINAPI sqlite3_decompressfile(const wchar_t *pwszFilename)
{
  return SetCompression(pwszFilename, COMPRESSION_FORMAT_NONE);
}

__declspec(dllexport) void WINAPI sqlite3_function_free_callbackcookie(void *pCookie)
{
  if (pCookie)
    free(pCookie);
}

// sqlite3 wrappers
__declspec(dllexport) const char * WINAPI sqlite3_libversion_interop(int *plen)
{
  const char *val = sqlite3_libversion();
  *plen = (val != 0) ? strlen(val) : 0;

  return val;
}

__declspec(dllexport) int WINAPI sqlite3_libversion_number_interop(void)
{
  return sqlite3_libversion_number();
}

__declspec(dllexport) int WINAPI sqlite3_close_interop(sqlite3 *db)
{
  return sqlite3_close(db);
}

__declspec(dllexport) int WINAPI sqlite3_exec_interop(sqlite3 *db, const char *sql, sqlite3_callback cb, void *pv, char **errmsg, int *plen)
{
  int n = sqlite3_exec(db, sql, cb, pv, errmsg);
  *plen = (*errmsg != 0) ? strlen(*errmsg) : 0;
  return n;
}

__declspec(dllexport) sqlite_int64 WINAPI sqlite3_last_insert_rowid_interop(sqlite3 *db)
{
  return sqlite3_last_insert_rowid(db);
}

__declspec(dllexport) int WINAPI sqlite3_changes_interop(sqlite3 *db)
{
  return sqlite3_changes(db);
}

__declspec(dllexport) int WINAPI sqlite3_total_changes_interop(sqlite3 *db)
{
  return sqlite3_total_changes(db);
}

__declspec(dllexport) void WINAPI sqlite3_interrupt_interop(sqlite3 *db)
{
  sqlite3_interrupt(db);
}

__declspec(dllexport) int WINAPI sqlite3_complete_interop(const char *sql)
{
  return sqlite3_complete(sql);
}

__declspec(dllexport) int WINAPI sqlite3_complete16_interop(const void *sql)
{
  return sqlite3_complete16(sql);
}

__declspec(dllexport) int WINAPI sqlite3_busy_handler_interop(sqlite3 *db, int(*cb)(void *, int), void *pv)
{
  return sqlite3_busy_handler(db, cb, pv);
}

__declspec(dllexport) int WINAPI sqlite3_busy_timeout_interop(sqlite3 *db, int ms)
{
  return sqlite3_busy_timeout(db, ms);
}

__declspec(dllexport) int WINAPI sqlite3_get_table_interop(sqlite3 *db, const char *sql, char ***resultp, int *nrow, int *ncolumn, char **errmsg, int *plen)
{
  int n = sqlite3_get_table(db, sql, resultp, nrow, ncolumn, errmsg);
  *plen = (*errmsg != 0) ? strlen((char *)*errmsg) : 0;
  return n;
}

__declspec(dllexport) void WINAPI sqlite3_free_table_interop(char **result)
{
  sqlite3_free_table(result);
}

__declspec(dllexport) void WINAPI sqlite3_free_interop(char *z)
{
  sqlite3_free(z);
}

__declspec(dllexport) int WINAPI sqlite3_open_interop(const char*filename, sqlite3 **ppdb)
{
  return sqlite3_open(filename, ppdb);
}

__declspec(dllexport) int WINAPI sqlite3_open16_interop(const void *filename, sqlite3 **ppdb)
{
  return sqlite3_open16(filename, ppdb);
}

__declspec(dllexport) int WINAPI sqlite3_errcode_interop(sqlite3 *db)
{
  return sqlite3_errcode(db);
}

__declspec(dllexport) const char * WINAPI sqlite3_errmsg_interop(sqlite3 *db, int *plen)
{
  const char *pval = sqlite3_errmsg(db);
  *plen = (pval != 0) ? strlen(pval) : 0;
  return pval;
}

__declspec(dllexport) const void * WINAPI sqlite3_errmsg16_interop(sqlite3 *db, int *plen)
{
  const void *pval = sqlite3_errmsg16(db);
  *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t): 0;
  return pval;
}

__declspec(dllexport) int WINAPI sqlite3_prepare_interop(sqlite3 *db, const char *sql, int nbytes, sqlite3_stmt **ppstmt, const char **pztail, int *plen)
{
  int n = sqlite3_prepare(db, sql, nbytes, ppstmt, pztail);
  *plen = (*pztail != 0) ? strlen(*pztail) : 0;
  return n;
}

__declspec(dllexport) int WINAPI sqlite3_prepare16_interop(sqlite3 *db, const void *sql, int nchars, sqlite3_stmt **ppstmt, const void **pztail, int *plen)
{
  int n = sqlite3_prepare16(db, sql, nchars * sizeof(wchar_t), ppstmt, pztail);
  *plen = (*pztail != 0) ? wcslen((wchar_t *)*pztail) * sizeof(wchar_t) : 0;
  return n;
}

__declspec(dllexport) int WINAPI sqlite3_bind_blob_interop(sqlite3_stmt *stmt, int iCol, const void *pv, int n, void(*cb)(void*))
{
  return sqlite3_bind_blob(stmt, iCol, pv, n, cb);
}

__declspec(dllexport) int WINAPI sqlite3_bind_double_interop(sqlite3_stmt *stmt, int iCol, double *val)
{
	return sqlite3_bind_double(stmt,iCol,*val);
}

__declspec(dllexport) int WINAPI sqlite3_bind_int_interop(sqlite3_stmt *stmt, int iCol, int val)
{
  return sqlite3_bind_int(stmt, iCol, val);
}

__declspec(dllexport) int WINAPI sqlite3_bind_int64_interop(sqlite3_stmt *stmt, int iCol, sqlite_int64 *val)
{
	return sqlite3_bind_int64(stmt,iCol,*val);
}

__declspec(dllexport) int WINAPI sqlite3_bind_null_interop(sqlite3_stmt *stmt, int iCol)
{
  return sqlite3_bind_null(stmt, iCol);
}

__declspec(dllexport) int WINAPI sqlite3_bind_text_interop(sqlite3_stmt *stmt, int iCol, const char *val, int n, void(*cb)(void *))
{
  return sqlite3_bind_text(stmt, iCol, val, n, cb);
}

__declspec(dllexport) int WINAPI sqlite3_bind_text16_interop(sqlite3_stmt *stmt, int iCol, const void *val, int n, void(*cb)(void *))
{
  return sqlite3_bind_text16(stmt, iCol, val, n, cb);
}

__declspec(dllexport) int WINAPI sqlite3_bind_parameter_count_interop(sqlite3_stmt *stmt)
{
  return sqlite3_bind_parameter_count(stmt);
}

__declspec(dllexport) const char * WINAPI sqlite3_bind_parameter_name_interop(sqlite3_stmt *stmt, int iCol, int *plen)
{
  const char *pval = sqlite3_bind_parameter_name(stmt, iCol);
  *plen = (pval != 0) ? strlen(pval) : 0;
  return pval;
}

__declspec(dllexport) int WINAPI sqlite3_bind_parameter_index_interop(sqlite3_stmt *stmt, const char *zName)
{
  return sqlite3_bind_parameter_index(stmt, zName);
}

__declspec(dllexport) int WINAPI sqlite3_column_count_interop(sqlite3_stmt *stmt)
{
  return sqlite3_column_count(stmt);
}

__declspec(dllexport) const char * WINAPI sqlite3_column_name_interop(sqlite3_stmt *stmt, int iCol, int *plen)
{
  const char *pval = sqlite3_column_name(stmt, iCol);
  *plen = (pval != 0) ? strlen(pval) : 0;
  return pval;
}

__declspec(dllexport) const void * WINAPI sqlite3_column_name16_interop(sqlite3_stmt *stmt, int iCol, int *plen)
{
  const void *pval = sqlite3_column_name16(stmt, iCol);
  *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0;
  return pval;
}

__declspec(dllexport) const char * WINAPI sqlite3_column_decltype_interop(sqlite3_stmt *stmt, int iCol, int *plen)
{
  const char *pval = sqlite3_column_decltype(stmt, iCol);
  *plen = (pval != 0) ? strlen(pval) : 0;
  return pval;
}

__declspec(dllexport) const void * WINAPI sqlite3_column_decltype16_interop(sqlite3_stmt *stmt, int iCol, int *plen)
{
  const void *pval = sqlite3_column_decltype16(stmt, iCol);
  *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0;
  return pval;
}

__declspec(dllexport) int WINAPI sqlite3_step_interop(sqlite3_stmt *stmt)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va国产天堂va久久en| 国产精品入口麻豆原神| 久久网这里都是精品| 国产精品婷婷午夜在线观看| 秋霞av亚洲一区二区三| 一本一本久久a久久精品综合麻豆| 日韩一区二区精品| 亚洲一区在线视频| 不卡的av电影| 亚洲电影一区二区三区| 91精品婷婷国产综合久久性色| 国产精品色婷婷| 激情图片小说一区| 欧美一区二区视频在线观看| 亚洲在线一区二区三区| av电影在线观看一区| 国产亚洲人成网站| 黄色日韩三级电影| 日韩欧美国产一区二区三区| 亚洲制服丝袜一区| 一本色道久久综合狠狠躁的推荐| 久久综合九色综合97婷婷| 亚洲欧美二区三区| 成人性生交大合| 欧美精品一区二区三区蜜桃| 日韩电影在线免费看| 欧美精品乱码久久久久久按摩 | 欧美精品一区二区在线观看| 亚洲乱码日产精品bd| 成人午夜又粗又硬又大| 91精品国产综合久久婷婷香蕉| 欧美日韩色一区| 日韩国产欧美一区二区三区| 成人视屏免费看| 精品国产免费人成在线观看| 亚洲成人免费在线| 91麻豆精东视频| 欧美高清一级片在线观看| 国产成人一级电影| 日韩欧美一区二区在线视频| 全国精品久久少妇| 日韩一区二区在线免费观看| 一区二区视频在线| av福利精品导航| 中文字幕一区二区不卡| 91在线视频18| 亚洲电影欧美电影有声小说| 欧美老年两性高潮| 麻豆精品精品国产自在97香蕉 | 亚洲高清免费视频| 欧美日韩专区在线| 国产精品国产精品国产专区不片| 国产精品中文字幕日韩精品| 国产欧美日韩综合| 91麻豆精东视频| 亚洲第一久久影院| 精品欧美一区二区久久| 成人少妇影院yyyy| 一区二区成人在线视频| 欧美三级电影在线观看| 麻豆成人久久精品二区三区红| 国产日产欧美一区| 在线视频欧美精品| 久久99国产精品久久99 | 亚洲国产综合人成综合网站| 欧美精品一二三区| 国产乱码精品一区二区三区忘忧草 | 久久精品视频一区二区三区| 91视视频在线观看入口直接观看www | 91行情网站电视在线观看高清版| 亚洲一区成人在线| 久久久www成人免费毛片麻豆| 成人午夜免费电影| 亚洲成av人片一区二区梦乃| www国产亚洲精品久久麻豆| 精品影院一区二区久久久| 日本一区二区三区电影| 欧美日韩一区二区三区在线| 精品一区二区三区的国产在线播放| 中文字幕 久热精品 视频在线| 91精品综合久久久久久| av不卡一区二区三区| 寂寞少妇一区二区三区| 亚洲一区在线看| 亚洲国产精品国自产拍av| 欧美一区日韩一区| 国产精品 欧美精品| 午夜精品免费在线| 亚洲视频免费观看| 久久久亚洲欧洲日产国码αv| 欧美日韩国产欧美日美国产精品| 国产999精品久久久久久绿帽| 日韩精品色哟哟| 国产精品美女久久久久aⅴ国产馆| 日韩三级免费观看| 欧美三级蜜桃2在线观看| av亚洲精华国产精华精华| 加勒比av一区二区| 蜜臀久久99精品久久久画质超高清 | 国产精品99久久久久久久女警| 亚洲一区二区三区四区不卡| 亚洲欧美在线观看| 欧美国产视频在线| 久久久国产午夜精品| 精品福利视频一区二区三区| 91精品国产手机| 91精品中文字幕一区二区三区| 91电影在线观看| 色丁香久综合在线久综合在线观看| 北岛玲一区二区三区四区| 国产麻豆9l精品三级站| 蜜臀精品久久久久久蜜臀| 婷婷亚洲久悠悠色悠在线播放| 天天综合网 天天综合色| 久久久久88色偷偷免费| 欧美日韩国产片| 97久久超碰国产精品| 成人一级视频在线观看| 理论片日本一区| 久久国产日韩欧美精品| 久久超碰97中文字幕| 日韩国产欧美三级| 日本中文一区二区三区| 免费观看在线综合色| 蜜臀av性久久久久av蜜臀妖精 | 久久不见久久见中文字幕免费| 男男视频亚洲欧美| 久草热8精品视频在线观看| 久久国产精品99精品国产| 精品在线亚洲视频| 国产精品99久久久久| www.一区二区| 欧洲亚洲国产日韩| 欧美放荡的少妇| 日韩欧美亚洲国产另类 | 777色狠狠一区二区三区| 日韩欧美国产小视频| 久久久久久亚洲综合| 中文字幕在线一区免费| 亚洲综合一区在线| 日韩av一区二区三区| 韩国精品主播一区二区在线观看 | 日韩一区二区三区精品视频| 精品国产伦一区二区三区免费| 久久精品免视看| 亚洲欧美一区二区三区国产精品| 亚洲电影在线播放| 乱一区二区av| av中文字幕在线不卡| 欧美日韩国产小视频| 久久精品视频一区二区三区| 成人三级伦理片| 丁香另类激情小说| 欧美视频在线观看一区| 这里是久久伊人| 国产精品看片你懂得| 亚洲一线二线三线久久久| 久久国产精品无码网站| va亚洲va日韩不卡在线观看| 欧美肥妇free| 亚洲国产成人午夜在线一区| 日韩精品一二三区| 国产精品一区二区无线| 91精品1区2区| 久久免费电影网| 亚洲午夜在线电影| 国产成人精品免费网站| 777a∨成人精品桃花网| 国产精品电影院| 久久97超碰色| 欧美午夜影院一区| 国产精品美女一区二区在线观看| 亚洲一区二区在线播放相泽| 大尺度一区二区| 日韩欧美一级片| 亚洲第一狼人社区| av在线免费不卡| 国产欧美一区二区精品婷婷| 国产成人鲁色资源国产91色综| 91精品在线免费| 最新国产の精品合集bt伙计| 黑人巨大精品欧美黑白配亚洲| 欧美制服丝袜第一页| 国产精品美女久久久久aⅴ国产馆| 蜜臀精品一区二区三区在线观看| 欧美综合天天夜夜久久| 综合中文字幕亚洲| 国产福利一区在线| 欧美成人精精品一区二区频| 亚洲成人av资源| 在线视频欧美精品| 亚洲女子a中天字幕| 成人午夜av影视| 久久九九99视频| 韩国精品主播一区二区在线观看 | 欧美色网一区二区| 亚洲欧美日韩国产综合在线| www.av精品| 国产精品色在线观看| 国产一区二区成人久久免费影院|