JAK: Rozwiązywanie problemów z "Nie znaleziono członka" Błąd 0x80020003

Streszczenie

W tym artykule opisano niektóre typowe przyczyny błąd automatyzacji OLE - 2147352573 (80020003 hex) i sugerowane kroki rozwiązywania problemów.


Ten błąd może się jako DISP_E_MEMBERNOTFOUND.

Więcej informacji

Przyczyny 1

Są wywołanie IDispatch::Invoke() z wFlags ustawiony tylko na DISPATCH_METHOD i właściwość identyfikuje dispid.


Rezolucja 1

Dokumentacji pakietu Win32 SDK dla IDispatch::Invoke() stwierdza, że jeśli dispid reprezentuje właściwość, należy także ustawić, Flaga DISPATCH_PROPERTYGET. Ten problem występuje zazwyczaj podczas generowania klasy otoki z pakietu Microsoft Office 95 biblioteki typów za pomocą programu Microsoft Visual C++. Musisz jawnie zmodyfikować plik wygenerowany CPP każde wywołanie InvokeHelper(), który pobiera właściwości, aby użyć flagi DISPATCH_PROPERTGET. Jeśli używasz biblioteki typów pakietu Microsoft Office 97, odbywa się to automatycznie przez Microsoft Visual C++ Kreator klas.


Przyczyny 2

Używasz niewłaściwego wskaźnika interfejsu IDispatch.

Rezolucja 2

Zwykle występuje to, podczas używania automatyzacji OLE z aplikacjami pakietu Microsoft Office 97 lub dowolnej aplikacji, która ma model obiektów hierarchicznych. Użytkownik mógł już zainicjować klasy COleDispatchDriver, reprezentujących obiektu X, przy użyciu wskaźnika interfejsu IDispatch obiektu Y. Ten błąd może lub nie może wystąpić z pakietu Microsoft Office 95 lub innych aplikacji z tylko jedną z implementacji interfejsu IDispatch. Jest tak, ponieważ obiekt X i Y obiektu można zarówno realizowane za pomocą jednego interfejsu IDispatch, a tym samym wystąpi konflikt.

Przyczyny 3

Używasz nieprawidłowy dispid.

Rezolucja 3

Serwer nie rozpoznaje okreolone w wywołaniu IDispatch::Invoke() dispid. Sprawdź, czy jest to poprawne dispid, ewentualnie za pośrednictwem IDispatch::GetIDsOfNames().

Powiązane artykuły

Aby uzyskać więcej informacji dotyczących interfejsu IDispatch lub automatyzacji OLE, przeczytaj Uwaga Tech TN039 "Wdrożenie automatyzacji MFC/OLE."


Aby uzyskać więcej informacji o bibliotekach typów i jak z nich korzystać z programu Microsoft Visual C++ zobacz:


Microsoft Win32 Software Development pomoc do zestawu; Szukaj na: "typ biblioteki, importowanie z ClassWizard".



Aby uzyskać dodatkowe informacje zobacz następujący artykuł z bazy wiedzy Microsoft Knowledge Base:


Błąd : błędy XL97 przy użyciu automatyzacji OLE

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×