32#define NONAMELESSUNION
33#define NONAMELESSSTRUCT
52#define UPDOWN_ID 0x270f
53#define MAX_COPIES 9999
144static const WCHAR pd32_collateW[] = {
'P',
'D',
'3',
'2',
'_',
'C',
'O',
'L',
'L',
'A',
'T',
'E', 0 };
145static const WCHAR pd32_nocollateW[] = {
'P',
'D',
'3',
'2',
'_',
'N',
'O',
'C',
'O',
'L',
'L',
'A',
'T',
'E', 0 };
146static const WCHAR pd32_portraitW[] = {
'P',
'D',
'3',
'2',
'_',
'P',
'O',
'R',
'T',
'R',
'A',
'I',
'T', 0 };
147static const WCHAR pd32_landscapeW[] = {
'P',
'D',
'3',
'2',
'_',
'L',
'A',
'N',
'D',
'S',
'C',
'A',
'P',
'E', 0 };
148static const WCHAR printdlg_prop[] = {
'_',
'_',
'W',
'I',
'N',
'E',
'_',
'P',
'R',
'I',
'N',
'T',
'D',
'L',
'G',
'D',
'A',
'T',
'A',0};
149static const WCHAR pagesetupdlg_prop[] = {
'_',
'_',
'W',
'I',
'N',
'E',
'_',
'P',
'A',
'G',
'E',
150 'S',
'E',
'T',
'U',
'P',
'D',
'L',
'G',
'D',
'A',
'T',
'A', 0 };
330 if (!dmW)
return NULL;
335 if (!dmA)
return NULL;
406 for(
i = 0;
i <
num;
i++) {
418 WARN(
"Can't find %s in printer list so trying to find default\n",
424 FIXME(
"Can't find default printer in printer list\n");
440 for(
i = 0;
i <
num;
i++) {
451 WARN(
"Can't find %s in printer list so trying to find default\n",
457 TRACE(
"Can't find default printer in printer list\n");
464static const CHAR cDriverName[] =
"winspool";
465static const WCHAR wDriverName[] =
L"winspool";
477 const char*
DeviceName,
const char* OutputPort)
480 char* pDevNamesSpace;
487 p =
strrchr( DeviceDriverName,
'\\' );
488 if (
p) DeviceDriverName =
p + 1;
508 pTempPtr = pDevNamesSpace +
sizeof(
DEVNAMES);
510 strcpy(pTempPtr, DeviceDriverName);
512 strcpy(pTempPtr, cDriverName);
516 pTempPtr +=
strlen(DeviceDriverName) + 1;
521 strcpy(pTempPtr, OutputPort);
541 p =
wcsrchr( DeviceDriverName,
'\\' );
542 if (
p) DeviceDriverName =
p + 1;
564 lstrcpyW(pTempPtr, DeviceDriverName);
570 pTempPtr +=
lstrlenW(DeviceDriverName) + 1;
603 FIXME(
"No lpdm ptr?\n");
620 if(!translated) nToPage = nFromPage;
622 if (nFromPage < lppd->nMinPage || nFromPage > lppd->
nMaxPage ||
623 nToPage < lppd->nMinPage || nToPage > lppd->
nMaxPage) {
624 WCHAR resourcestr[256];
625 WCHAR resultstr[256];
637 lppd->
Flags &= ~PD_PAGENUMS;
642 lppd->
Flags &= ~PD_SELECTION;
645 static char file[] =
"FILE:";
651 FIXME(
"Collate lppd not yet implemented as output\n");
658 lppd->
Flags &= ~PD_COLLATE;
673 lppd->
Flags &= ~PD_COLLATE;
706 FIXME(
"No lpdm ptr?\n");
723 if(!translated) nToPage = nFromPage;
725 if (nFromPage < lppd->nMinPage || nFromPage > lppd->
nMaxPage ||
726 nToPage < lppd->nMinPage || nToPage > lppd->
nMaxPage) {
727 WCHAR resourcestr[256];
728 WCHAR resultstr[256];
735 resourcestr, 0, 0, resultstr,
749 lppd->
Flags &= ~PD_PAGENUMS;
754 lppd->
Flags &= ~PD_SELECTION;
757 static WCHAR file[] = {
'F',
'I',
'L',
'E',
':',0};
763 FIXME(
"Collate lppd not yet implemented as output\n");
770 lppd->
Flags &= ~PD_COLLATE;
784 lppd->
Flags &= ~PD_COLLATE;
809 WORD oldWord = 0, newWord = 0;
811 int fwCapability_Names;
812 int fwCapability_Words;
814 TRACE(
" Printer: %s, Port: %s, ComboID: %d\n",PrinterName,
PortName,nIDComboBox);
833 if (nIDComboBox ==
cmb2) {
845 fwCapability_Names,
NULL, dm);
846 if (NrOfEntries == 0)
847 WARN(
"no Name Entries found!\n");
848 else if (NrOfEntries < 0)
853 ERR(
"Number of caps is different\n");
861 fwCapability_Words, (
LPSTR)Words, dm);
867 for (
i = 0;
i < NrOfEntries;
i++) {
877 old_Sel = NrOfEntries;
878 for (
i = 0;
i < NrOfEntries;
i++) {
888 if(old_Sel < NrOfEntries)
892 if(nIDComboBox ==
cmb2)
909 const WCHAR* PrinterName,
918 WORD oldWord = 0, newWord = 0;
920 int fwCapability_Names;
921 int fwCapability_Words;
943 if (nIDComboBox ==
cmb2) {
955 fwCapability_Names,
NULL, dm);
956 if (NrOfEntries == 0)
957 WARN(
"no Name Entries found!\n");
958 else if (NrOfEntries < 0)
963 ERR(
"Number of caps is different\n");
971 fwCapability_Words, Words, dm);
977 for (
i = 0;
i < NrOfEntries;
i++) {
987 old_Sel = NrOfEntries;
988 for (
i = 0;
i < NrOfEntries;
i++) {
998 if(old_Sel < NrOfEntries)
1002 if(nIDComboBox ==
cmb2)
1023 char StatusMsg[256];
1024 char ResourceString[256];
1031 for (
i = 0;
i < 25;
i++) {
1032 if (
pi->Status & (1<<
i)) {
1034 ResourceString, 255);
1035 strcat(StatusMsg,ResourceString);
1042 ResourceString, 255);
1043 strcat(StatusMsg,ResourceString);
1049 if (
pi->pLocation !=
NULL &&
pi->pLocation[0] !=
'\0')
1059 WCHAR StatusMsg[256];
1060 WCHAR ResourceString[256];
1068 for (
i = 0;
i < 25;
i++) {
1069 if (
pi->Status & (1<<
i)) {
1071 ResourceString, 255);
1072 lstrcatW(StatusMsg,ResourceString);
1079 ResourceString, 255);
1080 lstrcatW(StatusMsg,ResourceString);
1085 if (
pi->pLocation !=
NULL &&
pi->pLocation[0] !=
'\0')
1109 ERR(
"Can't open printer %s\n",
name);
1200 if(copies == 0) copies = 1;
1227 if(numResolutions != -1)
1248 for(
i = 0;
i < (numResolutions * 2);
i += 2)
1253 if(Resolutions[
i] == Resolutions[
i+1])
1255 if(dpiX == Resolutions[
i])
1260 if(dpiX == Resolutions[
i] && dpiY == Resolutions[
i+1])
1262 sprintf(
buf,
"%d dpi x %d dpi", Resolutions[
i], Resolutions[
i+1]);
1404 if(copies == 0) copies = 1;
1456 WCHAR resourcestr[256],resultstr[256];
1508 ERR(
"no icon in resource file\n");
1580 FIXME(
"No default printer found, expect problems!\n");
1616 ERR(
"no icon in resource file\n");
1689 FIXME(
"No default printer found, expect problems!\n");
1706 TRACE(
" OK button was hit\n");
1708 FIXME(
"Update printdlg was not successful!\n");
1715 TRACE(
" CANCEL button was hit\n");
1720 TRACE(
" HELP button was hit\n");
1740 if (nFromPage != lppd->nFromPage || nToPage != lppd->nToPage)
1758 char PrinterName[256];
1762 FIXME(
" Call to OpenPrinter did not succeed!\n");
1866 TRACE(
" OK button was hit\n");
1868 FIXME(
"Update printdlg was not successful!\n");
1875 TRACE(
" CANCEL button was hit\n");
1880 TRACE(
" HELP button was hit\n");
1900 if (nFromPage != lppd->nFromPage || nToPage != lppd->nToPage)
1918 WCHAR PrinterName[256];
1922 FIXME(
" Call to OpenPrinter did not succeed!\n");
2026 if (!PrintStructures)
2075 if (!PrintStructures)
2156 static const WCHAR xpsetup[] = {
'P',
'R',
'I',
'N',
'T',
'3',
'2',
'_',
'S',
'E',
'T',
'U',
'P',0};
2157 static const WCHAR xprint[] = {
'P',
'R',
'I',
'N',
'T',
'3',
'2',0};
2265 char flagstr[1000] =
"";
2267 for( ; pflag->
name; pflag++) {
2271 TRACE(
"(%p): hwndOwner = %p, hDevMode = %p, hDevNames = %p\n"
2272 "pp. %d-%d, min p %d, max p %d, copies %d, hinst %p\n"
2273 "flags %08x (%s)\n",
2280 WARN(
"structure size failure!!!\n");
2292 WARN(
"hDevMode or hDevNames non-zero for PD_RETURNDEFAULT\n");
2297 WARN(
"Can't find default printer\n");
2309 ERR(
"GetPrinterDriverA failed, le %d, fix your config for printer %s!\n",
2323 pbuf->pDevMode->dmDriverExtra);
2326 pbuf->pDevMode->dmDriverExtra);
2360 (
LPARAM)PrintStructures));
2368 TRACE(
" No hDevMode yet... Need to create my own\n");
2394 TRACE(
"exit! (%d)\n", bRet);
2416 char flagstr[1000] =
"";
2418 for( ; pflag->
name; pflag++) {
2422 TRACE(
"(%p): hwndOwner = %p, hDevMode = %p, hDevNames = %p\n"
2423 "pp. %d-%d, min p %d, max p %d, copies %d, hinst %p\n"
2424 "flags %08x (%s)\n",
2431 WARN(
"structure size failure!!!\n");
2443 WARN(
"hDevMode or hDevNames non-zero for PD_RETURNDEFAULT\n");
2448 WARN(
"Can't find default printer\n");
2460 ERR(
"GetPrinterDriverA failed, le %d, fix your config for printer %s!\n",
2474 pbuf->pDevMode->dmDriverExtra);
2477 pbuf->pDevMode->dmDriverExtra);
2511 (
LPARAM)PrintStructures));
2519 TRACE(
" No hDevMode yet... Need to create my own\n");
2525 WARN(
"hDevMode has %d locks on it. Unlocking it now\n", locks);
2528 TRACE(
"Now got %d locks\n", locks);
2541 WARN(
"hDevNames has %d locks on it. Unlocking it now\n", locks);
2561 TRACE(
"exit! (%d)\n", bRet);
2594 return data->u.dlgw->Flags;
2607 return 10 *
size * 100 / 254;
2613 return size * 254 / 100;
2633 static const WCHAR integer_fmt[] = {
'%',
'd',0};
2634 static const WCHAR hundredths_fmt[] = {
'%',
'd',
'%',
'c',
'%',
'0',
'2',
'd',0};
2635 static const WCHAR thousandths_fmt[] = {
'%',
'd',
'%',
'c',
'%',
'0',
'3',
'd',0};
2783 ERR(
"Shouldn't be here\n");
2843 len += drv_len + dev_len + port_len;
2845 if(
data->u.dlgw->hDevNames)
2869 char *
ptr = (
char *)(dn + 1);
2934 if(
data->u.dlgw->hDevMode)
2948 return &
data->u.dlgw->ptPaperSize;
2953 return &
data->u.dlgw->rtMargin;
2989 LPWSTR devname, portname;
3011 FIXME(
"Number of returned words is not %d\n",
num);
3017 FIXME(
"Number of returned sizes is not %d\n",
num);
3023 for (
i = 0;
i <
num;
i++)
3024 if (words[
i] == paperword)
3029 FIXME(
"Papersize %d not found in list?\n", paperword);
3116 LPWSTR devname, portname;
3142 LPWSTR drvname, devname, portname;
3145 memset(&prnt, 0,
sizeof(prnt));
3194 const int shadow = 4;
3206 x = (
data->rtDrawRect.right +
data->rtDrawRect.left -
width) / 2;
3208 TRACE(
"draw rect %s x=%d, y=%d, w=%d, h=%d\n",
3215 tmp =
data->rtDrawRect;
3216 tmp.
right += shadow;
3240 if(
id == 0 ||
id ==
idx)
3275 val += (*
end -
'0') * mult;
3326 FIXME(
"Call to OpenPrinter did not succeed!\n");
3376 TRACE(
"loword (lparam) %d, wparam 0x%lx, lparam %08lx\n",
3427 FIXME(
"could not get dialog text for papersize cmbbox?\n");
3514 FIXME(
"envelope/stamp is not implemented\n");
3517 FIXME(
"Unknown message %x\n",uMsg);
3559 RECT rcClient, rcMargin;
3562 HBRUSH
hbrush, holdbrush;
3564 int papersize=0, orientation=0;
3565 double scalx, scaly;
3573 WARN(
"__WINE_PAGESETUPDLGDATA prop not set?\n");
3585 rcMargin = rcClient;
3635 rcMargin.left =
min(rcMargin.left, rcMargin.right);
3636 rcMargin.top =
min(rcMargin.top, rcMargin.bottom);
3706 FIXME(
"Setup page hook failed?\n");
3761 WARN(
"__WINE_PAGESETUPDLGDATA prop not set?\n");
3795 char flagstr[1000] =
"";
3797 for( ; pflag->
name; pflag++)
3805 TRACE(
"%s: (%p): hwndOwner = %p, hDevMode = %p, hDevNames = %p\n"
3806 "hinst %p, flags %08x (%s)\n",
3807 data->unicode ?
"unicode" :
"ansi",
3808 data->u.dlgw,
data->u.dlgw->hwndOwner,
data->u.dlgw->hDevMode,
3809 data->u.dlgw->hDevNames,
data->u.dlgw->hInstance,
3821 tmpl_handle =
data->u.dlgw->hPageSetupTemplate;
3872 if (!
data->u.dlgw->hDevMode || !
data->u.dlgw->hDevNames)
3899 data->u.dlgw->hwndOwner,
3928 data.u.dlga = setupdlg;
3943 data.u.dlgw = setupdlg;
3954 pdlg->
hDC = pdlgex->hDC;
3955 pdlg->
Flags = pdlgex->Flags;
3956 if ((pdlgex->Flags &
PD_NOPAGENUMS) || !pdlgex->nPageRanges || !pdlgex->lpPageRanges)
3963 pdlg->
nFromPage = pdlgex->lpPageRanges[0].nFromPage;
3964 pdlg->
nToPage = pdlgex->lpPageRanges[0].nToPage;
3968 pdlg->
nCopies = pdlgex->nCopies;
3984 pdlgex->hDC = pdlg->
hDC;
3985 if (!(pdlgex->Flags &
PD_NOPAGENUMS) && pdlgex->nPageRanges && pdlgex->lpPageRanges)
3987 pdlgex->lpPageRanges[0].nFromPage = pdlg->
nFromPage;
3988 pdlgex->lpPageRanges[0].nToPage = pdlg->
nToPage;
3992 pdlgex->nCopies = pdlg->
nCopies;
4010 cb->callback->lpVtbl->SelectionChange(
cb->callback);
4011 cb->callback->lpVtbl->InitDone(
cb->callback);
4042 if ((lppd ==
NULL) || (lppd->lStructSize !=
sizeof(PRINTDLGEXA)))
4050 if (!lppd->nPropertyPages)
4053 FIXME(
"custom property sheets (%d at %p) not supported\n", lppd->nPropertyPages, lppd->lphPropertyPages);
4057 if (!(lppd->Flags &
PD_NOPAGENUMS) && (!lppd->nMaxPageRanges || !lppd->lpPageRanges))
4064 if (lppd->hDevMode || lppd->hDevNames)
4066 WARN(
"hDevMode or hDevNames non-zero for PD_RETURNDEFAULT\n");
4072 WARN(
"Can't find default printer\n");
4092 dm =
pbuf->pDevMode;
4099 FIXME(
"(%p) semi-stub\n", lppd);
4101 if (lppd->lpCallback)
4103 IUnknown_QueryInterface((
IUnknown *)lppd->lpCallback, &IID_IPrintDialogCallback, (
void **)&cb_data.
callback);
4134 if (!lppd->hDevNames)
4138 if (
hr ==
S_OK && lppd->hDevMode) {
4193 if ((lppd ==
NULL) || (lppd->lStructSize !=
sizeof(PRINTDLGEXW))) {
4203 if (!lppd->nPropertyPages)
4206 FIXME(
"custom property sheets (%d at %p) not supported\n", lppd->nPropertyPages, lppd->lphPropertyPages);
4210 if (!(lppd->Flags &
PD_NOPAGENUMS) && (!lppd->nMaxPageRanges || !lppd->lpPageRanges))
4217 if (lppd->hDevMode || lppd->hDevNames) {
4218 WARN(
"hDevMode or hDevNames non-zero for PD_RETURNDEFAULT\n");
4223 WARN(
"Can't find default printer\n");
4243 dm =
pbuf->pDevMode;
4250 FIXME(
"(%p) semi-stub\n", lppd);
4252 if (lppd->lpCallback)
4254 IUnknown_QueryInterface((
IUnknown *)lppd->lpCallback, &IID_IPrintDialogCallback, (
void **)&cb_data.
callback);
4282 if (!lppd->hDevNames)
4286 if (
hr ==
S_OK && lppd->hDevMode) {
static UNICODE_STRING PortName
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define PDERR_RETDEFFAILURE
#define CDERR_REGISTERMSGFAIL
#define PDERR_NODEFAULTPRN
#define CDERR_INITIALIZATION
#define CDERR_LOADRESFAILURE
DECLSPEC_HIDDEN HINSTANCE COMDLG32_hInstance
void COMDLG32_SetCommDlgExtendedError(DWORD err) DECLSPEC_HIDDEN
#define PD32_NO_DEFAULT_PRINTER
#define PD32_MARGINS_IN_MILLIMETERS
#define PD32_PRINTER_STATUS_PAUSED
#define PD32_INVALID_PAGE_RANGE
#define PD32_PRINTER_STATUS_READY
#define PD32_MARGINS_IN_INCHES
HWND WINAPI CreateUpDownControl(DWORD style, INT x, INT y, INT cx, INT cy, HWND parent, INT id, HINSTANCE inst, HWND buddy, INT maxVal, INT minVal, INT curVal)
#define PSD_ENABLEPAGESETUPHOOK
#define PD_NONETWORKBUTTON
struct tagDEVNAMES * LPDEVNAMES
#define PSD_ENABLEPAGESETUPTEMPLATE
#define PD_ENABLEPRINTTEMPLATEHANDLE
#define PSD_DISABLEORIENTATION
#define PD_ENABLESETUPTEMPLATE
#define PD_USEDEVMODECOPIESANDCOLLATE
#define PSD_INTHOUSANDTHSOFINCHES
#define START_PAGE_GENERAL
#define WM_PSD_MINMARGINRECT
#define PD_ENABLESETUPTEMPLATEHANDLE
#define PD_USEDEVMODECOPIES
#define PD_ENABLEPRINTHOOK
__CDHOOKPROC LPPAGESETUPHOOK
#define WM_PSD_MARGINRECT
#define PSD_DISABLEPRINTER
#define PSD_DISABLEMARGINS
#define PSD_RETURNDEFAULT
#define WM_PSD_ENVSTAMPRECT
#define PD_ENABLESETUPHOOK
#define PSD_ENABLEPAGEPAINTHOOK
#define PD_DISABLEPRINTTOFILE
#define PSD_DISABLEPAGEPAINTING
#define WM_PSD_PAGESETUPDLG
#define WM_PSD_YAFULLPAGERECT
#define PSD_INHUNDREDTHSOFMILLIMETERS
struct tagDEVNAMES DEVNAMES
#define WM_PSD_FULLPAGERECT
#define PSD_ENABLEPAGESETUPTEMPLATEHANDLE
#define PD_HIDEPRINTTOFILE
#define PD_ENABLEPRINTTEMPLATE
#define WM_PSD_GREEKTEXTRECT
#define ERROR_INSUFFICIENT_BUFFER
static BOOL PRINTDLG_CreateDevNames(HGLOBAL *hmem, const char *DeviceDriverName, const char *DeviceName, const char *OutputPort)
static PRINTER_INFO_2W * get_printer_infoW(HANDLE hprn)
static void pagesetup_dump_dlg_struct(const pagesetup_data *data)
static DEVMODEW * pagesetup_get_devmode(const pagesetup_data *data)
static LPARAM pagesetup_get_dlg_struct(const pagesetup_data *data)
static void set_margin_groupbox_title(HWND hDlg, const pagesetup_data *data)
HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW lppd)
static void * pagesetup_get_template(pagesetup_data *data)
static BOOL PRINTDLG_CreateDCA(LPPRINTDLGA lppd)
static WNDPROC lpfnStaticWndProc
static INT_PTR CALLBACK PrintDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL PRINTDLG_UpdatePrintDlgA(HWND hDlg, PRINT_PTRA *PrintStructures)
static void swap_point(POINT *pt)
static BOOL is_metric(const pagesetup_data *data)
static WCHAR wszFakeDocumentText[1024]
static void subclass_margin_edits(HWND hDlg)
static void pagesetup_change_preview(const pagesetup_data *data)
static WCHAR * get_default_printer(void)
static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam, PRINT_PTRW *PrintStructures)
static void rotate_rect(RECT *rc, BOOL sense)
static void pagesetup_init_combos(HWND hDlg, pagesetup_data *data)
static void pdlg_to_pdlgex(const PRINTDLGW *pdlg, PRINTDLGEXW *pdlgex)
static BOOL PRINTDLG_UpdatePrintDlgW(HWND hDlg, PRINT_PTRW *PrintStructures)
static LPPAGESETUPHOOK pagesetup_get_hook(const pagesetup_data *data, hook_type which)
static INT_PTR CALLBACK PrintDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static void update_margin_edits(HWND hDlg, const pagesetup_data *data, WORD id)
static void pagesetup_set_devmode(pagesetup_data *data, DEVMODEW *dm)
static LRESULT PRINTDLG_WMInitDialog(HWND hDlg, PRINT_PTRA *PrintStructures)
static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name, PRINT_PTRA *PrintStructures)
static const WCHAR printdlg_prop[]
HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA lppd)
static LONG tenths_mm_to_size(const pagesetup_data *data, LONG size)
static void margin_edit_notification(HWND hDlg, const pagesetup_data *data, WORD msg, WORD id)
static INT PRINTDLG_SetUpPrinterListComboW(HWND hDlg, UINT id, LPCWSTR name)
static BOOL pagesetup_wm_command(HWND hDlg, WPARAM wParam, LPARAM lParam, pagesetup_data *data)
static DRIVER_INFO_3W * get_driver_infoW(HANDLE hprn)
static DEVMODEA * convert_to_devmodeA(const DEVMODEW *dmW)
static const struct pd_flags psd_flags[]
static UINT_PTR default_page_paint_hook(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, const pagesetup_data *data)
static void pagesetup_set_devnames(pagesetup_data *data, LPCWSTR drv, LPCWSTR devname, LPCWSTR port)
static BOOL is_default_metric(void)
static const WCHAR pd32_nocollateW[]
static void pagesetup_release_a_devname(const pagesetup_data *data, WCHAR *name)
static UINT_PTR CALLBACK pdlgex_hook_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static BOOL PRINTDLG_CreateDCW(LPPRINTDLGW lppd)
static RECT * pagesetup_get_margin_rect(const pagesetup_data *data)
static const WCHAR pd32_collateW[]
static WCHAR * pagesetup_get_drvname(const pagesetup_data *data)
static POINT * pagesetup_get_papersize_pt(const pagesetup_data *data)
BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA setupdlg)
static void pagesetup_update_orientation_buttons(HWND hDlg, const pagesetup_data *data)
static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name, PRINT_PTRW *PrintStructures)
static INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name)
static WCHAR * pagesetup_get_portname(const pagesetup_data *data)
static void pagesetup_release_devmode(const pagesetup_data *data, DEVMODEW *dm)
static DWORD pagesetup_get_flags(const pagesetup_data *data)
static LONG thousandths_inch_to_size(const pagesetup_data *data, LONG size)
static void PRINTDLG_UpdatePrinterInfoTextsW(HWND hDlg, const PRINTER_INFO_2W *pi)
static const WCHAR pagesetupdlg_prop[]
static WORD pagesetup_get_orientation(const pagesetup_data *data)
static void pagesetup_printer_properties(HWND hDlg, pagesetup_data *data)
BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
static WORD get_devname_offset(const DEVNAMES *dn, devnames_name which)
static void pagesetup_set_papersize(pagesetup_data *data, WORD paper)
static HGLOBAL update_devmode_handleA(HGLOBAL hdm, DEVMODEA *dm)
static BOOL pagesetup_change_printer(LPWSTR name, pagesetup_data *data)
BOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW setupdlg)
static BOOL pagesetup_update_papersize(pagesetup_data *data)
static BOOL PRINTDLG_OpenDefaultPrinter(HANDLE *hprn)
static void PRINTDLG_UpdatePrinterInfoTextsA(HWND hDlg, const PRINTER_INFO_2A *pi)
static BOOL PRINTDLG_SetUpPaperComboBoxW(HWND hDlg, int nIDComboBox, const WCHAR *PrinterName, const WCHAR *PortName, LPDEVMODEW dm)
static void size2str(const pagesetup_data *data, DWORD size, LPWSTR strout)
static LRESULT CALLBACK PRINTDLG_PagePaintProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL pagesetup_common(pagesetup_data *data)
static void pagesetup_set_defaultsource(pagesetup_data *data, WORD source)
static WNDPROC edit_wndproc
static LONG * element_from_margin_id(RECT *rc, WORD id)
static const WCHAR pd32_landscapeW[]
static WCHAR * pagesetup_get_a_devname(const pagesetup_data *data, devnames_name which)
static INT_PTR CALLBACK pagesetup_dlg_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static WORD pagesetup_get_papersize(const pagesetup_data *data)
static LRESULT check_printer_setup(HWND hDlg)
static LRESULT CALLBACK pagesetup_margin_editproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
static LRESULT PRINTDLG_WMInitDialogW(HWND hDlg, PRINT_PTRW *PrintStructures)
static void pagesetup_set_orientation(pagesetup_data *data, WORD orient)
static WCHAR get_decimal_sep(void)
static void pagesetup_change_printer_dialog(HWND hDlg, pagesetup_data *data)
static const WCHAR pd32_portraitW[]
static BOOL PRINTDLG_SetUpPaperComboBoxA(HWND hDlg, int nIDComboBox, char *PrinterName, char *PortName, LPDEVMODEA dm)
static void pdlgex_to_pdlg(const PRINTDLGEXW *pdlgex, PRINTDLGW *pdlg)
static LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam, PRINT_PTRA *PrintStructures)
static HGLOBAL PRINTDLG_GetDlgTemplateA(const PRINTDLGA *lppd)
static PRINTER_INFO_2A * get_printer_infoA(HANDLE hprn)
BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd)
static HGLOBAL update_devmode_handleW(HGLOBAL hdm, DEVMODEW *dm)
static BOOL PRINTDLG_CreateDevNamesW(HGLOBAL *hmem, LPCWSTR DeviceDriverName, LPCWSTR DeviceName, LPCWSTR OutputPort)
static HGLOBAL PRINTDLG_GetDlgTemplateW(const PRINTDLGW *lppd)
static LPWSTR strdupW(LPCWSTR p)
static WCHAR * pagesetup_get_devname(const pagesetup_data *data)
static DRIVER_INFO_3A * get_driver_infoA(HANDLE hprn)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
HRSRC WINAPI FindResourceW(HINSTANCE hModule, LPCWSTR name, LPCWSTR type)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
LPVOID WINAPI LockResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLsizei const GLfloat * points
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
HGLOBAL NTAPI GlobalReAlloc(HGLOBAL hMem, SIZE_T dwBytes, UINT uFlags)
UINT NTAPI GlobalFlags(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
static const WCHAR emptyW[]
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
#define InterlockedCompareExchangePointer
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define sprintf(buf, format,...)
const IID IID_IObjectWithSite
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HMODULE MODULEINFO DWORD cb
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
unsigned __int3264 UINT_PTR
#define LOCALE_USER_DEFAULT
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
int __cdecl system(_In_opt_z_ const char *_Command)
_CRT_RESTORE_GCC_WARNINGS _CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
LPDRIVER_INFO_3A lpDriverInfo
LPPRINTER_INFO_2A lpPrinterInfo
LPPRINTER_INFO_2W lpPrinterInfo
LPDRIVER_INFO_3W lpDriverInfo
BYTE dmFormName[CCHFORMNAME]
BYTE dmDeviceName[CCHDEVICENAME]
WCHAR dmDeviceName[CCHDEVICENAME]
WCHAR dmFormName[CCHFORMNAME]
IPrintDialogCallback * callback
LPCSTR lpPrintTemplateName
LPPRINTHOOKPROC lpfnPrintHook
LPCSTR lpSetupTemplateName
LPPRINTHOOKPROC lpfnPrintHook
LPSETUPHOOKPROC lpfnSetupHook
LPCWSTR lpPrintTemplateName
LPCWSTR lpSetupTemplateName
#define FIELD_OFFSET(t, f)
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
UINT WINAPI GetDlgItemTextA(HWND hDlg, int nIDDlgItem, LPSTR lpString, int nMaxCount)
const char * errstr(int errcode)
DWORD WINAPI GetLastError(void)
#define FORMAT_MESSAGE_FROM_STRING
#define FORMAT_MESSAGE_ARGUMENT_ARRAY
_In_ HCRYPTHASH _In_ BOOL _In_ DWORD _Inout_ DWORD _In_ DWORD dwBufLen
#define DC_ENUMRESOLUTIONS
#define DMORIENT_LANDSCAPE
DWORD WINAPI DeviceCapabilitiesA(_In_ LPCSTR pDevice, _In_opt_ LPCSTR pPort, _In_ WORD fwCapability, _Out_writes_opt_(_Inexpressible_(1)) LPSTR pOutput, _In_opt_ const DEVMODEA *pDevMode)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
HDC WINAPI CreateICA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ const DEVMODEA *)
DWORD WINAPI DeviceCapabilitiesW(_In_ LPCWSTR pDevice, _In_opt_ LPCWSTR pPort, _In_ WORD fwCapability, _Out_writes_opt_(_Inexpressible_(1)) LPWSTR pOutput, _In_opt_ const DEVMODEW *pDevMode)
DEVMODEW *WINAPI GdiConvertToDevmodeW(const DEVMODEA *)
HDC WINAPI CreateICW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ const DEVMODEW *)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HDC WINAPI CreateDCA(_In_opt_ LPCSTR pszDriver, _In_opt_ LPCSTR pszDevice, _In_opt_ LPCSTR pszOutput, _In_opt_ const DEVMODEA *pdmInit)
#define DMORIENT_PORTRAIT
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
BOOL WINAPI DeleteDC(_In_ HDC)
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
HDC WINAPI CreateDCW(_In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR pszDevice, _In_opt_ LPCWSTR psz, _In_opt_ const DEVMODEW *pdmInit)
WINBOOL WINAPI OpenPrinterA(LPSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSA pDefault)
#define PRINTER_ENUM_LOCAL
WINBOOL WINAPI GetDefaultPrinterW(LPWSTR pszBuffer, LPDWORD pcchBuffer)
WINBOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD pcbNeeded)
WINBOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
WINBOOL WINAPI EnumPrintersW(DWORD Flags, LPWSTR Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
WINBOOL WINAPI GetDefaultPrinterA(LPSTR pszBuffer, LPDWORD pcchBuffer)
WINBOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter, LPWSTR pDeviceName, PDEVMODEW pDevModeOutput, PDEVMODEW pDevModeInput, DWORD fMode)
LONG WINAPI DocumentPropertiesA(HWND hWnd, HANDLE hPrinter, LPSTR pDeviceName, PDEVMODEA pDevModeOutput, PDEVMODEA pDevModeInput, DWORD fMode)
WINBOOL WINAPI OpenPrinterW(LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefault)
WINBOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD pcbNeeded)
WINBOOL WINAPI ClosePrinter(HANDLE hPrinter)
#define PRINTER_ENUM_CONNECTIONS
WINBOOL WINAPI EnumPrintersA(DWORD Flags, LPSTR Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
DWORD WINAPI GetSysColor(_In_ int)
BOOL WINAPI IsWindow(_In_opt_ HWND)
UINT WINAPI RegisterWindowMessageA(_In_ LPCSTR)
INT_PTR WINAPI DialogBoxIndirectParamW(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
#define COLOR_3DHIGHLIGHT
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
#define CB_FINDSTRINGEXACT
#define SPI_GETICONTITLELOGFONT
int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPSTR lpBuffer, _In_ int cchBufferMax)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetDlgItemInt(_In_ HWND, _In_ int, _In_ UINT, _In_ BOOL)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
HICON WINAPI LoadIconA(_In_opt_ HINSTANCE hInstance, _In_ LPCSTR lpIconName)
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
UINT WINAPI RegisterWindowMessageW(_In_ LPCWSTR)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
BOOL WINAPI SetDlgItemTextA(_In_ HWND, _In_ int, _In_ LPCSTR)
INT_PTR WINAPI DialogBoxIndirectParamA(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
_In_ int _Inout_ LPRECT lprc
BOOL WINAPI CheckRadioButton(_In_ HWND, _In_ int, _In_ int, _In_ int)
HANDLE WINAPI LoadImageA(_In_opt_ HINSTANCE hInst, _In_ LPCSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
UINT WINAPI GetDlgItemInt(_In_ HWND, _In_ int, _Out_opt_ PBOOL, _In_ BOOL)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define SetWindowLongPtrW
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendDlgItemMessageA(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI DestroyWindow(_In_ HWND)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
BOOL WINAPI DestroyIcon(_In_ HICON)