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

📄 basicenum.cpp

📁 ATL开发指南PDF格式
💻 CPP
字号:
// BasicEnum.cpp : Implementation of CBasicEnum
#include "stdafx.h"
#include "Chapter9_EnumServer.h"
#include "BasicEnum.h"

/////////////////////////////////////////////////////////////////////////////
// CBasicEnum

STDMETHODIMP CBasicEnum::InterfaceSupportsErrorInfo(REFIID riid)
{
	static const IID* arr[] = 
	{
		&IID_IBasicEnum
	};
	for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		if (InlineIsEqualGUID(*arr[i],riid))
			return S_OK;
	}
	return S_FALSE;
}

STDMETHODIMP CBasicEnum::get_Enum(IEnumString **ppUnk)
{
   // Create an enumerator of type IEnumString
   typedef CComObject<CComEnum< IEnumString, &IID_IEnumString,
                                LPOLESTR, _Copy<LPOLESTR> > > 
                                                    enumString;

   enumString* pEnum = 0;
   enumString::CreateInstance( &pEnum );


   HRESULT hr = pEnum->Init( m_vecStrings.begin(),
                             m_vecStrings.end(),
                             0,
                             AtlFlagCopy );
   if (SUCCEEDED( hr ))
      hr = pEnum->QueryInterface( IID_IEnumString,
                                  (void**) ppUnk );

   if (FAILED( hr ))
      delete pEnum;

   return S_OK;
}

⌨️ 快捷键说明

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