Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ponieważ metody interfejsu są wirtualne, obiekt wywołujący nie może znać pełnego zestawu wartości, które mogą być zwracane z jednego wywołania. Jedna implementacja metody może zwrócić pięć wartości; inny może zwrócić osiem.
W dokumentacji wymieniono typowe wartości, które mogą być zwracane dla każdej metody; są to wartości, które należy sprawdzić i obsługiwać w kodzie, ponieważ mają specjalne znaczenie. Inne wartości mogą być zwracane, ale ponieważ nie są znaczące, nie trzeba pisać specjalnego kodu, aby je obsłużyć. Proste sprawdzenie zerowej lub niezerowej jest odpowiednie.
Wartości HRESULT
Zwracana wartość funkcji i metod COM to HRESULT. Wartości niektórych HRESULTs zostały zmienione w modelu COM, aby wyeliminować wszystkie duplikaty i nakładać się na kody błędów systemu. Te, które duplikowały kody błędów systemowych, zostały zmienione na FACILITY_WIN32, a te, które nakładają się na siebie, pozostają w FACILITY_NULL. Typowe wartości HRESULT i ich wartości są wymienione w poniższej tabeli.
| HRESULT | Wartość | Opis |
|---|---|---|
| E_ABORT |
0x80004004 |
Operacja została przerwana z powodu nieokreślonego błędu. |
| E_ACCESSDENIED |
0x80070005 |
Ogólny błąd odmowy dostępu. |
| E_FAIL |
0x80004005 |
Wystąpił nieokreślony błąd. |
| E_HANDLE |
0x80070006 |
Użyto nieprawidłowego uchwytu. |
| E_INVALIDARG |
0x80070057 |
Co najmniej jeden argument jest nieprawidłowy. |
| E_NOINTERFACE |
0x80004002 |
Metoda QueryInterface nie rozpoznała żądanego interfejsu. Interfejs nie jest obsługiwany. |
| E_NOTIMPL |
0x80004001 |
Metoda nie jest zaimplementowana. |
| E_OUTOFMEMORY |
0x8007000E |
Metoda nie może przydzielić wymaganej pamięci. |
| E_PENDING |
0x8000000A |
Dane niezbędne do ukończenia operacji nie są jeszcze dostępne. |
| E_POINTER |
0x80004003 |
Użyto nieprawidłowego wskaźnika. |
| E_UNEXPECTED |
0x8000FFFF |
Wystąpił katastrofalny błąd. |
| S_FALSE |
0x00000001 |
Metoda powiodła się i zwróciła wartość logiczną FALSE. |
| S_OK |
0x00000000 |
Metoda powiodła się. Jeśli oczekiwana jest wartość zwracana przez wartość logiczną, zwracana wartość jest true. |
Błędy sieci
Jeśli pierwsze cztery cyfry kodu błędu to 8007, oznacza to błąd systemu lub sieci. Aby zdekodować te typy błędów, można użyć polecenia net net. Aby zdekodować błąd, najpierw przekonwertuj ostatnie cztery cyfry kodu błędu szesnastkowego na liczbę dziesiętną. Następnie w wierszu polecenia wpisz następujące polecenie, gdzie kod dziesiętny jest zastępowany wartością zwracaną, którą chcesz zdekodować:
net helpmsg <decimal_code>
Polecenie net zwraca opis błędu. Jeśli na przykład com zwraca błąd 8007054B, przekonwertuj wartość 054B na liczbę dziesiętną (1355). Następnie wpisz następujące polecenie:
net helpmsg 1355
Polecenie net zwraca opis błędu: "Określona domena nie istnieje".
Tematy pokrewne
-
obsługa błędów w COM