diff options
Diffstat (limited to '')
-rw-r--r-- | public/sdk/inc/commdlg.h | 717 |
1 files changed, 717 insertions, 0 deletions
diff --git a/public/sdk/inc/commdlg.h b/public/sdk/inc/commdlg.h new file mode 100644 index 000000000..902ef1a6d --- /dev/null +++ b/public/sdk/inc/commdlg.h @@ -0,0 +1,717 @@ +/************************************************************************ +* * +* commdlg.h -- This module defines the 32-Bit Common Dialog APIs * +* * +* Copyright (c) 1992-1996, Microsoft Corp. All rights reserved. * +* * +************************************************************************/ +#ifndef _INC_COMMDLG +#define _INC_COMMDLG + + +#include <pshpack1.h> /* Assume byte packing throughout */ + +#ifdef __cplusplus +extern "C" { /* Assume C declarations for C++ */ +#endif /* __cplusplus */ + +#if(WINVER >= 0x0400) +#ifdef __cplusplus +#define SNDMSG ::SendMessage +#else /* __cplusplus */ +#define SNDMSG SendMessage +#endif /* __cplusplus */ +#endif /* WINVER >= 0x0400 */ + +typedef UINT (APIENTRY *LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +typedef struct tagOFNA { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCSTR lpstrFilter; + LPSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPSTR lpstrFile; + DWORD nMaxFile; + LPSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCSTR lpstrInitialDir; + LPCSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCSTR lpstrDefExt; + LPARAM lCustData; + LPOFNHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} OPENFILENAMEA, *LPOPENFILENAMEA; +typedef struct tagOFNW { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCWSTR lpstrFilter; + LPWSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPWSTR lpstrFile; + DWORD nMaxFile; + LPWSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCWSTR lpstrInitialDir; + LPCWSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCWSTR lpstrDefExt; + LPARAM lCustData; + LPOFNHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} OPENFILENAMEW, *LPOPENFILENAMEW; +#ifdef UNICODE +typedef OPENFILENAMEW OPENFILENAME; +typedef LPOPENFILENAMEW LPOPENFILENAME; +#else +typedef OPENFILENAMEA OPENFILENAME; +typedef LPOPENFILENAMEA LPOPENFILENAME; +#endif // UNICODE + +BOOL APIENTRY GetOpenFileNameA(LPOPENFILENAMEA); +BOOL APIENTRY GetOpenFileNameW(LPOPENFILENAMEW); +#ifdef UNICODE +#define GetOpenFileName GetOpenFileNameW +#else +#define GetOpenFileName GetOpenFileNameA +#endif // !UNICODE +BOOL APIENTRY GetSaveFileNameA(LPOPENFILENAMEA); +BOOL APIENTRY GetSaveFileNameW(LPOPENFILENAMEW); +#ifdef UNICODE +#define GetSaveFileName GetSaveFileNameW +#else +#define GetSaveFileName GetSaveFileNameA +#endif // !UNICODE +short APIENTRY GetFileTitleA(LPCSTR, LPSTR, WORD); +short APIENTRY GetFileTitleW(LPCWSTR, LPWSTR, WORD); +#ifdef UNICODE +#define GetFileTitle GetFileTitleW +#else +#define GetFileTitle GetFileTitleA +#endif // !UNICODE + +#define OFN_READONLY 0x00000001 +#define OFN_OVERWRITEPROMPT 0x00000002 +#define OFN_HIDEREADONLY 0x00000004 +#define OFN_NOCHANGEDIR 0x00000008 +#define OFN_SHOWHELP 0x00000010 +#define OFN_ENABLEHOOK 0x00000020 +#define OFN_ENABLETEMPLATE 0x00000040 +#define OFN_ENABLETEMPLATEHANDLE 0x00000080 +#define OFN_NOVALIDATE 0x00000100 +#define OFN_ALLOWMULTISELECT 0x00000200 +#define OFN_EXTENSIONDIFFERENT 0x00000400 +#define OFN_PATHMUSTEXIST 0x00000800 +#define OFN_FILEMUSTEXIST 0x00001000 +#define OFN_CREATEPROMPT 0x00002000 +#define OFN_SHAREAWARE 0x00004000 +#define OFN_NOREADONLYRETURN 0x00008000 +#define OFN_NOTESTFILECREATE 0x00010000 +#define OFN_NONETWORKBUTTON 0x00020000 +#define OFN_NOLONGNAMES 0x00040000 // force no long names for 4.x modules +#if(WINVER >= 0x0400) +#define OFN_EXPLORER 0x00080000 // new look commdlg +#define OFN_NODEREFERENCELINKS 0x00100000 +#define OFN_LONGNAMES 0x00200000 // force long names for 3.x modules +#endif /* WINVER >= 0x0400 */ + +// Return values for the registered message sent to the hook function +// when a sharing violation occurs. OFN_SHAREFALLTHROUGH allows the +// filename to be accepted, OFN_SHARENOWARN rejects the name but puts +// up no warning (returned when the app has already put up a warning +// message), and OFN_SHAREWARN puts up the default warning message +// for sharing violations. +// +// Note: Undefined return values map to OFN_SHAREWARN, but are +// reserved for future use. + +#define OFN_SHAREFALLTHROUGH 2 +#define OFN_SHARENOWARN 1 +#define OFN_SHAREWARN 0 + +typedef UINT (APIENTRY *LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +#if(WINVER >= 0x0400) +// Structure used for all OpenFileName notifications +typedef struct _OFNOTIFYA +{ + NMHDR hdr; + LPOPENFILENAMEA lpOFN; + LPSTR pszFile; // May be NULL +} OFNOTIFYA, FAR *LPOFNOTIFYA; +// Structure used for all OpenFileName notifications +typedef struct _OFNOTIFYW +{ + NMHDR hdr; + LPOPENFILENAMEW lpOFN; + LPWSTR pszFile; // May be NULL +} OFNOTIFYW, FAR *LPOFNOTIFYW; +#ifdef UNICODE +typedef OFNOTIFYW OFNOTIFY; +typedef LPOFNOTIFYW LPOFNOTIFY; +#else +typedef OFNOTIFYA OFNOTIFY; +typedef LPOFNOTIFYA LPOFNOTIFY; +#endif // UNICODE + +#define CDN_FIRST (0U-601U) +#define CDN_LAST (0U-699U) + +// Notifications when Open or Save dialog status changes +#define CDN_INITDONE (CDN_FIRST - 0x0000) +#define CDN_SELCHANGE (CDN_FIRST - 0x0001) +#define CDN_FOLDERCHANGE (CDN_FIRST - 0x0002) +#define CDN_SHAREVIOLATION (CDN_FIRST - 0x0003) +#define CDN_HELP (CDN_FIRST - 0x0004) +#define CDN_FILEOK (CDN_FIRST - 0x0005) +#define CDN_TYPECHANGE (CDN_FIRST - 0x0006) + +#define CDM_FIRST (WM_USER + 100) +#define CDM_LAST (WM_USER + 200) + +// Messages to query information from the Open or Save dialogs + +// lParam = pointer to text buffer that gets filled in +// wParam = max number of characters of the text buffer (including NULL) +// return = < 0 if error; number of characters needed (including NULL) +#define CDM_GETSPEC (CDM_FIRST + 0x0000) +#define CommDlg_OpenSave_GetSpecA(_hdlg, _psz, _cbmax) \ + (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) +#define CommDlg_OpenSave_GetSpecW(_hdlg, _psz, _cbmax) \ + (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) +#ifdef UNICODE +#define CommDlg_OpenSave_GetSpec CommDlg_OpenSave_GetSpecW +#else +#define CommDlg_OpenSave_GetSpec CommDlg_OpenSave_GetSpecA +#endif // !UNICODE + +// lParam = pointer to text buffer that gets filled in +// wParam = max number of characters of the text buffer (including NULL) +// return = < 0 if error; number of characters needed (including NULL) +#define CDM_GETFILEPATH (CDM_FIRST + 0x0001) +#define CommDlg_OpenSave_GetFilePathA(_hdlg, _psz, _cbmax) \ + (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) +#define CommDlg_OpenSave_GetFilePathW(_hdlg, _psz, _cbmax) \ + (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) +#ifdef UNICODE +#define CommDlg_OpenSave_GetFilePath CommDlg_OpenSave_GetFilePathW +#else +#define CommDlg_OpenSave_GetFilePath CommDlg_OpenSave_GetFilePathA +#endif // !UNICODE + +// lParam = pointer to text buffer that gets filled in +// wParam = max number of characters of the text buffer (including NULL) +// return = < 0 if error; number of characters needed (including NULL) +#define CDM_GETFOLDERPATH (CDM_FIRST + 0x0002) +#define CommDlg_OpenSave_GetFolderPathA(_hdlg, _psz, _cbmax) \ + (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz) +#define CommDlg_OpenSave_GetFolderPathW(_hdlg, _psz, _cbmax) \ + (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz) +#ifdef UNICODE +#define CommDlg_OpenSave_GetFolderPath CommDlg_OpenSave_GetFolderPathW +#else +#define CommDlg_OpenSave_GetFolderPath CommDlg_OpenSave_GetFolderPathA +#endif // !UNICODE + +// lParam = pointer to ITEMIDLIST buffer that gets filled in +// wParam = size of the ITEMIDLIST buffer +// return = < 0 if error; length of buffer needed +#define CDM_GETFOLDERIDLIST (CDM_FIRST + 0x0003) +#define CommDlg_OpenSave_GetFolderIDList(_hdlg, _pidl, _cbmax) \ + (int)SNDMSG(_hdlg, CDM_GETFOLDERIDLIST, (WPARAM)_cbmax, (LPARAM)(LPVOID)_pidl) + +// lParam = pointer to a string +// wParam = ID of control to change +// return = not used +#define CDM_SETCONTROLTEXT (CDM_FIRST + 0x0004) +#define CommDlg_OpenSave_SetControlText(_hdlg, _id, _text) \ + (void)SNDMSG(_hdlg, CDM_SETCONTROLTEXT, (WPARAM)_id, (LPARAM)(LPSTR)_text) + +// lParam = not used +// wParam = ID of control to change +// return = not used +#define CDM_HIDECONTROL (CDM_FIRST + 0x0005) +#define CommDlg_OpenSave_HideControl(_hdlg, _id) \ + (void)SNDMSG(_hdlg, CDM_HIDECONTROL, (WPARAM)_id, 0) + +// lParam = pointer to default extension (no dot) +// wParam = not used +// return = not used +#define CDM_SETDEFEXT (CDM_FIRST + 0x0006) +#define CommDlg_OpenSave_SetDefExt(_hdlg, _pszext) \ + (void)SNDMSG(_hdlg, CDM_SETDEFEXT, 0, (LPARAM)(LPSTR)_pszext) +#endif /* WINVER >= 0x0400 */ + +typedef struct tagCHOOSECOLORA { + DWORD lStructSize; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} CHOOSECOLORA, *LPCHOOSECOLORA; +typedef struct tagCHOOSECOLORW { + DWORD lStructSize; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} CHOOSECOLORW, *LPCHOOSECOLORW; +#ifdef UNICODE +typedef CHOOSECOLORW CHOOSECOLOR; +typedef LPCHOOSECOLORW LPCHOOSECOLOR; +#else +typedef CHOOSECOLORA CHOOSECOLOR; +typedef LPCHOOSECOLORA LPCHOOSECOLOR; +#endif // UNICODE + +BOOL APIENTRY ChooseColorA(LPCHOOSECOLORA); +BOOL APIENTRY ChooseColorW(LPCHOOSECOLORW); +#ifdef UNICODE +#define ChooseColor ChooseColorW +#else +#define ChooseColor ChooseColorA +#endif // !UNICODE + +#define CC_RGBINIT 0x00000001 +#define CC_FULLOPEN 0x00000002 +#define CC_PREVENTFULLOPEN 0x00000004 +#define CC_SHOWHELP 0x00000008 +#define CC_ENABLEHOOK 0x00000010 +#define CC_ENABLETEMPLATE 0x00000020 +#define CC_ENABLETEMPLATEHANDLE 0x00000040 +#if(WINVER >= 0x0400) +#define CC_SOLIDCOLOR 0x00000080 +#define CC_ANYCOLOR 0x00000100 +#endif /* WINVER >= 0x0400 */ + +typedef UINT (APIENTRY *LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +typedef struct tagFINDREPLACEA { + DWORD lStructSize; // size of this struct 0x20 + HWND hwndOwner; // handle to owner's window + HINSTANCE hInstance; // instance handle of.EXE that + // contains cust. dlg. template + DWORD Flags; // one or more of the FR_?? + LPSTR lpstrFindWhat; // ptr. to search string + LPSTR lpstrReplaceWith; // ptr. to replace string + WORD wFindWhatLen; // size of find buffer + WORD wReplaceWithLen; // size of replace buffer + LPARAM lCustData; // data passed to hook fn. + LPFRHOOKPROC lpfnHook; // ptr. to hook fn. or NULL + LPCSTR lpTemplateName; // custom template name +} FINDREPLACEA, *LPFINDREPLACEA; +typedef struct tagFINDREPLACEW { + DWORD lStructSize; // size of this struct 0x20 + HWND hwndOwner; // handle to owner's window + HINSTANCE hInstance; // instance handle of.EXE that + // contains cust. dlg. template + DWORD Flags; // one or more of the FR_?? + LPWSTR lpstrFindWhat; // ptr. to search string + LPWSTR lpstrReplaceWith; // ptr. to replace string + WORD wFindWhatLen; // size of find buffer + WORD wReplaceWithLen; // size of replace buffer + LPARAM lCustData; // data passed to hook fn. + LPFRHOOKPROC lpfnHook; // ptr. to hook fn. or NULL + LPCWSTR lpTemplateName; // custom template name +} FINDREPLACEW, *LPFINDREPLACEW; +#ifdef UNICODE +typedef FINDREPLACEW FINDREPLACE; +typedef LPFINDREPLACEW LPFINDREPLACE; +#else +typedef FINDREPLACEA FINDREPLACE; +typedef LPFINDREPLACEA LPFINDREPLACE; +#endif // UNICODE + +#define FR_DOWN 0x00000001 +#define FR_WHOLEWORD 0x00000002 +#define FR_MATCHCASE 0x00000004 +#define FR_FINDNEXT 0x00000008 +#define FR_REPLACE 0x00000010 +#define FR_REPLACEALL 0x00000020 +#define FR_DIALOGTERM 0x00000040 +#define FR_SHOWHELP 0x00000080 +#define FR_ENABLEHOOK 0x00000100 +#define FR_ENABLETEMPLATE 0x00000200 +#define FR_NOUPDOWN 0x00000400 +#define FR_NOMATCHCASE 0x00000800 +#define FR_NOWHOLEWORD 0x00001000 +#define FR_ENABLETEMPLATEHANDLE 0x00002000 +#define FR_HIDEUPDOWN 0x00004000 +#define FR_HIDEMATCHCASE 0x00008000 +#define FR_HIDEWHOLEWORD 0x00010000 + +HWND APIENTRY FindTextA(LPFINDREPLACEA); +HWND APIENTRY FindTextW(LPFINDREPLACEW); +#ifdef UNICODE +#define FindText FindTextW +#else +#define FindText FindTextA +#endif // !UNICODE +HWND APIENTRY ReplaceTextA(LPFINDREPLACEA); +HWND APIENTRY ReplaceTextW(LPFINDREPLACEW); +#ifdef UNICODE +#define ReplaceText ReplaceTextW +#else +#define ReplaceText ReplaceTextA +#endif // !UNICODE + +typedef UINT (APIENTRY *LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +typedef struct tagCHOOSEFONTA { + DWORD lStructSize; + HWND hwndOwner; // caller's window handle + HDC hDC; // printer DC/IC or NULL + LPLOGFONTA lpLogFont; // ptr. to a LOGFONT struct + INT iPointSize; // 10 * size in points of selected font + DWORD Flags; // enum. type flags + COLORREF rgbColors; // returned text color + LPARAM lCustData; // data passed to hook fn. + LPCFHOOKPROC lpfnHook; // ptr. to hook function + LPCSTR lpTemplateName; // custom template name + HINSTANCE hInstance; // instance handle of.EXE that + // contains cust. dlg. template + LPSTR lpszStyle; // return the style field here + // must be LF_FACESIZE or bigger + WORD nFontType; // same value reported to the EnumFonts + // call back with the extra FONTTYPE_ + // bits added + WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; // minimum pt size allowed & + INT nSizeMax; // max pt size allowed if + // CF_LIMITSIZE is used +} CHOOSEFONTA, *LPCHOOSEFONTA; +typedef struct tagCHOOSEFONTW { + DWORD lStructSize; + HWND hwndOwner; // caller's window handle + HDC hDC; // printer DC/IC or NULL + LPLOGFONTW lpLogFont; // ptr. to a LOGFONT struct + INT iPointSize; // 10 * size in points of selected font + DWORD Flags; // enum. type flags + COLORREF rgbColors; // returned text color + LPARAM lCustData; // data passed to hook fn. + LPCFHOOKPROC lpfnHook; // ptr. to hook function + LPCWSTR lpTemplateName; // custom template name + HINSTANCE hInstance; // instance handle of.EXE that + // contains cust. dlg. template + LPWSTR lpszStyle; // return the style field here + // must be LF_FACESIZE or bigger + WORD nFontType; // same value reported to the EnumFonts + // call back with the extra FONTTYPE_ + // bits added + WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; // minimum pt size allowed & + INT nSizeMax; // max pt size allowed if + // CF_LIMITSIZE is used +} CHOOSEFONTW, *LPCHOOSEFONTW; +#ifdef UNICODE +typedef CHOOSEFONTW CHOOSEFONT; +typedef LPCHOOSEFONTW LPCHOOSEFONT; +#else +typedef CHOOSEFONTA CHOOSEFONT; +typedef LPCHOOSEFONTA LPCHOOSEFONT; +#endif // UNICODE + +BOOL APIENTRY ChooseFontA(LPCHOOSEFONTA); +BOOL APIENTRY ChooseFontW(LPCHOOSEFONTW); +#ifdef UNICODE +#define ChooseFont ChooseFontW +#else +#define ChooseFont ChooseFontA +#endif // !UNICODE + +#define CF_SCREENFONTS 0x00000001 +#define CF_PRINTERFONTS 0x00000002 +#define CF_BOTH (CF_SCREENFONTS | CF_PRINTERFONTS) +#define CF_SHOWHELP 0x00000004L +#define CF_ENABLEHOOK 0x00000008L +#define CF_ENABLETEMPLATE 0x00000010L +#define CF_ENABLETEMPLATEHANDLE 0x00000020L +#define CF_INITTOLOGFONTSTRUCT 0x00000040L +#define CF_USESTYLE 0x00000080L +#define CF_EFFECTS 0x00000100L +#define CF_APPLY 0x00000200L +#define CF_ANSIONLY 0x00000400L +#if(WINVER >= 0x0400) +#define CF_SCRIPTSONLY CF_ANSIONLY +#endif /* WINVER >= 0x0400 */ +#define CF_NOVECTORFONTS 0x00000800L +#define CF_NOOEMFONTS CF_NOVECTORFONTS +#define CF_NOSIMULATIONS 0x00001000L +#define CF_LIMITSIZE 0x00002000L +#define CF_FIXEDPITCHONLY 0x00004000L +#define CF_WYSIWYG 0x00008000L // must also have CF_SCREENFONTS & CF_PRINTERFONTS +#define CF_FORCEFONTEXIST 0x00010000L +#define CF_SCALABLEONLY 0x00020000L +#define CF_TTONLY 0x00040000L +#define CF_NOFACESEL 0x00080000L +#define CF_NOSTYLESEL 0x00100000L +#define CF_NOSIZESEL 0x00200000L +#if(WINVER >= 0x0400) +#define CF_SELECTSCRIPT 0x00400000L +#define CF_NOSCRIPTSEL 0x00800000L +#define CF_NOVERTFONTS 0x01000000L +#endif /* WINVER >= 0x0400 */ + +// these are extra nFontType bits that are added to what is returned to the +// EnumFonts callback routine + +#define SIMULATED_FONTTYPE 0x8000 +#define PRINTER_FONTTYPE 0x4000 +#define SCREEN_FONTTYPE 0x2000 +#define BOLD_FONTTYPE 0x0100 +#define ITALIC_FONTTYPE 0x0200 +#define REGULAR_FONTTYPE 0x0400 + +#define WM_CHOOSEFONT_GETLOGFONT (WM_USER + 1) + +// strings used to obtain unique window message for communication +// between dialog and caller + +#define LBSELCHSTRINGA "commdlg_LBSelChangedNotify" +#define SHAREVISTRINGA "commdlg_ShareViolation" +#define FILEOKSTRINGA "commdlg_FileNameOK" +#define COLOROKSTRINGA "commdlg_ColorOK" +#define SETRGBSTRINGA "commdlg_SetRGBColor" +#define HELPMSGSTRINGA "commdlg_help" +#define FINDMSGSTRINGA "commdlg_FindReplace" + +#define LBSELCHSTRINGW L"commdlg_LBSelChangedNotify" +#define SHAREVISTRINGW L"commdlg_ShareViolation" +#define FILEOKSTRINGW L"commdlg_FileNameOK" +#define COLOROKSTRINGW L"commdlg_ColorOK" +#define SETRGBSTRINGW L"commdlg_SetRGBColor" +#define HELPMSGSTRINGW L"commdlg_help" +#define FINDMSGSTRINGW L"commdlg_FindReplace" + +#ifdef UNICODE +#define LBSELCHSTRING LBSELCHSTRINGW +#define SHAREVISTRING SHAREVISTRINGW +#define FILEOKSTRING FILEOKSTRINGW +#define COLOROKSTRING COLOROKSTRINGW +#define SETRGBSTRING SETRGBSTRINGW +#define HELPMSGSTRING HELPMSGSTRINGW +#define FINDMSGSTRING FINDMSGSTRINGW +#else +#define LBSELCHSTRING LBSELCHSTRINGA +#define SHAREVISTRING SHAREVISTRINGA +#define FILEOKSTRING FILEOKSTRINGA +#define COLOROKSTRING COLOROKSTRINGA +#define SETRGBSTRING SETRGBSTRINGA +#define HELPMSGSTRING HELPMSGSTRINGA +#define FINDMSGSTRING FINDMSGSTRINGA +#endif + +// HIWORD values for lParam of commdlg_LBSelChangeNotify message +#define CD_LBSELNOITEMS -1 +#define CD_LBSELCHANGE 0 +#define CD_LBSELSUB 1 +#define CD_LBSELADD 2 + +typedef UINT (APIENTRY *LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM); +typedef UINT (APIENTRY *LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +typedef struct tagPDA { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + WORD nFromPage; + WORD nToPage; + WORD nMinPage; + WORD nMaxPage; + WORD nCopies; + HINSTANCE hInstance; + LPARAM lCustData; + LPPRINTHOOKPROC lpfnPrintHook; + LPSETUPHOOKPROC lpfnSetupHook; + LPCSTR lpPrintTemplateName; + LPCSTR lpSetupTemplateName; + HGLOBAL hPrintTemplate; + HGLOBAL hSetupTemplate; +} PRINTDLGA, *LPPRINTDLGA; +typedef struct tagPDW { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + WORD nFromPage; + WORD nToPage; + WORD nMinPage; + WORD nMaxPage; + WORD nCopies; + HINSTANCE hInstance; + LPARAM lCustData; + LPPRINTHOOKPROC lpfnPrintHook; + LPSETUPHOOKPROC lpfnSetupHook; + LPCWSTR lpPrintTemplateName; + LPCWSTR lpSetupTemplateName; + HGLOBAL hPrintTemplate; + HGLOBAL hSetupTemplate; +} PRINTDLGW, *LPPRINTDLGW; +#ifdef UNICODE +typedef PRINTDLGW PRINTDLG; +typedef LPPRINTDLGW LPPRINTDLG; +#else +typedef PRINTDLGA PRINTDLG; +typedef LPPRINTDLGA LPPRINTDLG; +#endif // UNICODE + +BOOL APIENTRY PrintDlgA(LPPRINTDLGA); +BOOL APIENTRY PrintDlgW(LPPRINTDLGW); +#ifdef UNICODE +#define PrintDlg PrintDlgW +#else +#define PrintDlg PrintDlgA +#endif // !UNICODE + +#define PD_ALLPAGES 0x00000000 +#define PD_SELECTION 0x00000001 +#define PD_PAGENUMS 0x00000002 +#define PD_NOSELECTION 0x00000004 +#define PD_NOPAGENUMS 0x00000008 +#define PD_COLLATE 0x00000010 +#define PD_PRINTTOFILE 0x00000020 +#define PD_PRINTSETUP 0x00000040 +#define PD_NOWARNING 0x00000080 +#define PD_RETURNDC 0x00000100 +#define PD_RETURNIC 0x00000200 +#define PD_RETURNDEFAULT 0x00000400 +#define PD_SHOWHELP 0x00000800 +#define PD_ENABLEPRINTHOOK 0x00001000 +#define PD_ENABLESETUPHOOK 0x00002000 +#define PD_ENABLEPRINTTEMPLATE 0x00004000 +#define PD_ENABLESETUPTEMPLATE 0x00008000 +#define PD_ENABLEPRINTTEMPLATEHANDLE 0x00010000 +#define PD_ENABLESETUPTEMPLATEHANDLE 0x00020000 +#define PD_USEDEVMODECOPIES 0x00040000 +#define PD_USEDEVMODECOPIESANDCOLLATE 0x00040000 +#define PD_DISABLEPRINTTOFILE 0x00080000 +#define PD_HIDEPRINTTOFILE 0x00100000 +#define PD_NONETWORKBUTTON 0x00200000 + +typedef struct tagDEVNAMES { + WORD wDriverOffset; + WORD wDeviceOffset; + WORD wOutputOffset; + WORD wDefault; +} DEVNAMES; + +typedef DEVNAMES * LPDEVNAMES; + +#define DN_DEFAULTPRN 0x0001 + + +DWORD APIENTRY CommDlgExtendedError(VOID); + +#if(WINVER >= 0x0400) +#define WM_PSD_PAGESETUPDLG (WM_USER ) +#define WM_PSD_FULLPAGERECT (WM_USER+1) +#define WM_PSD_MINMARGINRECT (WM_USER+2) +#define WM_PSD_MARGINRECT (WM_USER+3) +#define WM_PSD_GREEKTEXTRECT (WM_USER+4) +#define WM_PSD_ENVSTAMPRECT (WM_USER+5) +#define WM_PSD_YAFULLPAGERECT (WM_USER+6) + +typedef UINT (APIENTRY* LPPAGEPAINTHOOK)( HWND, UINT, WPARAM, LPARAM ); +typedef UINT (APIENTRY* LPPAGESETUPHOOK)( HWND, UINT, WPARAM, LPARAM ); + +typedef struct tagPSDA +{ + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + DWORD Flags; + POINT ptPaperSize; + RECT rtMinMargin; + RECT rtMargin; + HINSTANCE hInstance; + LPARAM lCustData; + LPPAGESETUPHOOK lpfnPageSetupHook; + LPPAGEPAINTHOOK lpfnPagePaintHook; + LPCSTR lpPageSetupTemplateName; + HGLOBAL hPageSetupTemplate; +} PAGESETUPDLGA, * LPPAGESETUPDLGA; +typedef struct tagPSDW +{ + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + DWORD Flags; + POINT ptPaperSize; + RECT rtMinMargin; + RECT rtMargin; + HINSTANCE hInstance; + LPARAM lCustData; + LPPAGESETUPHOOK lpfnPageSetupHook; + LPPAGEPAINTHOOK lpfnPagePaintHook; + LPCWSTR lpPageSetupTemplateName; + HGLOBAL hPageSetupTemplate; +} PAGESETUPDLGW, * LPPAGESETUPDLGW; +#ifdef UNICODE +typedef PAGESETUPDLGW PAGESETUPDLG; +typedef LPPAGESETUPDLGW LPPAGESETUPDLG; +#else +typedef PAGESETUPDLGA PAGESETUPDLG; +typedef LPPAGESETUPDLGA LPPAGESETUPDLG; +#endif // UNICODE + +BOOL APIENTRY PageSetupDlgA( LPPAGESETUPDLGA ); +BOOL APIENTRY PageSetupDlgW( LPPAGESETUPDLGW ); +#ifdef UNICODE +#define PageSetupDlg PageSetupDlgW +#else +#define PageSetupDlg PageSetupDlgA +#endif // !UNICODE + +#define PSD_DEFAULTMINMARGINS 0x00000000 // default (printer's) +#define PSD_INWININIINTLMEASURE 0x00000000 // 1st of 4 possible + +#define PSD_MINMARGINS 0x00000001 // use caller's +#define PSD_MARGINS 0x00000002 // use caller's +#define PSD_INTHOUSANDTHSOFINCHES 0x00000004 // 2nd of 4 possible +#define PSD_INHUNDREDTHSOFMILLIMETERS 0x00000008 // 3rd of 4 possible +#define PSD_DISABLEMARGINS 0x00000010 +#define PSD_DISABLEPRINTER 0x00000020 +#define PSD_NOWARNING 0x00000080 // must be same as PD_* +#define PSD_DISABLEORIENTATION 0x00000100 +#define PSD_RETURNDEFAULT 0x00000400 // must be same as PD_* +#define PSD_DISABLEPAPER 0x00000200 +#define PSD_SHOWHELP 0x00000800 // must be same as PD_* +#define PSD_ENABLEPAGESETUPHOOK 0x00002000 // must be same as PD_* +#define PSD_ENABLEPAGESETUPTEMPLATE 0x00008000 // must be same as PD_* +#define PSD_ENABLEPAGESETUPTEMPLATEHANDLE 0x00020000 // must be same as PD_* +#define PSD_ENABLEPAGEPAINTHOOK 0x00040000 +#define PSD_DISABLEPAGEPAINTING 0x00080000 +#define PSD_NONETWORKBUTTON 0x00200000 // must be same as PD_* +#endif /* WINVER >= 0x0400 */ + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#include <poppack.h> +#endif /* !_INC_COMMDLG */ |