source: trunk/src/comdlg32/comdlg32.cpp@ 5120

Last change on this file since 5120 was 4932, checked in by sandervl, 25 years ago

Added Wine code for Windows 3.1 style common dialogs

File size: 4.4 KB
Line 
1/* $Id: comdlg32.cpp,v 1.28 2001-01-11 18:05:02 sandervl Exp $ */
2
3/*
4 * COMDLG32 implementation
5 *
6 * Copyright 1998 Sander van Leeuwen
7 * Copyright 1999 Patrick Haller
8 *
9 * Project Odin Software License can be found in LICENSE.TXT
10 *
11 */
12
13
14/****************************************************************************
15 * Includes *
16 ****************************************************************************/
17
18#include <os2win.h>
19#include <stdarg.h>
20#include <stdlib.h>
21#include <string.h>
22#include <misc.h>
23#include <odinwrap.h>
24#include <winuser32.h>
25
26ODINDEBUGCHANNEL(COMDLG32-COMDLG32)
27
28
29#define COMDLG32_CHECKHOOK(a,b,c) \
30 if(a->Flags & b) \
31 { \
32 a->lpfnHook = 0; \
33 } \
34 a->hwndOwner = Win32ToOS2Handle(a->hwndOwner);
35
36#define COMDLG32_CHECKHOOK2(a,b,c,d) \
37 if(a->Flags & b) \
38 { \
39 a->d = 0; \
40 } \
41 a->hwndOwner = Win32ToOS2Handle(a->hwndOwner);
42
43
44/*****************************************************************************
45 * Name :
46 * Purpose :
47 * Parameters:
48 * Variables :
49 * Result :
50 * Remark :
51 * Status :
52 *
53 * Author : Patrick Haller [Tue, 1998/02/10 01:55]
54 *****************************************************************************/
55
56ODINFUNCTION1(BOOL, PrintDlgA,
57 LPPRINTDLGA, lppd)
58{
59
60 COMDLG32_CHECKHOOK2(lppd, PD_ENABLEPRINTHOOK, LPPRINTHOOKPROC,lpfnPrintHook)
61 COMDLG32_CHECKHOOK2(lppd, PD_ENABLESETUPHOOK, LPSETUPHOOKPROC,lpfnSetupHook)
62
63 return O32_PrintDlg(lppd);
64}
65
66
67/*****************************************************************************
68 * Name :
69 * Purpose :
70 * Parameters:
71 * Variables :
72 * Result :
73 * Remark :
74 * Status :
75 *
76 * Author : Patrick Haller [Tue, 1998/02/10 01:55]
77 *****************************************************************************/
78
79ODINFUNCTION1(BOOL, PrintDlgW,
80 LPPRINTDLGW, lppd)
81{
82
83 PRINTDLGA pd;
84 BOOL bResult;
85
86 memcpy(&pd, // make binary copy first to save all the fields
87 lppd,
88 sizeof(pd));
89
90 // convert to ASCII string
91 if ((lppd->Flags & PD_ENABLEPRINTTEMPLATE) &&
92 (lppd->lpPrintTemplateName != NULL))
93 pd.lpPrintTemplateName = UnicodeToAsciiString((WCHAR*)lppd->lpPrintTemplateName);
94 else
95 pd.lpPrintTemplateName = NULL;
96
97 if ((lppd->Flags & PD_ENABLESETUPTEMPLATE) &&
98 (lppd->lpSetupTemplateName != NULL))
99 pd.lpSetupTemplateName = UnicodeToAsciiString((WCHAR*)lppd->lpSetupTemplateName);
100 else
101 pd.lpSetupTemplateName = NULL;
102
103 COMDLG32_CHECKHOOK2((&pd), PD_ENABLEPRINTHOOK, LPPRINTHOOKPROC,lpfnPrintHook)
104 COMDLG32_CHECKHOOK2((&pd), PD_ENABLESETUPHOOK, LPSETUPHOOKPROC,lpfnSetupHook)
105
106 bResult = O32_PrintDlg(&pd); // call ASCII API
107
108 if (pd.lpPrintTemplateName != NULL) FreeAsciiString((char*)pd.lpPrintTemplateName);
109 if (pd.lpSetupTemplateName != NULL) FreeAsciiString((char*)pd.lpSetupTemplateName);
110
111 // copy back result
112 lppd->Flags = pd.Flags;
113 lppd->nFromPage = pd.nFromPage;
114 lppd->nToPage = pd.nToPage;
115 lppd->nMinPage = pd.nMinPage;
116 lppd->nMaxPage = pd.nMaxPage;
117 lppd->nCopies = pd.nCopies;
118 //@@@PH: all pass-back fields ?
119
120 return bResult;
121}
122
123
124/*****************************************************************************
125 * Name :
126 * Purpose :
127 * Parameters:
128 * Variables :
129 * Result :
130 * Remark :
131 * Status :
132 *
133 * Author : Patrick Haller [Tue, 1998/02/10 01:55]
134 *****************************************************************************/
135
136ODINFUNCTION1(BOOL, PageSetupDlgA,
137 LPPAGESETUPDLGA, lppsd)
138{
139
140 dprintf(("COMDLG32: PageSetupDlgA not implemented.\n"));
141
142 //COMDLG32_CHECKHOOK2(lppsd, PSD_ENABLESETUPHOOK, LPPAGESETUPHOOK, lpfnPageSetupHook)
143
144 return(FALSE);
145}
146
147
148/*****************************************************************************
149 * Name :
150 * Purpose :
151 * Parameters:
152 * Variables :
153 * Result :
154 * Remark :
155 * Status :
156 *
157 * Author : Patrick Haller [Tue, 1998/02/10 01:55]
158 *****************************************************************************/
159
160ODINFUNCTION1(BOOL, PageSetupDlgW,
161 LPPAGESETUPDLGW, lppsd)
162{
163
164 dprintf(("COMDLG32: PageSetupDlgW(%08xh) not implemented.\n"));
165
166 //COMDLG32_CHECKHOOK2(lppsd, PSD_ENABLESETUPHOOK, LPPAGESETUPHOOK, lpfnPageSetupHook)
167
168 return(FALSE);
169}
170
Note: See TracBrowser for help on using the repository browser.