函式功能與原型
函式功能
該函式返回一個對話框錯誤代碼,此代碼顯示出在執行下列對話框函式時要出現的最近的錯誤:ChooseColor,GetOpenFileName,ChooseFont,GetSaveFileName,FindText,PrintDlg,ReplaceText,PageSetpDlg。
函式原型
DWORD CommDlgExtendedError(VOID)
參數
無
返回值
如果最近一次對話框函式調用成功,返回值不確定,如果對話框函式因為用戶關閉或取消對話框而返回FALSE,則返回值為零。否則返回值是非零錯誤代碼。有關更多的信息,參見下列說明部分。
備註
CommDlgExtendedError函式可以返回公共對話框函式中的一般的錯誤代碼。
另外,也返回某一具體公共對話框的錯誤代碼。由CommDlgExtendedError返回的錯誤代碼在CDERR.H檔案里定義:
返回錯誤代碼值
CDERR_DIALOGFAILURE:對話框不能創建。DialogBox函式對對話框函式的調用失敗,例如如果公共對話框的調用指定一個無效的視窗句柄,則此種錯誤產生。
CDERR_FINDRESFAILURE:公共對話框函式沒能找到指定資源。
CDERR_INITIALIZATION:公共對話框函式在初始化過程中失敗。當沒有足夠記憶體時此錯誤出現。
CDERR_LOADRESFAILURE:公共對話框函式沒能調出指定的資源。
CDERR_LOADSTRFAILURE:公共對話框函式沒能調出指定的串。
CDERR_LOCKRESFAILURE:公共對話框函式沒能銷定指定的資源。
CDERR_EMAILCOLFAILURE;公共對話框函式不能為內部結構分配記憶體。
CDERR_NOHINSTANCE:在對應的公共對話框初始化結構Flags成員中設定ENABLETEMPLATE標誌,但是在提供相應的事例句柄時出錯。
CDERR_NOHOOK:在對應的公共對話框初始化結構Flags成員中設定ENABLEHOOK標誌,但是在提供相應的掛鈎程式指針時出錯。
CDERR_NOTEMPLATE:在對應的公共對話框初始化結構Flag成員中設定ENABLETEMPLATE標誌,但是在提供相應的模板時出錯。
CDERR_REGISTERMSGFAIL:當RegisterWindowMessage函式被公共對話框函式調用時,該函式返回錯誤代碼。
CDERR_STRUCTSIZE:對應的公共對話框初始化結構舊IStructSize成無效成員。
Print Dlg函式的返回值
PDERR_CREATEICFAILURE:當PrintDlg函式想創建一個信息表時出錯。
PDERR_DEFAIKTDFFERENT:利用在DEVNAMES結構中wDefault成員指定的DN_DEFAULTPRN標誌,可以調用PrintDlg函式。但是被另外一個結構成員描述的印表機與當前預設的印表機不匹配。(此錯誤發生在儲存DEVNAMES結構和用戶利用控制臺改變預設印表機時)。要使用DEVNAMES結構所描述的預設印表機,必須清空DN_DEFAULTPRN標誌並且要再一次調用PrintDlg。要使用預設印表機,必須用NULL取代DEVNAMES結構俐DEVMODE結構,如果此結構存在的話),並且要再一次調用PrintDlg函式。
PDERR_DNDMMISMATCH:OEVMOOE和DEVNAMFS結構中的數據描述了兩種不同的印表機。
PDERR_GETDEVMODEFAIL;印表機驅動程式不能初始化一個DEVMODE結構(這種錯誤代碼只用於Windows 3.0及以上版本的印表機驅動程式)。
PDERR_INITFAILURE:PrintDlg函式不能初始化,並且沒有更多的錯誤代碼來描述此錯誤。
PDERR_LOADDRVFAILURE:PrinDlg函式不能為指定的印表機裝備設備驅動器。
POERR_NODEFAULTPRN:不存在預設印表機。
POERR_NODEVKES:未發現印表機驅動程式。
PDERR_PARAEFAILURE:PrintDlg函式在分析WIN.INI檔案中的[devces]部分的字元串時出錯。
PDERR_PRINTERNOTFOUND;WIN.INI檔案的[device]部分不包含所請求印表機的入口
PDERR_RETDEFFAILURE_PD:RETURNDEFAULT標誌被指定在PRINTDLG結構的Flags成員中。但hDevMode或hDevNames成員不是NULL。
PDERR_SETUPFAILURE:PrintDlg函式在裝載所需要的資源時出錯。
函式的返回值
CFERR_MAXLESSTHANMIN:CHOOSEFONT結構中的nSizeMax成員所給定的大小小於nSizeMin成員給定的大小。
CFERR_NOFONTS:不存在字型。
下面是GetOpenFileName和GetSaveFileName函式的返回值。
FNERR_BUFFERTOOSMALL:由OPENFILENAME結構的lpstrFile成員指向的緩衝區對由用戶指定的檔案名稱來說太小。前兩種IpstrFile緩衝區的位元組含有一個指定大小的整型值。用來存放全檔案名稱。
FNERR_INVAIDFILENAME:檔案名稱無效。
FNERR_SUBASSFAILIIRE:由於沒有足夠記憶體,在對列表框分類時出錯。
下面是FindText和ReplaceText函式的返回值。
FRERR_BUFFERLENGTHZERO:結構FINDREPLACE中的一個成員指向一個無效的緩衝區。
在Windows CE中Windows CE支持另外的四種返回值,如下:
CDERR_REGISTRYFAILURE 公共對話框函式無法讀註冊表。
下面的一些返回值只適用於PrintDlg函式。
PDERR_NOPORTS:沒有註冊的連線埠PDERR_NOPRINTERS:沒有註冊的印表機
PDERR_CREATEDCFAILURE:CreateDC調用失敗
Windows CE不支持CDERR_LOADSTRFAILURE、CDERR_MEMLOCKFAILURE或CDERR_REGISTERMSGFAIL返回值。Windows CE也不支持任何PDERR_錯誤值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:頭檔案:commdlg.h;庫檔案:comdlg32.lib。
Const CDERR_DIALOGFAILURE = &HFFFF
Const CDERR_GENERALCODES = &H0
Const CDERR_STRUCTSIZE = &H1
Const CDERR_INITIALIZATION = &H2
Const CDERR_NOTEMPLATE = &H3
Const CDERR_NOHINSTANCE = &H4
Const CDERR_LOADSTRFAILURE = &H5
Const CDERR_FINDRESFAILURE = &H6
Const CDERR_LOADRESFAILURE = &H7
Const CDERR_LOCKRESFAILURE = &H8
Const CDERR_MEMALLOCFAILURE = &H9
Const CDERR_MEMLOCKFAILURE = &HA
Const CDERR_NOHOOK = &HB
Const CDERR_REGISTERMSGFAIL = &HC