vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Windows/System22.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, WinMEViews:  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

 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.