⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 telprvdrs.cpp

📁 visual c++ 实例编程
💻 CPP
字号:
// Implementation of the CTelPrvdCommand
#include "stdafx.h"
#include "TelProvider.h"
#include "TelPrvdRS.h"
/////////////////////////////////////////////////////////////////////////////
// CTelPrvdCommand
HRESULT CTelPrvdCommand::Execute(IUnknown * pUnkOuter, REFIID riid, DBPARAMS * pParams, 
								 LONG * pcRowsAffected, IUnknown ** ppRowset)
{
	CTelPrvdRowset* pRowset;
	return CreateRowset(pUnkOuter, riid, pParams, pcRowsAffected, ppRowset, pRowset);
}

template <class TInterface>
ATLCOLUMNINFO* CommonGetColInfo(IUnknown* pPropsUnk, ULONG* pcCols)
{
	static ATLCOLUMNINFO _rgColumns[5];
	ULONG ulCols = 0;

	CComQIPtr<TInterface> spProps = pPropsUnk;

	CDBPropIDSet set(DBPROPSET_ROWSET);
	set.AddPropertyID(DBPROP_BOOKMARKS);
	DBPROPSET* pPropSet = NULL;
	ULONG ulPropSet = 0;
	HRESULT hr;

	if (spProps)
		hr = spProps->GetProperties(1, &set, &ulPropSet, &pPropSet);

	// Next set the other columns up.
	ADD_COLUMN_ENTRY(ulCols, OLESTR("szName"), 1, 256, DBTYPE_STR, 0xFF, 0xFF,
		GUID_NULL, CTelPrvdWindowsFile, szName)
	ulCols++;
	ADD_COLUMN_ENTRY(ulCols, OLESTR("szEMail"), 2, 256, DBTYPE_STR, 0xFF, 0xFF,
		GUID_NULL, CTelPrvdWindowsFile, szEMail)
	ulCols++;

	ADD_COLUMN_ENTRY(ulCols, OLESTR("szTele"), 3, 256, DBTYPE_STR, 0xFF, 0xFF,
		GUID_NULL, CTelPrvdWindowsFile, szTele)
	ulCols++;
	ADD_COLUMN_ENTRY(ulCols, OLESTR("szCompany"), 4, 256, DBTYPE_STR, 0xFF, 0xFF,
		GUID_NULL, CTelPrvdWindowsFile, szCompany)
	ulCols++;
		ADD_COLUMN_ENTRY(ulCols, OLESTR("szVocation"), 5, 256, DBTYPE_STR, 0xFF, 0xFF,
		GUID_NULL, CTelPrvdWindowsFile, szVocation)
	ulCols++;
		ADD_COLUMN_ENTRY(ulCols, OLESTR("szAs_it_is"), 6, 256, DBTYPE_STR, 0xFF, 0xFF,
		GUID_NULL, CTelPrvdWindowsFile, szAs_it_is)
	ulCols++;


	if (pcCols != NULL)
		*pcCols = ulCols;

	return _rgColumns;
}

ATLCOLUMNINFO* CTelPrvdWindowsFile::GetColumnInfo(CTelPrvdRowset* pThis, ULONG* pcCols)
{
	return CommonGetColInfo<IRowsetInfo>(pThis->GetUnknown(), pcCols);
}

ATLCOLUMNINFO* CTelPrvdWindowsFile::GetColumnInfo(CTelPrvdCommand* pThis, ULONG* pcCols)
{
	return CommonGetColInfo<ICommandProperties>(pThis->GetUnknown(), pcCols);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -