#ifndef __GETNAME_H_
#define __GETNAME_H_#include "resource.h" // main symbols/////////////////////////////////////////////////////////////////////////////
// CGetName
class ATL_NO_VTABLE CGetName :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CGetName, &CLSID_GetName>,
public IDispatchImpl<IGetName, &IID_IGetName, &LIBID_STUDENTLib>
{
public:
下面的是什么意思,拜托了,各位高人。
#ifndef __GETNAME_H_
#define __GETNAME_H_
CGetName()
{
}DECLARE_REGISTRY_RESOURCEID(IDR_GETNAME)DECLARE_PROTECT_FINAL_CONSTRUCT()BEGIN_COM_MAP(CGetName)
COM_INTERFACE_ENTRY(IGetName)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()// IGetName
public:
STDMETHOD(ReturnName)(/*[in]*/BSTR ID,/*[out,retval]*/BSTR* Name);
protected:
_ConnectionPtr m_pConn;
};#endif //__GETNAME_H_
#define __GETNAME_H_#include "resource.h" // main symbols/////////////////////////////////////////////////////////////////////////////
// CGetName
class ATL_NO_VTABLE CGetName :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CGetName, &CLSID_GetName>,
public IDispatchImpl<IGetName, &IID_IGetName, &LIBID_STUDENTLib>
{
public:
下面的是什么意思,拜托了,各位高人。
#ifndef __GETNAME_H_
#define __GETNAME_H_
CGetName()
{
}DECLARE_REGISTRY_RESOURCEID(IDR_GETNAME)DECLARE_PROTECT_FINAL_CONSTRUCT()BEGIN_COM_MAP(CGetName)
COM_INTERFACE_ENTRY(IGetName)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()// IGetName
public:
STDMETHOD(ReturnName)(/*[in]*/BSTR ID,/*[out,retval]*/BSTR* Name);
protected:
_ConnectionPtr m_pConn;
};#endif //__GETNAME_H_
#define __GETNAME_H_
中,__GETNAME_H_是一个文件标识,防止文件在一个工程中的重复包含。
如果没有定义__GETNAME_H_,则表示还没包含这个文件,那么就继续下面的声明实现。如果已经定义了,则代表这个文件已经插入工程了,就不需要往下走了。