Objetos COM devem implementar a interface ISupportErrorInfo se os objetos COM são consumidos por um aplicativo Visual Basic

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 827994
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
INTRODUÇÃO
Se pretender para os objetos COM para serem consumidos por um aplicativo do Microsoft Visual Basic, os objetos COM devem implementar a interface ISupportErrorInfo . No entanto, para certificar-se que o Visual Basic converte os valores HRESULT retornados corretamente, você não deve definir o parâmetro bstrDescription para qualquer valor exceto NULL.
Mais Informações
O único método que contém a interface ISupportErrorInfo é o método InterfaceSupportsErrorInfo() . Quando InterfaceSupportsErrorInfo() é chamado, InterfaceSupportsErrorInfo() indica se ele oferece suporte a informações de erro rich.

Observação Quando InterfaceSupportsErrorInfo() é chamado, ele retorna "S_OK" se ele oferece suporte a rich erro informações.

O runtime Visual Basic usa a interface ISupportErrorInfo para determinar se um objeto suporta o mecanismo de erro rich. Se o objeto suporta o mecanismo de erro rich, é feita uma chamada para o método GetErrorInfo para recuperar informações de erro disponível. O tempo de execução, em seguida, determina se bstrDescription tem um valor diferente de NULL. Se o tempo de execução encontrar um valor diferente de NULL, o Visual Basic não pode converter o valor HRESULT para um número de erro compatível com o Visual Basic. Por padrão, o valor HRESULT raw é usado neste cenário. Se o tempo de execução localiza um valor NULL, HRESULT recupera um número de erro e uma descrição que se aplicam ao Visual Basic. Visual Basic, em seguida, usa HRESULT para pesquisar o erro correspondente do Visual Basic. Se existir uma correspondência, Visual Basic usa o número do erro e a descrição que estão em conformidade com o Visual Basic.

