Procedure: Problemen oplossen met "Lid niet gevonden" fout 0x80020003


Samenvatting


In dit artikel worden enkele algemene oorzaken van de OLE-automatiseringsfout - 2147352573 (80020003 hex) en aanbevolen stappen voor probleemoplossing.


De fout kan worden weergegeven als DISP_E_MEMBERNOTFOUND.

Meer informatie


Oorzaak 1

U belt IDispatch::Invoke() wFlags ingesteld op DISPATCH_METHOD en het dispid een eigenschap wordt aangeduid.


Oplossing 1

De Win32 SDK-documentatie voor IDispatch::Invoke() staat het dispid een eigenschap vertegenwoordigt, moet u de vlag DISPATCH_PROPERTYGET ook instellen. Dit probleem treedt gewoonlijk op wanneer u met Microsoft Visual C++ class wrappers genereren vanuit de typebibliotheken voor Microsoft Office 95. U moet expliciet de gegenereerde .cpp-bestand voor elke aanroep van InvokeHelper() die wordt opgehaald van een eigenschap voor het gebruik van de vlag DISPATCH_PROPERTGET wijzigen. Als u de Microsoft Office 97-bibliotheken, wordt dit automatisch gedaan door de Wizard Microsoft Visual C++ Class.


Oorzaak 2

U gebruikt het verkeerde IDispatch-pointer.

Oplossing 2

Dit gebeurt meestal wanneer u OLE-automatisering met de toepassingen van Microsoft Office 97 of een toepassing die een hiërarchische objectmodel is. U mogelijk hebt geïnitialiseerd een klasse COleDispatchDriver, die een object X, met de IDispatch-pointer voor een Y-object vertegenwoordigt. Deze fout kan of niet kan optreden met Microsoft Office 95 of andere toepassingen met slechts één IDispatch-implementatie. Dit is omdat het object X en Y-object kunnen zowel worden uitgevoerd door middel van een IDispatch-interface en dus geen conflict zal plaatsvinden.

Oorzaak 3

U gebruikt een ongeldig dispid.

Resolutie 3

De dispid die u hebt opgegeven in de aanroep van IDispatch::Invoke() wordt niet herkend door de server. Controleer of dit de juiste dispid, eventueel via IDispatch::GetIDsOfNames().

Referenties


Lees voor meer informatie over IDispatch of OLE-automatisering, technische opmerking TN039 "MFC/OLE-automatisering tenuitvoerlegging".


Zie voor meer informatie over typebibliotheken en hoe deze te gebruiken met Microsoft Visual C++:


Help voor Microsoft Win32 Software Development Kit; zoeken op: "type bibliotheken met ClassWizard importeren".



Raadpleeg het volgende artikel in de Microsoft Knowledge Base voor meer informatie:


165273 BUG: Excel 97-fouten met behulp van OLE-automatisering