Cómo: Solucionar problemas "No se encontró el miembro" 0x80020003 error

Seleccione idioma Seleccione idioma
Id. de artículo: 172108 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo describe algunas causas comunes del error de automatización - 2147352573 (80020003 hex) y sugiere pasos de solución de problemas.

El error puede mostrarse como DISP_E_MEMBERNOTFOUND.

Más información

Causa 1

Que está llamando IDispatch::Invoke() con wFlags sólo establecer en DISPATCH_METHOD y el dispid identifica una propiedad.

Resolución 1

La documentación Win32 SDK para IDispatch::Invoke() indica que si el dispid representa una propiedad, también debe establecer el indicador DISPATCH_PROPERTYGET. Este problema normalmente se produce cuando usa Microsoft Visual C++ para generar contenedores de clase desde las bibliotecas de tipos Microsoft Office 95. Tiene que modificar explícitamente el archivo .cpp generado para cualquier llamada InvokeHelper() que recupera una propiedad para utilizar el indicador DISPATCH_PROPERTGET. Si utiliza bibliotecas de tipos de Microsoft Office 97, esto se realiza automáticamente por el Asistente para la clase de Microsoft Visual C++.

Causa 2

Estás utilizando el puntero IDispatch incorrecto.

Resolución 2

Esto suele ocurrir al utilizar automatización con las aplicaciones de Microsoft Office 97, o cualquier aplicación que tiene un modelo jerárquico. Puede haber inicializado una clase COleDispatchDriver, que representa un objeto X, con el puntero IDispatch para un objeto Y. Este error puede o no puede producirse con Microsoft Office 95 u otras aplicaciones con sólo una implementación de IDispatch. Esto es porque objeto X y el objeto Y podrían ambos implementarse a través de una interfaz IDispatch y, por lo tanto, no se producirá ningún conflicto.

Causa 3

Estás utilizando un dispid no válido.

Resolución 3

El servidor no reconoce el dispid que haya especificado en la llamada a IDispatch::Invoke(). Compruebe que este es el dispid correcto, posiblemente a través de IDispatch::GetIDsOfNames().

Referencias

Para obtener más información sobre IDispatch o de automatización, lea Tech Nota TN039 "Implementación de automatización de MFC/OLE".

Para obtener más información acerca de las bibliotecas de tipos y cómo utilizarlos con Microsoft Visual C++, vea:

Ayuda de Microsoft Win32 Software Development Kit; busque en: "escribir bibliotecas de importación con ClassWizard".

Para obtener información adicional, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:

165273Error: XL97 errores mediante la automatización OLE

Propiedades

Id. de artículo: 172108 - Última revisión: lunes, 11 de julio de 2005 - Versión: 1.3
La información de este artículo se refiere a:
  • Microsoft Platform Software Development Kit-January 2000 Edition
Palabras clave: 
kbmt kbfaq kbhowto KB172108 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 172108

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com