A tabela a seguir contém os valores de erro que Visual Basic tem traduções para:
HRESULT					VB Friendly #	HR (HEX VALUE)// FACILITY_NULL errors				E_NOINTERFACE					  430	0x80004002E_ABORT						  287	0x80004004// FACILITY_DISPATCH - IDispatch errors.		DISP_E_UNKNOWNINTERFACE				  438	0x80020001DISP_E_MEMBERNOTFOUND				  438	0x80020003DISP_E_PARAMNOTFOUND				  448	0x80020004DISP_E_TYPEMISMATCH				   13	0x80020005DISP_E_UNKNOWNNAME				  438	0x80020006DISP_E_NONAMEDARGS				  446	0x80020007DISP_E_BADVARTYPE				  458	0x80020008DISP_E_OVERFLOW					    6	0x8002000ADISP_E_BADINDEX					    9	0x8002000BDISP_E_UNKNOWNLCID				  447	0x8002000CDISP_E_ARRAYISLOCKED				   10	0x8002000DDISP_E_BADPARAMCOUNT				  450	0x8002000EDISP_E_PARAMNOTOPTIONAL				  449	0x8002000FDISP_E_NOTACOLLECTION				  451	0x80020011DISP_E_DIVBYZERO				   11	0x80020012// FACILITY_DISPATCH - Typelib errors.			TYPE_E_BUFFERTOOSMALL				32790	0x800280160x80028017					  461	0x80028017TYPE_E_INVDATAREAD				32792	0x80028018TYPE_E_UNSUPFORMAT				32793	0x80028019TYPE_E_REGISTRYACCESS				32796	0x8002801CTYPE_E_LIBNOTREGISTERED				32797	0x8002801DTYPE_E_UNDEFINEDTYPE				32807	0x80028027TYPE_E_QUALIFIEDNAMEDISALLOWED			32808	0x80028028TYPE_E_INVALIDSTATE				32809	0x80028029TYPE_E_WRONGTYPEKIND				32810	0x8002802ATYPE_E_ELEMENTNOTFOUND				32811	0x8002802BTYPE_E_AMBIGUOUSNAME				32812	0x8002802CTYPE_E_NAMECONFLICT				32813	0x8002802DTYPE_E_UNKNOWNLCID				32814	0x8002802ETYPE_E_DLLFUNCTIONNOTFOUND			  453	0x8002802FTYPE_E_BADMODULEKIND				35005	0x800288BDTYPE_E_SIZETOOBIG				35013	0x800288C5TYPE_E_TYPEMISMATCH				   13	0x80028CA0TYPE_E_OUTOFBOUNDS				    9	0x80028CA1TYPE_E_IOERROR					   57	0x80028CA2TYPE_E_CANTCREATETMPFILE			  322	0x80028CA3TYPE_E_CANTLOADLIBRARY				   48	0x80029C4ATYPE_E_INCONSISTENTPROPFUNCS			40067	0x80029C83TYPE_E_CIRCULARTYPE				40068	0x80029C84// FACILITY_STORAGE errors				STG_E_INVALIDFUNCTION				32774	0x80030001STG_E_FILENOTFOUND				   53	0x80030002STG_E_PATHNOTFOUND				   76	0x80030003STG_E_TOOMANYOPENFILES				   67	0x80030004STG_E_ACCESSDENIED				   70	0x80030005STG_E_INVALIDHANDLE				32772	0x80030006STG_E_INSUFFICIENTMEMORY			    7	0x80030008STG_E_NOMOREFILES				   67	0x80030012STG_E_DISKISWRITEPROTECTED			   70	0x80030013STG_E_SEEKERROR					32771	0x80030019STG_E_WRITEFAULT				32773	0x8003001DSTG_E_READFAULT					32772	0x8003001ESTG_E_SHAREVIOLATION				   75	0x80030020STG_E_LOCKVIOLATION				   70	0x80030021STG_E_FILEALREADYEXISTS				   58	0x80030050STG_E_MEDIUMFULL				   61	0x80030070STG_E_INVALIDHEADER				32792	0x800300FBSTG_E_INVALIDNAME				   53	0x800300FCSTG_E_UNKNOWN					32792	0x800300FDSTG_E_UNIMPLEMENTEDFUNCTION			32768	0x800300FESTG_E_INUSE					   70	0x80030100STG_E_NOTCURRENT				   70	0x80030101STG_E_REVERTED					32773	0x80030102STG_E_CANTSAVE					   57	0x80030103STG_E_OLDFORMAT					32793	0x80030104STG_E_OLDDLL					32793	0x80030105STG_E_SHAREREQUIRED				32789	0x80030106STG_E_NOTFILEBASEDSTORAGE			32793	0x80030107STG_E_EXTANTMARSHALLINGS			32793	0x80030108// FACILITY_ITF errors.				CLASS_E_NOTLICENSED				  429	0x80040112REGDB_E_CLASSNOTREG				  429	0x80040154MK_E_UNAVAILABLE				  429	0x800401E3MK_E_INVALIDEXTENSION				  432	0x800401E6MK_E_CANTOPENFILE				  432	0x800401EACO_E_CLASSSTRING				  429	0x800401F3CO_E_APPNOTFOUND				  429	0x800401F5CO_E_APPDIDNTREG				  429	0x800401FEE_ACCESSDENIED					   70	0x80070005E_OUTOFMEMORY					    7	0x8007000EE_INVALIDARG					    5	0x80070057RPC_S_SERVER_UNAVAILABLE			  462	0x800706baCO_E_SERVER_EXEC_FAILURE			  429	0x800800050xffffffff					  440		
Referências
Para obter mais informações sobre a interface ISupportErrorInfo , consulte Platform Software Development Kit documentação.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 827994 - Última Revisão: 12/08/2015 04:37:12 - Revisão: 2.0

Microsoft Visual Basic Enterprise Edition for Windows 6.0, Microsoft Visual Basic 6.0 Learning Edition, Microsoft Visual Basic 6.0 Professional Edition

  • kbnosurvey kbarchive kbmt kbinterop kbinfo KB827994 KbMtpt
Comentários