📄 icommandwithparametersimpl.h
字号:
#ifndef __I_COMMAND_WITH_PARAMETERS_IMPL__INCLUDED__
#define __I_COMMAND_WITH_PARAMETERS_IMPL__INCLUDED__
#include <atlcom.h>
#include <atldb.h>
///////////////////////////////////////////////////////////////////////////
// class ICommandWithPamametersImpl
template <class T>
class ATL_NO_VTABLE ICommandWithPamametersImpl : public ICommandWithParameters
{
public:
STDMETHOD(GetParameterInfo)(
ULONG *pcParams,
DBPARAMINFO **prgParamInfo,
OLECHAR **ppNamesBuffer)
{
ATLTRACE2(atlTraceDBProvider, 0, "ICommandWithPamameterImpl::GetParametersInfo\n");
HRESULT hr = E_FAIL;
if (!pcParams || !prgParamInfo || !ppNamesBuffer)
{
ATLTRACE2(atlTraceDBProvider, 0,
"ICommandWithPamameterImpl::GetParametersInfo: - Error - a pointer is null\n");
return E_INVALIDARG;
}
T *pT = 0;
*pcParams = 0;
// The way that we use the command parameters means that this never gets called...
return DB_E_PARAMUNAVAILABLE;
}
STDMETHOD(MapParameterNames)(
ULONG cParamNames,
const OLECHAR *rgParamnNames[],
LONG rgParamOrdinals[])
{
ATLTRACE2(atlTraceDBProvider, 0, "ICommandWithPamametersImpl::MapParameterNames\n");
if (0 == cParamNames)
{
return S_OK;
}
// The way that we use the command parameters means that this never gets called...
return E_FAIL;
}
STDMETHOD(SetParameterInfo)(
ULONG cParams,
const ULONG rgParamOrdinals[],
const DBPARAMBINDINFO rgParamBindInfo[])
{
ATLTRACE2(atlTraceDBProvider, 0, "ICommandWithPamametersImpl::SetParameterInfo\n");
if (0 == cParams)
{
return S_OK;
}
// We should really check to see that:
// cParams is 1,
// rgParamOrdinals[0] is 1
// rgParamBindInfo[0]->dwFlags is DBPARAMFLAGS_ISINPUT
// rgParamBindInfo[0]->pwszDataSourceType is "DBTYPE_IUNKNOWN"
return S_OK;
}
};
#endif // __I_COMMAND_WITH_PARAMETERS_IMPL__INCLUDED__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -