Rubrik: Windows/System | 22.03.05 |
CommDlgExtendedError-Funktion Diese Funktion ermittelt den letzten Fehlercode einer Standard-Dialogbox wie z.B. des Druckerdialogs oder des Standarddialogs zum Öffnen einer Datei. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 9.165 |
Deklaration:
Declare Function CommDlgExtendedError Lib "comdlg32.dll" () As Long
Beschreibung:
Diese Funktion ermittelt den letzten Fehlercode einer Standard-Dialogbox wie z.B. des Druckerdialogs oder des Standarddialogs zum Öffnen einer Datei.
Parameter:
keine |
Rückgabewert:
Wurde der Dialog ohne eine Auswahl geschlossen dann ist die Rückgabe "0". War der Aufruf eines Standarddialogs nicht erfolgreich so ist die Rückgabe ein Fehlercode der mittels der Rückgabe-Konstanten ausgewertet werden kann. Wurde der Dialog erfolgreich beendet und eine Auswahl getroffen so ist die Rückgabe undefiniert.
Rückgabekonstanten:
Const CDERR_DIALOGFAILURE = &HFFFF ' Der Dialog kann nicht geöffnet werden Const CDERR_FINDRESFAILURE = &H6 ' Eine benötigte Ressource kann nicht gefunden werden Const CDERR_GENERALCODES = &H0 ' Eine Eigenschaft konnte nicht gelesen werden Const CDERR_INITIALIZATION = &H2 ' Nicht genug Speicher Const CDERR_LOADRESFAILURE = &H7 ' Eine benötigte Ressource kann nicht geladen werden Const CDERR_LOADSTRFAILURE = &H5 ' Ein benötigter String kann nicht gefunden werden Const CDERR_LOCKRESFAILURE = &H8 ' Die benötigte Ressource kann nicht gelockt werden Const CDERR_MEMALLOCFAILURE = &H9 ' Es kann kein Speicher zugewiesen werden Const CDERR_MEMLOCKFAILURE = &HA ' Der benötigte Speicher kann nicht gelockt werden Const CDERR_NOHINSTANCE = &H4 ' Es wurde kein gültiges Instanzhandle übergeben Const CDERR_NOHOOK = &HB ' Es wurde keine gültige Hookfunktion angegeben Const CDERR_NOTEMPLATE = &H3 ' Es wurde kein gültiges Template angegeben Const CDERR_REGISTERMSGFAIL = &HC ' Eine Fensternachricht konnte nicht registriert werden Const CDERR_STRUCTSIZE = &H1 ' Die Strukturgröße ist ungültig Const CFERR_CHOOSEFONTCODES = &H2000 ' Ein Fehler ist beim ChooseFont Dialog aufgetreten Const CFERR_MAXLESSTHANMIN = &H2002 ' Die maximale Fontgröße ist größer als die minimale Fontgröße Const CFERR_NOFONTS = &H2001 ' Es wurden keine existierenden Fonts gefunden Const FNERR_BUFFERTOOSMALL = &H3003 ' Der Puffer, um die Dateinamen zu empfangen, ist zu klein Const FNERR_FILENAMECODES = &H3000 ' Ein Fehler ist bei der Openfile- oder Savefile-Dialogbox aufgetreten Const FNERR_INVALIDFILENAME = &H3002 ' Der Funktion wurde ein ungültiger Dateiname übergeben oder es wurde einer ausgewählt Const FNERR_SUBCLASSFAILURE = &H3001 ' Nicht genügend Speicher für die Listbox Const FRERR_BUFFERLENGTHZERO = &H4001 ' Der Puffer ist ungültig Const FRERR_FINDREPLACECODES = &H4000 ' Ein Fehler ist im FindReplace-Dialog aufgetreten Const PDERR_CREATEICFAILURE = &H100A ' Die Dialogbox konnte keinen Informationskontext erstellen Const PDERR_DEFAULTDIFFERENT = &H100C ' Der übergebene Standarddrucker entspricht nicht dem Standarddrucker des Systems Const PDERR_DNDMMISMATCH = &H1009 ' Die Drucker der beiden Strukturen stimmen nicht überein Const PDERR_GETDEVMODEFAIL = &H1005 ' Die DEVMODE Struktur konnte nicht initialisiert werden Const PDERR_INITFAILURE = &H1006 ' Der Dialog konnte nicht initialisiert werden Const PDERR_LOADDRVFAILURE = &H1004 ' Der benötigte Druckertreiber konnte nicht geladen werden Const PDERR_NODEFAULTPRN = &H1008 ' Es wurde kein Standarddrucker gefunden Const PDERR_NODEVICES = &H1007 ' Es konnten keine Drucker gefunden werden Const PDERR_PARSEFAILURE = &H1002 ' Der Dialog konnte die in der Win.ini angegebenen Drucker nicht parsen Const PDERR_PRINTERCODES = &H1000 ' Ein Fehler ist im Print-Dialog aufgetreten Const PDERR_PRINTERNOTFOUND = &H100B ' Es konnten keine Informationen in der Win.ini über den angegebenen Drucker ' gefunden werden Const PDERR_RETDEFFAILURE = &H1003 ' Die Strukturhandles wurden nicht angegeben, aber es wurde beim ' Funktionsaufruf eine Rückgabe verlangt Const PDERR_SETUPFAILURE = &H1001 ' Der Dialog konnte die benötigten Ressourcen nicht laden
Beispiel:
Private Declare Function CommDlgExtendedError Lib "comdlg32.dll" () As Long Private Const CDERR_DIALOGFAILURE = &HFFFF ' Der Dialog kann nicht geöffnet werden Private Const CDERR_FINDRESFAILURE = &H6 ' Eine benötigte Ressource kann nicht gefunden werden Private Const CDERR_GENERALCODES = &H0 ' Eine Eigenschaft konnte nicht gelesen werden Private Const CDERR_INITIALIZATION = &H2 ' Nicht genug Speicher Private Const CDERR_LOADRESFAILURE = &H7 ' Eine benötigte Ressource kann nicht geladen werden Private Const CDERR_LOADSTRFAILURE = &H5 ' Ein benötigter String kann nicht gefunden werden Private Const CDERR_LOCKRESFAILURE = &H8 ' Die benötigte Ressource kann nicht gelockt werden Private Const CDERR_MEMALLOCFAILURE = &H9 ' Es kann kein Speicher zugewiesen werden Private Const CDERR_MEMLOCKFAILURE = &HA ' Der benötigte Speicher kann nicht gelockt werden Private Const CDERR_NOHINSTANCE = &H4 ' Es wurde kein gültiges Instanzhandle übergeben Private Const CDERR_NOHOOK = &HB ' Es wurde keine gültige Hookfunktion angegeben Private Const CDERR_NOTEMPLATE = &H3 ' Es wurde kein gültiges Template angegeben Private Const CDERR_REGISTERMSGFAIL = &HC ' Eine Fensternachricht konnte nicht registriert werden Private Const CDERR_STRUCTSIZE = &H1 ' Die Strukturgröße ist ungültig Private Const CFERR_CHOOSEFONTCODES = &H2000 ' Ein Fehler ist beim ChooseFont-Dialog aufgetreten Private Const CFERR_MAXLESSTHANMIN = &H2002 ' Die maximale Fontgröße ist größer als die minimale Fontgröße Private Const CFERR_NOFONTS = &H2001 ' Es wurden keine existierenden Fonts gefunden Private Const FNERR_BUFFERTOOSMALL = &H3003 ' Der Puffer um die Dateinamen zu empfangen ist zu klein Private Const FNERR_FILENAMECODES = &H3000 ' Ein Fehler ist bei der Openfile- oder Savefile-Dialogbox aufgetreten Private Const FNERR_INVALIDFILENAME = &H3002 ' Der Funktion wurde ein ungültiger Dateiname ' übergeben oder es wurde einer ausgewählt Private Const FNERR_SUBCLASSFAILURE = &H3001 ' Nicht genügend Speicher für die Listbox Private Const FRERR_BUFFERLENGTHZERO = &H4001 ' Der Puffer ist ungültig Private Const FRERR_FINDREPLACECODES = &H4000 ' Ein Fehler ist im FindReplace-Dialog aufgetreten Private Const PDERR_CREATEICFAILURE = &H100A ' Die Dialogbox konnte keinen Informationskontext erstellen Private Const PDERR_DEFAULTDIFFERENT = &H100C ' Der übergebene Standarddrucker entspricht ' nicht dem Standarddrucker des Systems Private Const PDERR_DNDMMISMATCH = &H1009 ' Die Drucker der beiden Strukturen stimmen nicht überein Private Const PDERR_GETDEVMODEFAIL = &H1005 ' Die DEVMODE Struktur konnte nicht initialisiert werden Private Const PDERR_INITFAILURE = &H1006 ' Der Dialog konnte nicht initialisiert werden Private Const PDERR_LOADDRVFAILURE = &H1004 ' Der benötigte Druckertreiber konnte nicht geladen werden Private Const PDERR_NODEFAULTPRN = &H1008 ' Es wurde kein Standarddrucker gefunden Private Const PDERR_NODEVICES = &H1007 ' Es konnten keine Drucker gefunden werden Private Const PDERR_PARSEFAILURE = &H1002 ' Der Dialog konnte die in der Win.ini angegebenen Drucker nicht parsen Private Const PDERR_PRINTERCODES = &H1000 ' Ein Fehler ist im Print-Dialog aufgetreten Private Const PDERR_PRINTERNOTFOUND = &H100B ' Es konnten keine Informationen in der Win.ini ' über den angegebenen Drucker gefunden werden Private Const PDERR_RETDEFFAILURE = &H1003 ' Die Strukturhandles wurden nicht angegeben, aber es wurde ' beim Funktionsaufruf eine Rückgabe verlangt Private Const PDERR_SETUPFAILURE = &H1001 ' Der Dialog konnte die benötigten Ressourcen nicht laden
Private Sub Command1_Click() On Error GoTo ErrDlg ' Dialog öffnen und Pufferfehler erzeugen With CommonDialog1 .MaxFileSize = 1 ' Der Puffer ist mit dem Wert zu klein um einen Dateinamen zu empfangen .Filter = "*.* - Alle Dateien|*.*" .DialogTitle = "Datei Öffnen" .CancelError = True .ShowOpen End With MsgBox "Die Datei " & CommonDialog1.FileName & " wurde erfolgreich gewählt." Exit Sub ' Fehler auswerten Select Case CommDlgExtendedError Case 0 MsgBox "Sie haben keine Datei gewählt" Case FNERR_BUFFERTOOSMALL MsgBox "Der Puffer ist zu klein um die Dateinamen zu empfangen," _ & vbCrLf & _ "setzen sie 'MaxFileSize' auf einen größeren wert.", vbCritical, _ ' "Fehler: " & CommDlgExtendedError ' ... und so weiter Case Else MsgBox "Fehler " & CommDlgExtendedError End Select End Sub