Mercurial > games > semicongine
diff fuhtark_test/include/winapi/commdlg.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/commdlg.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,863 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef _INC_COMMDLG +#define _INC_COMMDLG + +#ifdef DEFINE_GUID +DEFINE_GUID(IID_IPrintDialogCallback,0x5852a2c3,0x6530,0x11d1,0xb6,0xa3,0x0,0x0,0xf8,0x75,0x7b,0xf9); +DEFINE_GUID(IID_IPrintDialogServices,0x509aaeda,0x5639,0x11d1,0xb6,0xa1,0x0,0x0,0xf8,0x75,0x7b,0xf9); +#endif + +#ifndef GUID_DEFS_ONLY +#include <prsht.h> +#if !defined(_WIN64) +#include <pshpack1.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef WINCOMMDLGAPI +#ifndef _COMDLG32_ +#define WINCOMMDLGAPI DECLSPEC_IMPORT +#else +#define WINCOMMDLGAPI +#endif +#endif + +#ifndef SNDMSG +#ifdef __cplusplus +#define SNDMSG ::SendMessage +#else +#define SNDMSG SendMessage +#endif +#endif + + typedef UINT_PTR (CALLBACK *LPOFNHOOKPROC) (HWND,UINT,WPARAM,LPARAM); + +#ifndef CDSIZEOF_STRUCT +#define CDSIZEOF_STRUCT(structname,member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) +#endif + + typedef struct tagOFN_NT4A { + 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; + } OPENFILENAME_NT4A,*LPOPENFILENAME_NT4A; + typedef struct tagOFN_NT4W { + 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; + } OPENFILENAME_NT4W,*LPOPENFILENAME_NT4W; +#ifdef UNICODE + typedef OPENFILENAME_NT4W OPENFILENAME_NT4; + typedef LPOPENFILENAME_NT4W LPOPENFILENAME_NT4; +#else + typedef OPENFILENAME_NT4A OPENFILENAME_NT4; + typedef LPOPENFILENAME_NT4A LPOPENFILENAME_NT4; +#endif + + 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; + void *pvReserved; + DWORD dwReserved; + DWORD FlagsEx; + } 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; + void *pvReserved; + DWORD dwReserved; + DWORD FlagsEx; + } OPENFILENAMEW,*LPOPENFILENAMEW; +#ifdef UNICODE + typedef OPENFILENAMEW OPENFILENAME; + typedef LPOPENFILENAMEW LPOPENFILENAME; +#else + typedef OPENFILENAMEA OPENFILENAME; + typedef LPOPENFILENAMEA LPOPENFILENAME; +#endif + +#define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTemplateName) +#define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTemplateName) +#ifdef UNICODE +#define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400W +#else +#define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400A +#endif + + WINCOMMDLGAPI WINBOOL WINAPI GetOpenFileNameA(LPOPENFILENAMEA); + WINCOMMDLGAPI WINBOOL WINAPI GetOpenFileNameW(LPOPENFILENAMEW); +#ifdef UNICODE +#define GetOpenFileName GetOpenFileNameW +#else +#define GetOpenFileName GetOpenFileNameA +#endif + WINCOMMDLGAPI WINBOOL WINAPI GetSaveFileNameA(LPOPENFILENAMEA); + WINCOMMDLGAPI WINBOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW); +#ifdef UNICODE +#define GetSaveFileName GetSaveFileNameW +#else +#define GetSaveFileName GetSaveFileNameA +#endif + + WINCOMMDLGAPI short WINAPI GetFileTitleA(LPCSTR,LPSTR,WORD); + WINCOMMDLGAPI short WINAPI GetFileTitleW(LPCWSTR,LPWSTR,WORD); +#ifdef UNICODE +#define GetFileTitle GetFileTitleW +#else +#define GetFileTitle GetFileTitleA +#endif + +#define OFN_READONLY 0x1 +#define OFN_OVERWRITEPROMPT 0x2 +#define OFN_HIDEREADONLY 0x4 +#define OFN_NOCHANGEDIR 0x8 +#define OFN_SHOWHELP 0x10 +#define OFN_ENABLEHOOK 0x20 +#define OFN_ENABLETEMPLATE 0x40 +#define OFN_ENABLETEMPLATEHANDLE 0x80 +#define OFN_NOVALIDATE 0x100 +#define OFN_ALLOWMULTISELECT 0x200 +#define OFN_EXTENSIONDIFFERENT 0x400 +#define OFN_PATHMUSTEXIST 0x800 +#define OFN_FILEMUSTEXIST 0x1000 +#define OFN_CREATEPROMPT 0x2000 +#define OFN_SHAREAWARE 0x4000 +#define OFN_NOREADONLYRETURN 0x8000 +#define OFN_NOTESTFILECREATE 0x10000 +#define OFN_NONETWORKBUTTON 0x20000 +#define OFN_NOLONGNAMES 0x40000 +#define OFN_EXPLORER 0x80000 +#define OFN_NODEREFERENCELINKS 0x100000 +#define OFN_LONGNAMES 0x200000 +#define OFN_ENABLEINCLUDENOTIFY 0x400000 +#define OFN_ENABLESIZING 0x800000 +#define OFN_DONTADDTORECENT 0x2000000 +#define OFN_FORCESHOWHIDDEN 0x10000000 +#define OFN_EX_NOPLACESBAR 0x1 +#define OFN_SHAREFALLTHROUGH 2 +#define OFN_SHARENOWARN 1 +#define OFN_SHAREWARN 0 + + typedef UINT_PTR (CALLBACK *LPCCHOOKPROC) (HWND,UINT,WPARAM,LPARAM); + + typedef struct _OFNOTIFYA { + NMHDR hdr; + LPOPENFILENAMEA lpOFN; + LPSTR pszFile; + } OFNOTIFYA,*LPOFNOTIFYA; + + typedef struct _OFNOTIFYW { + NMHDR hdr; + LPOPENFILENAMEW lpOFN; + LPWSTR pszFile; + } OFNOTIFYW,*LPOFNOTIFYW; +#ifdef UNICODE + typedef OFNOTIFYW OFNOTIFY; + typedef LPOFNOTIFYW LPOFNOTIFY; +#else + typedef OFNOTIFYA OFNOTIFY; + typedef LPOFNOTIFYA LPOFNOTIFY; +#endif + + typedef struct _OFNOTIFYEXA { + NMHDR hdr; + LPOPENFILENAMEA lpOFN; + LPVOID psf; + LPVOID pidl; + } OFNOTIFYEXA,*LPOFNOTIFYEXA; + + typedef struct _OFNOTIFYEXW { + NMHDR hdr; + LPOPENFILENAMEW lpOFN; + LPVOID psf; + LPVOID pidl; + } OFNOTIFYEXW,*LPOFNOTIFYEXW; +#ifdef UNICODE + typedef OFNOTIFYEXW OFNOTIFYEX; + typedef LPOFNOTIFYEXW LPOFNOTIFYEX; +#else + typedef OFNOTIFYEXA OFNOTIFYEX; + typedef LPOFNOTIFYEXA LPOFNOTIFYEX; +#endif + +#define CDN_FIRST (0U-601U) +#define CDN_LAST (0U-699U) + +#define CDN_INITDONE (CDN_FIRST) +#define CDN_SELCHANGE (CDN_FIRST - 1) +#define CDN_FOLDERCHANGE (CDN_FIRST - 2) +#define CDN_SHAREVIOLATION (CDN_FIRST - 3) +#define CDN_HELP (CDN_FIRST - 4) +#define CDN_FILEOK (CDN_FIRST - 5) +#define CDN_TYPECHANGE (CDN_FIRST - 6) +#define CDN_INCLUDEITEM (CDN_FIRST - 7) + +#define CDM_FIRST (WM_USER + 100) +#define CDM_LAST (WM_USER + 200) + +#define CDM_GETSPEC (CDM_FIRST) +#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 + +#define CDM_GETFILEPATH (CDM_FIRST + 1) +#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 + +#define CDM_GETFOLDERPATH (CDM_FIRST + 2) +#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 + +#define CDM_GETFOLDERIDLIST (CDM_FIRST + 3) +#define CommDlg_OpenSave_GetFolderIDList(_hdlg,_pidl,_cbmax) (int)SNDMSG(_hdlg,CDM_GETFOLDERIDLIST,(WPARAM)_cbmax,(LPARAM)(LPVOID)_pidl) +#define CDM_SETCONTROLTEXT (CDM_FIRST + 4) +#define CommDlg_OpenSave_SetControlText(_hdlg,_id,_text) (void)SNDMSG(_hdlg,CDM_SETCONTROLTEXT,(WPARAM)_id,(LPARAM)(LPSTR)_text) +#define CDM_HIDECONTROL (CDM_FIRST + 5) +#define CommDlg_OpenSave_HideControl(_hdlg,_id) (void)SNDMSG(_hdlg,CDM_HIDECONTROL,(WPARAM)_id,0) +#define CDM_SETDEFEXT (CDM_FIRST + 6) +#define CommDlg_OpenSave_SetDefExt(_hdlg,_pszext) (void)SNDMSG(_hdlg,CDM_SETDEFEXT,0,(LPARAM)(LPSTR)_pszext) + + 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 + + WINCOMMDLGAPI WINBOOL WINAPI ChooseColorA(LPCHOOSECOLORA); + WINCOMMDLGAPI WINBOOL WINAPI ChooseColorW(LPCHOOSECOLORW); +#ifdef UNICODE +#define ChooseColor ChooseColorW +#else +#define ChooseColor ChooseColorA +#endif + +#define CC_RGBINIT 0x1 +#define CC_FULLOPEN 0x2 +#define CC_PREVENTFULLOPEN 0x4 +#define CC_SHOWHELP 0x8 +#define CC_ENABLEHOOK 0x10 +#define CC_ENABLETEMPLATE 0x20 +#define CC_ENABLETEMPLATEHANDLE 0x40 +#define CC_SOLIDCOLOR 0x80 +#define CC_ANYCOLOR 0x100 + + typedef UINT_PTR (CALLBACK *LPFRHOOKPROC) (HWND,UINT,WPARAM,LPARAM); + + typedef struct tagFINDREPLACEA { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + DWORD Flags; + LPSTR lpstrFindWhat; + LPSTR lpstrReplaceWith; + WORD wFindWhatLen; + WORD wReplaceWithLen; + LPARAM lCustData; + LPFRHOOKPROC lpfnHook; + LPCSTR lpTemplateName; + } FINDREPLACEA,*LPFINDREPLACEA; + + typedef struct tagFINDREPLACEW { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + DWORD Flags; + LPWSTR lpstrFindWhat; + LPWSTR lpstrReplaceWith; + WORD wFindWhatLen; + WORD wReplaceWithLen; + LPARAM lCustData; + LPFRHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; + } FINDREPLACEW,*LPFINDREPLACEW; +#ifdef UNICODE + typedef FINDREPLACEW FINDREPLACE; + typedef LPFINDREPLACEW LPFINDREPLACE; +#else + typedef FINDREPLACEA FINDREPLACE; + typedef LPFINDREPLACEA LPFINDREPLACE; +#endif + +#define FR_DOWN 0x1 +#define FR_WHOLEWORD 0x2 +#define FR_MATCHCASE 0x4 +#define FR_FINDNEXT 0x8 +#define FR_REPLACE 0x10 +#define FR_REPLACEALL 0x20 +#define FR_DIALOGTERM 0x40 +#define FR_SHOWHELP 0x80 +#define FR_ENABLEHOOK 0x100 +#define FR_ENABLETEMPLATE 0x200 +#define FR_NOUPDOWN 0x400 +#define FR_NOMATCHCASE 0x800 +#define FR_NOWHOLEWORD 0x1000 +#define FR_ENABLETEMPLATEHANDLE 0x2000 +#define FR_HIDEUPDOWN 0x4000 +#define FR_HIDEMATCHCASE 0x8000 +#define FR_HIDEWHOLEWORD 0x10000 +#define FR_RAW 0x20000 +#define FR_MATCHDIAC 0x20000000 +#define FR_MATCHKASHIDA 0x40000000 +#define FR_MATCHALEFHAMZA 0x80000000 + + WINCOMMDLGAPI HWND WINAPI FindTextA(LPFINDREPLACEA); + WINCOMMDLGAPI HWND WINAPI FindTextW(LPFINDREPLACEW); +#ifdef UNICODE +#define FindText FindTextW +#else +#define FindText FindTextA +#endif + WINCOMMDLGAPI HWND WINAPI ReplaceTextA(LPFINDREPLACEA); + WINCOMMDLGAPI HWND WINAPI ReplaceTextW(LPFINDREPLACEW); +#ifdef UNICODE +#define ReplaceText ReplaceTextW +#else +#define ReplaceText ReplaceTextA +#endif + + typedef UINT_PTR (CALLBACK *LPCFHOOKPROC) (HWND,UINT,WPARAM,LPARAM); + + typedef struct tagCHOOSEFONTA { + DWORD lStructSize; + HWND hwndOwner; + HDC hDC; + LPLOGFONTA lpLogFont; + INT iPointSize; + DWORD Flags; + COLORREF rgbColors; + LPARAM lCustData; + LPCFHOOKPROC lpfnHook; + LPCSTR lpTemplateName; + HINSTANCE hInstance; + LPSTR lpszStyle; + WORD nFontType; + WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; + INT nSizeMax; + } CHOOSEFONTA,*LPCHOOSEFONTA; + + typedef struct tagCHOOSEFONTW { + DWORD lStructSize; + HWND hwndOwner; + HDC hDC; + LPLOGFONTW lpLogFont; + INT iPointSize; + DWORD Flags; + COLORREF rgbColors; + LPARAM lCustData; + LPCFHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; + HINSTANCE hInstance; + LPWSTR lpszStyle; + WORD nFontType; + WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; + INT nSizeMax; + } CHOOSEFONTW,*LPCHOOSEFONTW; +#ifdef UNICODE + typedef CHOOSEFONTW CHOOSEFONT; + typedef LPCHOOSEFONTW LPCHOOSEFONT; +#else + typedef CHOOSEFONTA CHOOSEFONT; + typedef LPCHOOSEFONTA LPCHOOSEFONT; +#endif + + WINCOMMDLGAPI WINBOOL WINAPI ChooseFontA(LPCHOOSEFONTA); + WINCOMMDLGAPI WINBOOL WINAPI ChooseFontW(LPCHOOSEFONTW); +#ifdef UNICODE +#define ChooseFont ChooseFontW +#else +#define ChooseFont ChooseFontA +#endif + +#define CF_SCREENFONTS 0x1 +#define CF_PRINTERFONTS 0x2 +#define CF_BOTH (CF_SCREENFONTS | CF_PRINTERFONTS) +#define CF_SHOWHELP 0x4L +#define CF_ENABLEHOOK 0x8L +#define CF_ENABLETEMPLATE 0x10L +#define CF_ENABLETEMPLATEHANDLE 0x20L +#define CF_INITTOLOGFONTSTRUCT 0x40L +#define CF_USESTYLE 0x80L +#define CF_EFFECTS 0x100L +#define CF_APPLY 0x200L +#define CF_ANSIONLY 0x400L +#define CF_SCRIPTSONLY CF_ANSIONLY +#define CF_NOVECTORFONTS 0x800L +#define CF_NOOEMFONTS CF_NOVECTORFONTS +#define CF_NOSIMULATIONS 0x1000L +#define CF_LIMITSIZE 0x2000L +#define CF_FIXEDPITCHONLY 0x4000L +#define CF_WYSIWYG 0x8000L +#define CF_FORCEFONTEXIST 0x10000L +#define CF_SCALABLEONLY 0x20000L +#define CF_TTONLY 0x40000L +#define CF_NOFACESEL 0x80000L +#define CF_NOSTYLESEL 0x100000L +#define CF_NOSIZESEL 0x200000L +#define CF_SELECTSCRIPT 0x400000L +#define CF_NOSCRIPTSEL 0x800000L +#define CF_NOVERTFONTS 0x1000000L + +#define SIMULATED_FONTTYPE 0x8000 +#define PRINTER_FONTTYPE 0x4000 +#define SCREEN_FONTTYPE 0x2000 +#define BOLD_FONTTYPE 0x100 +#define ITALIC_FONTTYPE 0x200 +#define REGULAR_FONTTYPE 0x400 + +#ifdef WINNT +#define PS_OPENTYPE_FONTTYPE 0x10000 +#define TT_OPENTYPE_FONTTYPE 0x20000 +#define TYPE1_FONTTYPE 0x40000 +#endif + +#define WM_CHOOSEFONT_GETLOGFONT (WM_USER + 1) +#define WM_CHOOSEFONT_SETLOGFONT (WM_USER + 101) +#define WM_CHOOSEFONT_SETFLAGS (WM_USER + 102) + +#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 + +#define CD_LBSELNOITEMS -1 +#define CD_LBSELCHANGE 0 +#define CD_LBSELSUB 1 +#define CD_LBSELADD 2 + + typedef UINT_PTR (CALLBACK *LPPRINTHOOKPROC) (HWND,UINT,WPARAM,LPARAM); + typedef UINT_PTR (CALLBACK *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 + + WINCOMMDLGAPI WINBOOL WINAPI PrintDlgA(LPPRINTDLGA); + WINCOMMDLGAPI WINBOOL WINAPI PrintDlgW(LPPRINTDLGW); +#ifdef UNICODE +#define PrintDlg PrintDlgW +#else +#define PrintDlg PrintDlgA +#endif + +#ifdef STDMETHOD +#undef INTERFACE +#define INTERFACE IPrintDialogCallback + + DECLARE_INTERFACE_(IPrintDialogCallback,IUnknown) { + STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + STDMETHOD(InitDone) (THIS) PURE; + STDMETHOD(SelectionChange) (THIS) PURE; + STDMETHOD(HandleMessage) (THIS_ HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pResult) PURE; + }; + +#undef INTERFACE +#define INTERFACE IPrintDialogServices + DECLARE_INTERFACE_(IPrintDialogServices,IUnknown) { + STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + STDMETHOD(GetCurrentDevMode) (THIS_ LPDEVMODE pDevMode,UINT *pcbSize) PURE; + STDMETHOD(GetCurrentPrinterName) (THIS_ LPTSTR pPrinterName,UINT *pcchSize) PURE; + STDMETHOD(GetCurrentPortName) (THIS_ LPTSTR pPortName,UINT *pcchSize) PURE; + }; + + typedef struct tagPRINTPAGERANGE { + DWORD nFromPage; + DWORD nToPage; + } PRINTPAGERANGE,*LPPRINTPAGERANGE; + + typedef struct tagPDEXA { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + DWORD Flags2; + DWORD ExclusionFlags; + DWORD nPageRanges; + DWORD nMaxPageRanges; + LPPRINTPAGERANGE lpPageRanges; + DWORD nMinPage; + DWORD nMaxPage; + DWORD nCopies; + HINSTANCE hInstance; + LPCSTR lpPrintTemplateName; + LPUNKNOWN lpCallback; + DWORD nPropertyPages; + HPROPSHEETPAGE *lphPropertyPages; + DWORD nStartPage; + DWORD dwResultAction; + } PRINTDLGEXA,*LPPRINTDLGEXA; + + typedef struct tagPDEXW { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + DWORD Flags2; + DWORD ExclusionFlags; + DWORD nPageRanges; + DWORD nMaxPageRanges; + LPPRINTPAGERANGE lpPageRanges; + DWORD nMinPage; + DWORD nMaxPage; + DWORD nCopies; + HINSTANCE hInstance; + LPCWSTR lpPrintTemplateName; + LPUNKNOWN lpCallback; + DWORD nPropertyPages; + HPROPSHEETPAGE *lphPropertyPages; + DWORD nStartPage; + DWORD dwResultAction; + } PRINTDLGEXW,*LPPRINTDLGEXW; +#ifdef UNICODE + typedef PRINTDLGEXW PRINTDLGEX; + typedef LPPRINTDLGEXW LPPRINTDLGEX; +#else + typedef PRINTDLGEXA PRINTDLGEX; + typedef LPPRINTDLGEXA LPPRINTDLGEX; +#endif + + WINCOMMDLGAPI HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA); + WINCOMMDLGAPI HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW); +#ifdef UNICODE +#define PrintDlgEx PrintDlgExW +#else +#define PrintDlgEx PrintDlgExA +#endif +#endif + +#define PD_ALLPAGES 0x0 +#define PD_SELECTION 0x1 +#define PD_PAGENUMS 0x2 +#define PD_NOSELECTION 0x4 +#define PD_NOPAGENUMS 0x8 +#define PD_COLLATE 0x10 +#define PD_PRINTTOFILE 0x20 +#define PD_PRINTSETUP 0x40 +#define PD_NOWARNING 0x80 +#define PD_RETURNDC 0x100 +#define PD_RETURNIC 0x200 +#define PD_RETURNDEFAULT 0x400 +#define PD_SHOWHELP 0x800 +#define PD_ENABLEPRINTHOOK 0x1000 +#define PD_ENABLESETUPHOOK 0x2000 +#define PD_ENABLEPRINTTEMPLATE 0x4000 +#define PD_ENABLESETUPTEMPLATE 0x8000 +#define PD_ENABLEPRINTTEMPLATEHANDLE 0x10000 +#define PD_ENABLESETUPTEMPLATEHANDLE 0x20000 +#define PD_USEDEVMODECOPIES 0x40000 +#define PD_USEDEVMODECOPIESANDCOLLATE 0x40000 +#define PD_DISABLEPRINTTOFILE 0x80000 +#define PD_HIDEPRINTTOFILE 0x100000 +#define PD_NONETWORKBUTTON 0x200000 +#define PD_CURRENTPAGE 0x400000 +#define PD_NOCURRENTPAGE 0x800000 +#define PD_EXCLUSIONFLAGS 0x1000000 +#define PD_USELARGETEMPLATE 0x10000000 + +#define PD_EXCL_COPIESANDCOLLATE (DM_COPIES | DM_COLLATE) +#define START_PAGE_GENERAL 0xffffffff + +#define PD_RESULT_CANCEL 0 +#define PD_RESULT_PRINT 1 +#define PD_RESULT_APPLY 2 + + typedef struct tagDEVNAMES { + WORD wDriverOffset; + WORD wDeviceOffset; + WORD wOutputOffset; + WORD wDefault; + } DEVNAMES,*LPDEVNAMES; + +#define DN_DEFAULTPRN 0x1 + + WINCOMMDLGAPI DWORD WINAPI CommDlgExtendedError(VOID); + +#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_PTR (CALLBACK *LPPAGEPAINTHOOK)(HWND,UINT,WPARAM,LPARAM); + typedef UINT_PTR (CALLBACK *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 + + WINCOMMDLGAPI WINBOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA); + WINCOMMDLGAPI WINBOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW); +#ifdef UNICODE +#define PageSetupDlg PageSetupDlgW +#else +#define PageSetupDlg PageSetupDlgA +#endif + +#define PSD_DEFAULTMINMARGINS 0x0 +#define PSD_INWININIINTLMEASURE 0x0 +#define PSD_MINMARGINS 0x1 +#define PSD_MARGINS 0x2 +#define PSD_INTHOUSANDTHSOFINCHES 0x4 +#define PSD_INHUNDREDTHSOFMILLIMETERS 0x8 +#define PSD_DISABLEMARGINS 0x10 +#define PSD_DISABLEPRINTER 0x20 +#define PSD_NOWARNING 0x80 +#define PSD_DISABLEORIENTATION 0x100 +#define PSD_RETURNDEFAULT 0x400 +#define PSD_DISABLEPAPER 0x200 +#define PSD_SHOWHELP 0x800 +#define PSD_ENABLEPAGESETUPHOOK 0x2000 +#define PSD_ENABLEPAGESETUPTEMPLATE 0x8000 +#define PSD_ENABLEPAGESETUPTEMPLATEHANDLE 0x20000 +#define PSD_ENABLEPAGEPAINTHOOK 0x40000 +#define PSD_DISABLEPAGEPAINTING 0x80000 +#define PSD_NONETWORKBUTTON 0x200000 + +#ifdef __cplusplus +} +#endif + +#ifndef _WIN64 +#include <poppack.h> +#endif +#endif +#endif
