icommandwithparametersimpl.h

来自「The ATL OLE DB Provider templates only s」· C头文件 代码 · 共 81 行

H
81
字号
#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 + =
减小字号Ctrl + -
显示快捷键?