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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pcdmaccessdb.cpp

?? 《Windows CE 權威指南》(作者:(美)CHRIS MUENCH
?? CPP
字號:
// PCDMAccessDB.cpp : Implementation of CPCDMAccessDB
#include "stdafx.h"
#include "PCDMDLL.h"
#include "PCDMAccessDB.h"

/////////////////////////////////////////////////////////////////////////////
// CPCDMAccessDB

// <BOOK_ADDON STEP4 Chapter 8.3.3> ******************************************
#define	PCDM_DB	833

STDMETHODIMP CPCDMAccessDB::AddProperty(VARIANT PID, long Sorted)
{
#ifdef UNDER_CE
VARIANT tvPID;

	if (Sorted==TRUE)
	{
		VariantInit(&tvPID);
		VariantChangeType(&tvPID,&PID,0,VT_I4);
		m_DBSortOrder[m_SortCnt].propid=MAKELONG(CEVT_LPWSTR,tvPID.lVal);
		m_DBSortOrder[m_SortCnt].dwFlags=CEDB_SORT_GENERICORDER;
		m_SortCnt++;
	}
#endif
	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::CreateTable(BSTR FileLocation, BSTR Name)
{
#ifdef UNDER_CE
CEOID	CeOid=0;
HANDLE	tHandle;


	tHandle = CeOpenDatabase(&CeOid,Name,0,0,NULL);          	
	if (tHandle!= INVALID_HANDLE_VALUE)
	{
		CloseHandle(tHandle);
		CeDeleteDatabase(CeOid);
	}
	if ((CeOid = CeCreateDatabase(Name,PCDM_DB,
      m_SortCnt,m_DBSortOrder))==NULL)
		return S_FALSE;
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::OpenTable(BSTR FileLocation, BSTR Name, VARIANT PID, long *Handle)
{
#ifdef UNDER_CE
CEOID	CeOid=0;
HANDLE	hDataBase; 
CEPROPID	tPID=0;
VARIANT tvPID;

	VariantInit(&tvPID);
	VariantChangeType(&tvPID,&PID,0,VT_I4);
	for (int i=0;i<m_SortCnt;i++)
	{
		if (HIWORD(m_DBSortOrder[i].propid)==tvPID.lVal)
		{
			tPID=MAKELONG(LOWORD(m_DBSortOrder[i].propid),tvPID.lVal);
			break;
		}
	}
	hDataBase = CeOpenDatabase(&CeOid,Name,tPID,0,NULL);          	
	if (hDataBase == INVALID_HANDLE_VALUE)
	{
		*Handle=0;
		return S_FALSE;	
	}
	*Handle=(long)hDataBase;
	VariantCopy(&m_ActPID,&PID);
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::CloseTable(long Handle)
{
	m_SortCnt=0;
	m_rfldCnt=0;
#ifdef UNDER_CE
	CloseHandle((HANDLE)Handle);
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MoveFirst(long Handle)
{
#ifdef UNDER_CE
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle,CEDB_SEEK_BEGINNING, 0, &m_dwIndex)))
		return S_FALSE;
#endif
	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MoveLast(long Handle)
{
#ifdef UNDER_CE
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle, CEDB_SEEK_END,0, &m_dwIndex)))
		return S_FALSE;
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MoveNext(long Handle)
{
#ifdef UNDER_CE
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle, CEDB_SEEK_CURRENT, 1, &m_dwIndex)))
		return S_FALSE;
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MovePrevious(long Handle)
{
#ifdef UNDER_CE
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle, CEDB_SEEK_CURRENT, -1, &m_dwIndex)))
		return S_FALSE;
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::FindRecord(long Handle, VARIANT PID, VARIANT Value)
{
#ifdef UNDER_CE
CEPROPVAL tPropVal;
DWORD	tdwIndex;
VARIANT tvPID,tvValue;

	VariantInit(&tvPID);
	VariantInit(&tvValue);
	VariantChangeType(&tvPID,&PID,0,VT_I4);

	if (tvPID.lVal!=m_ActPID.lVal) return S_FALSE;
	tPropVal.wLenData = 0;
	tPropVal.wFlags = 0;
	VariantChangeType(&tvValue,&Value,0,VT_BSTR);
	tPropVal.propid=MAKELONG(CEVT_LPWSTR,m_ActPID.lVal);
	tPropVal.val.lpwstr=tvValue.bstrVal;

	tdwIndex=m_dwIndex;
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle,CEDB_SEEK_VALUEFIRSTEQUAL,(DWORD)&tPropVal, &tdwIndex)))
	{
		m_curRec=CeSeekDatabase((HANDLE)Handle, CEDB_SEEK_BEGINNING, m_dwIndex, &m_dwIndex);
		return S_FALSE;
	}
	m_dwIndex=tdwIndex;
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::AddNewRecord(long Handle)
{
#ifdef UNDER_CE
	m_curRec=0;
#endif
	m_wfldCnt=0;

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::SetValue(VARIANT PID, VARIANT Value)
{
#ifdef UNDER_CE
VARIANT tValue,tvPID;

	if (m_wfldCnt>9) return S_FALSE; 
	VariantInit(&tValue);
	VariantChangeType(&tValue,&Value,0,VT_BSTR);
	VariantInit(&tvPID);
	VariantChangeType(&tvPID,&PID,0,VT_I4);

	m_wFields[m_wfldCnt].propid=MAKELONG(CEVT_LPWSTR,tvPID.lVal);
	m_BStr[m_wfldCnt]=SysAllocString(tValue.bstrVal);
	m_wFields[m_wfldCnt].val.lpwstr=m_BStr[m_wfldCnt];
	m_wFields[m_wfldCnt].wLenData = 0;
	m_wFields[m_wfldCnt].wFlags = 0;
	m_wfldCnt++;
#endif
	return S_OK;
}


STDMETHODIMP CPCDMAccessDB::WriteRecord(long DBHandle)
{
#ifdef UNDER_CE
	if(!CeWriteRecordProps((HANDLE)DBHandle, m_curRec, m_wfldCnt, m_wFields) )
		return S_FALSE; 
	for (int i=0;i<m_wfldCnt;i++)
		SysFreeString(m_BStr[i]);	
	m_wfldCnt=0;
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::ReadRecord(long DBHandle, long *Count)
{
#ifdef UNDER_CE
LPBYTE	pData=NULL;
DWORD	cbData=0;

	m_rfldCnt=0;
	if(!CeReadRecordProps((HANDLE)DBHandle, CEDB_ALLOWREALLOC, &m_rfldCnt,NULL,&pData,&cbData))
	{
		DWORD err=GetLastError();
		m_rFields=NULL;
		return S_FALSE; 
	}
	m_rFields=(CEPROPVAL*)pData;
	*Count=m_rfldCnt;
#endif
	return S_OK;
}


STDMETHODIMP CPCDMAccessDB::GetValue(VARIANT PID, VARIANT *Value)
{
#ifdef UNDER_CE
CEPROPVAL	*Flds=NULL;
VARIANT		tvPID;

	if (m_rFields==NULL || m_rfldCnt==0) return S_FALSE; 
	VariantInit(Value);
	VariantInit(&tvPID);
	VariantChangeType(&tvPID,&PID,0,VT_I4);

	for (int i=0;i<m_rfldCnt;i++)
	{
		if (HIWORD(m_rFields[i].propid)==tvPID.lVal)
		{
			Flds=&m_rFields[i];
			break;
		}
	}
	if (Flds==NULL) return S_FALSE;

	Value->vt=VT_BSTR;
	Value->bstrVal=SysAllocString((TCHAR*)Flds->val.lpwstr);
#endif
	return S_OK;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲不卡一区二区三区| 欧美精品久久久久久久多人混战 | 欧美日本在线看| 亚洲成av人**亚洲成av**| 91在线国内视频| 日本在线不卡视频一二三区| 日韩女优制服丝袜电影| 久久爱另类一区二区小说| 久久久久久久久久久99999| 不卡的av在线| 亚洲欧洲制服丝袜| 777色狠狠一区二区三区| 婷婷夜色潮精品综合在线| 日韩欧美国产午夜精品| 99天天综合性| 国产精品综合二区| 亚洲色图色小说| 欧美一区二区久久| 色综合久久综合网97色综合| 日本大胆欧美人术艺术动态| 中文字幕乱码久久午夜不卡| 欧美一区二区视频免费观看| av电影在线观看完整版一区二区| 日本一道高清亚洲日美韩| 国产女主播视频一区二区| 日本高清无吗v一区| 亚洲成人动漫精品| 亚洲欧美中日韩| 中文字幕乱码日本亚洲一区二区| 日韩午夜三级在线| 91啪亚洲精品| 成人av电影免费在线播放| 成人激情免费电影网址| 国内精品伊人久久久久av一坑| 亚洲第一av色| 亚洲欧美日韩久久| 136国产福利精品导航| 久久久久亚洲蜜桃| 国产欧美视频一区二区三区| 国产欧美精品在线观看| 国产丝袜在线精品| 久久影院午夜论| 亚洲国产精品成人综合| 久久久久久久久久久久久夜| 国产欧美日韩在线看| 久久综合色播五月| 中文字幕欧美日本乱码一线二线 | 亚洲日本免费电影| 亚洲午夜久久久久| 亚洲va韩国va欧美va| 午夜欧美视频在线观看| 亚洲激情图片qvod| 国产中文字幕精品| 成人免费毛片aaaaa**| 一区二区三区久久| 国产精品影音先锋| 色综合咪咪久久| 久久综合九色综合欧美就去吻 | 日韩一区二区三区视频| 国产精品久99| 成人午夜精品在线| 日韩三级视频中文字幕| 一区二区三区精品在线| 成人免费高清在线| www精品美女久久久tv| 亚洲国产aⅴ成人精品无吗| eeuss国产一区二区三区| 精品奇米国产一区二区三区| 亚洲成人在线观看视频| 99久精品国产| 亚洲三级免费电影| 91免费观看视频| 一区二区三区中文字幕精品精品| 国产精品一区二区视频| 久久免费视频一区| 国产成人精品影视| 国产情人综合久久777777| 国产高清在线精品| 中文字幕一区二区三区精华液 | 91丨porny丨中文| 日韩美女视频一区| 色猫猫国产区一区二在线视频| 国产精品色一区二区三区| 从欧美一区二区三区| 国产午夜亚洲精品不卡| 精品综合免费视频观看| 国产精品久久影院| 国产欧美日韩另类视频免费观看| 欧美精品在线观看一区二区| 一本到一区二区三区| 麻豆国产精品一区二区三区| 亚洲自拍偷拍麻豆| 亚洲国产日韩一区二区| 亚洲日本护士毛茸茸| 日韩视频免费直播| 久久99精品久久久久久国产越南 | www.成人网.com| 日本不卡一二三区黄网| 亚洲欧美自拍偷拍色图| 精品久久久久久亚洲综合网| 色系网站成人免费| 成人免费视频国产在线观看| 日韩精品一区第一页| 亚洲色图视频网站| 成人欧美一区二区三区小说| 精品免费日韩av| 精品福利视频一区二区三区| 欧美日韩午夜影院| 在线观看日韩毛片| 在线看日韩精品电影| 99久久99久久精品免费观看| 成人中文字幕在线| 91片黄在线观看| 欧美在线免费播放| 欧美日本韩国一区| 777久久久精品| 亚洲精品一区二区三区福利| 日韩欧美在线网站| 久久精品视频免费观看| 精品国内片67194| 国产欧美一区二区精品婷婷| 一区二区成人在线观看| 日韩美女视频19| 欧美日韩高清一区二区| 国产高清久久久久| 午夜成人免费电影| 久久久久99精品一区| 在线看日韩精品电影| 国产一区二区三区视频在线播放| 亚洲美女电影在线| 亚洲精品美国一| 爽好久久久欧美精品| 亚洲一区二区视频在线| 美腿丝袜亚洲一区| 国产91富婆露脸刺激对白| 99re这里只有精品首页| 欧美精品一卡二卡| 精品电影一区二区| 亚洲女同ⅹxx女同tv| 蜜桃av一区二区在线观看| 成人精品gif动图一区| 欧美精品粉嫩高潮一区二区| 中文字幕av资源一区| 五月婷婷激情综合网| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩日日摸| 亚洲激情男女视频| 成人福利视频网站| 国产片一区二区| 免费观看在线色综合| 99久久精品免费看国产免费软件| 欧美一区二区免费| 亚洲成人激情社区| 欧美日本精品一区二区三区| 最新久久zyz资源站| 成人晚上爱看视频| 中文子幕无线码一区tr| 国产一区免费电影| 国产亚洲一区二区在线观看| 秋霞午夜av一区二区三区| 欧美久久一二区| 日韩在线a电影| 精品国产乱码91久久久久久网站| 亚洲第一福利视频在线| 欧美精品高清视频| 婷婷一区二区三区| 久久人人爽人人爽| 99久久久精品| 天堂一区二区在线| 精品国产露脸精彩对白| 高清beeg欧美| 亚洲精品视频在线观看网站| 欧美三电影在线| 精品一区二区三区视频| 中文字幕精品一区二区精品绿巨人 | 久久综合九色欧美综合狠狠| 精品在线亚洲视频| 亚洲男人电影天堂| 日韩亚洲电影在线| 99精品1区2区| 久久国产精品72免费观看| 亚洲青青青在线视频| 欧美不卡视频一区| 欧美中文字幕一二三区视频| 久久精品二区亚洲w码| 亚洲激情图片一区| 亚洲国产成人午夜在线一区| 51久久夜色精品国产麻豆| 成人性色生活片| 黄色精品一二区| 男人的j进女人的j一区| 性欧美疯狂xxxxbbbb| 国产欧美一区二区三区沐欲| 91精品在线观看入口| 色综合久久综合网| 欧美专区亚洲专区| 91国偷自产一区二区三区成为亚洲经典| 国产一区二区在线影院| 经典三级视频一区| 老司机一区二区|