typelibdump.h
来自「这是VCF框架的代码」· C头文件 代码 · 共 118 行
H
118 行
//TypelibDump.h#ifndef _TYPELIBDUMP_H__#define _TYPELIBDUMP_H__#include <vector>#include <map>class MethodHolder;class InterfaceHolder;class CoClassHolder {public: virtual ~CoClassHolder(); _bstr_t m_className; _bstr_t m_classID; _bstr_t m_progID; std::vector<InterfaceHolder*> m_implementedInterfaces;};class InterfaceHolder {public: virtual ~InterfaceHolder(); _bstr_t m_superInterfaceName; _bstr_t m_superInterfaceID; _bstr_t m_interfaceName; _bstr_t m_interfaceID; std::vector<MethodHolder*> m_methods;};class MethodArgumentHolder {public: MethodArgumentHolder() { m_argType = ""; m_argName = ""; } MethodArgumentHolder( _bstr_t argType, _bstr_t argName) { m_argType = argType.copy(); m_argName = argName.copy(); } MethodArgumentHolder( const MethodArgumentHolder& mah ) { m_argType = mah.m_argType.copy(); m_argName = mah.m_argName.copy(); } MethodArgumentHolder& operator= ( const MethodArgumentHolder& mah ) { m_argType = mah.m_argType.copy(); m_argName = mah.m_argName.copy(); return *this; } _bstr_t m_argType; _bstr_t m_argName;};class MethodHolder {public: MethodHolder() { m_isPropertyGetter = false; m_isPropertySetter = false; m_returnType = ""; m_declaration = ""; m_methodID = ""; m_methodName = ""; } virtual ~MethodHolder() { m_arguments.clear(); } _bstr_t m_returnType; _bstr_t m_declaration; _bstr_t m_methodID; _bstr_t m_methodName; bool m_isPropertyGetter; bool m_isPropertySetter; std::vector<MethodArgumentHolder> m_arguments;};class TypeLibHolder {public: virtual ~TypeLibHolder(); _bstr_t m_typeLibName; _bstr_t m_typeLibID; std::vector<CoClassHolder*> m_coClasses; std::map<_bstr_t,InterfaceHolder*> m_interfaces; _bstr_t m_typeDefs;};BSTR GenerateClassHeaderFromCOMCLSID( const CLSID& clsid );BSTR GenerateClassTypeDefs( ITypeLib* pTypeLib, long indent );BSTR GenerateInterfaceDefinition( ITypeLib* pTypeLib, const CLSID& clsid );BSTR GenerateClassMethod( ITypeInfo* pMethodTypeInfo, long methodID );HRESULT GenerateMethod( ITypeInfo* pMethodTypeInfo, long methodID, MethodHolder* pMethod );HRESULT GenerateInterface( ITypeInfo* pTypeInfo, TYPEATTR* pTypeAttr, InterfaceHolder* pInterface );BSTR TYPEDESCtoString( ITypeInfo* pti, TYPEDESC* ptdesc );HRESULT GenerateTypeLibHolder( ITypeLib* pTypeLib, TypeLibHolder& typeLibHolder );#endif //_TYPELIBDUMP_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?