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

📄 icommandwithparametersimpl.h

📁 The ATL OLE DB Provider templates only seem to support read-only rowsets and making them support upd
💻 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 + -