Use the right buffer size in SYSPARAMS_Load instead of some random
[wine] / include / oledlg.h
1 /*
2  * Declarations for OLEDLG
3  *
4  * Copyright (C) the Wine project
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #ifndef __WINE_OLEDLG_H
22 #define __WINE_OLEDLG_H
23
24 #include "commdlg.h"
25 #include "prsht.h"
26 #include "windef.h"
27 #include "ole2.h"
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33
34 typedef struct IOleUILinkContainerA IOleUILinkContainerA, *POLEUILINKCONTAINERA, *LPOLEUILINKCONTAINERA;
35 typedef struct IOleUILinkContainerW IOleUILinkContainerW, *POLEUILINKCONTAINERW, *LPOLEUILINKCONTAINERW;
36
37 typedef struct IOleUILinkInfoA IOleUILinkInfoA, *POLEUILINKINFOA, *LPOLEUILINKINFOA;
38 typedef struct IOleUILinkInfoW IOleUILinkInfoW, *POLEUILINKINFOW, *LPOLEUILINKINFOW;
39
40 typedef struct IOleUIObjInfoA IOleUIObjInfoA, *POLEUIOBJINFOA, *LPOLEUIOBJINFOA;
41 typedef struct IOleUIObjInfoW IOleUIObjInfoW, *POLEUIOBJINFOW, *LPOLEUIOBJINFOW;
42
43 #define IDC_OLEUIHELP                   99
44
45 /* Change Source Dialog flags */
46 #define CSF_SHOWHELP                    0x00000001L
47 #define CSF_VALIDSOURCE                 0x00000002L
48 #define CSF_ONLYGETSOURCE               0x00000004L
49 #define CSF_EXPLORER                    0x00000008L
50
51 #define PSF_SHOWHELP                    0x00000001L
52 #define PSF_SELECTPASTE                 0x00000002L
53 #define PSF_SELECTPASTELINK             0x00000004L
54 #define PSF_CHECKDISPLAYASICON          0x00000008L
55 #define PSF_DISABLEDISPLAYASICON        0x00000010L
56 #define PSF_HIDECHANGEICON              0x00000020L
57 #define PSF_STAYONCLIPBOARDCHANGE       0x00000040L
58 #define PSF_NOREFRESHDATAOBJECT         0x00000080L
59
60 #define IOF_SHOWHELP                    0x00000001L
61 #define IOF_SELECTCREATENEW             0x00000002L
62 #define IOF_SELECTCREATEFROMFILE        0x00000004L
63 #define IOF_CHECKLINK                   0x00000008L
64 #define IOF_CHECKDISPLAYASICON          0x00000010L
65 #define IOF_CREATENEWOBJECT             0x00000020L
66 #define IOF_CREATEFILEOBJECT            0x00000040L
67 #define IOF_CREATELINKOBJECT            0x00000080L
68 #define IOF_DISABLELINK                 0x00000100L
69 #define IOF_VERIFYSERVERSEXIST          0x00000200L
70 #define IOF_DISABLEDISPLAYASICON        0x00000400L
71 #define IOF_HIDECHANGEICON              0x00000800L
72 #define IOF_SHOWINSERTCONTROL           0x00001000L
73 #define IOF_SELECTCREATECONTROL         0x00002000L
74
75 #define CF_SHOWHELPBUTTON               0x00000001L
76 #define CF_SETCONVERTDEFAULT            0x00000002L
77 #define CF_SETACTIVATEDEFAULT           0x00000004L
78 #define CF_SELECTCONVERTTO              0x00000008L
79 #define CF_SELECTACTIVATEAS             0x00000010L
80 #define CF_DISABLEDISPLAYASICON         0x00000020L
81 #define CF_DISABLEACTIVATEAS            0x00000040L
82 #define CF_HIDECHANGEICON               0x00000080L
83 #define CF_CONVERTONLY                  0x00000100L
84
85 #define CIF_SHOWHELP                    0x00000001L
86 #define CIF_SELECTCURRENT               0x00000002L
87 #define CIF_SELECTDEFAULT               0x00000004L
88 #define CIF_SELECTFROMFILE              0x00000008L
89 #define CIF_USEICONEXE                  0x00000010L
90
91 #define BZ_DISABLECANCELBUTTON          0x00000001L
92 #define BZ_DISABLESWITCHTOBUTTON        0x00000002L
93 #define BZ_DISABLERETRYBUTTON           0x00000004L
94 #define BZ_NOTRESPONDINGDIALOG          0x00000008L
95
96 #define OLEUI_ERR_STANDARDMAX           116
97
98 #define OLEUI_BZERR_HTASKINVALID        (OLEUI_ERR_STANDARDMAX+0)
99 #define OLEUI_BZ_SWITCHTOSELECTED       (OLEUI_ERR_STANDARDMAX+1)
100 #define OLEUI_BZ_RETRYSELECTED          (OLEUI_ERR_STANDARDMAX+2)
101 #define OLEUI_BZ_CALLUNBLOCKED          (OLEUI_ERR_STANDARDMAX+3)
102
103 #define OLEUI_FALSE   0
104 #define OLEUI_SUCCESS 1 /* Same as OLEUI_OK */
105 #define OLEUI_OK      1 /* OK button pressed */
106 #define OLEUI_CANCEL  2 /* Cancel button pressed */
107
108 #define OPF_OBJECTISLINK                0x00000001L
109 #define OPF_NOFILLDEFAULT               0x00000002L
110 #define OPF_SHOWHELP                    0x00000004L
111 #define OPF_DISABLECONVERT              0x00000008L
112
113 typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
114
115 /*****************************************************************************
116  * INSERT OBJECT DIALOG
117  */
118 typedef struct tagOLEUIINSERTOBJECTA
119 {
120     DWORD           cbStruct;
121     DWORD           dwFlags;
122     HWND            hWndOwner;
123     LPCSTR          lpszCaption;
124     LPFNOLEUIHOOK   lpfnHook;
125     LPARAM          lCustData;
126     HINSTANCE       hInstance;
127     LPCSTR          lpszTemplate;
128     HRSRC           hResource;
129     CLSID           clsid;
130     LPSTR           lpszFile;
131     UINT            cchFile;
132     UINT            cClsidExclude;
133     LPCLSID         lpClsidExclude;
134     IID             iid;
135     DWORD           oleRender;
136     LPFORMATETC     lpFormatEtc;
137     LPOLECLIENTSITE lpIOleClientSite;
138     LPSTORAGE       lpIStorage;
139     LPVOID          *ppvObj;
140     SCODE           sc;
141     HGLOBAL         hMetaPict;
142 } OLEUIINSERTOBJECTA, *POLEUIINSERTOBJECTA, *LPOLEUIINSERTOBJECTA;
143
144 typedef struct tagOLEUIINSERTOBJECTW
145 {
146     DWORD           cbStruct;
147     DWORD           dwFlags;
148     HWND            hWndOwner;
149     LPCWSTR         lpszCaption;
150     LPFNOLEUIHOOK   lpfnHook;
151     LPARAM          lCustData;
152     HINSTANCE       hInstance;
153     LPCWSTR         lpszTemplate;
154     HRSRC           hResource;
155     CLSID           clsid;
156     LPWSTR          lpszFile;
157     UINT            cchFile;
158     UINT            cClsidExclude;
159     LPCLSID         lpClsidExclude;
160     IID             iid;
161     DWORD           oleRender;
162     LPFORMATETC     lpFormatEtc;
163     LPOLECLIENTSITE lpIOleClientSite;
164     LPSTORAGE       lpIStorage;
165     LPVOID          *ppvObj;
166     SCODE           sc;
167     HGLOBAL         hMetaPict;
168 } OLEUIINSERTOBJECTW, *POLEUIINSERTOBJECTW, *LPOLEUIINSERTOBJECTW;
169
170 DECL_WINELIB_TYPE_AW(OLEUIINSERTOBJECT)
171 DECL_WINELIB_TYPE_AW(POLEUIINSERTOBJECT)
172 DECL_WINELIB_TYPE_AW(LPOLEUIINSERTOBJECT)
173
174
175 /*****************************************************************************
176  * CONVERT DIALOG
177  */
178 typedef struct tagOLEUICONVERTA
179 {
180     DWORD           cbStruct;
181     DWORD           dwFlags;
182     HWND            hWndOwner;
183     LPCSTR          lpszCaption;
184     LPFNOLEUIHOOK   lpfnHook;
185     LPARAM          lCustData;
186     HINSTANCE       hInstance;
187     LPCSTR          lpszTemplate;
188     HRSRC           hResource;
189     CLSID           clsid;
190     CLSID           clsidConvertDefault;
191     CLSID           clsidActivateDefault;
192     CLSID           clsidNew;
193     DWORD           dvAspect;
194     WORD            wFormat;
195     BOOL            fIsLinkedObject;
196     HGLOBAL         hMetaPict;
197     LPSTR           lpszUserType;
198     BOOL            fObjectsIconChanged;
199     LPSTR           lpszDefLabel;
200     UINT            cClsidExclude;
201     LPCLSID         lpClsidExclude;
202 } OLEUICONVERTA, *POLEUICONVERTA, *LPOLEUICONVERTA;
203
204 typedef struct tagOLEUICONVERTW
205 {
206     DWORD           cbStruct;
207     DWORD           dwFlags;
208     HWND            hWndOwner;
209     LPCWSTR         lpszCaption;
210     LPFNOLEUIHOOK   lpfnHook;
211     LPARAM          lCustData;
212     HINSTANCE       hInstance;
213     LPCWSTR         lpszTemplate;
214     HRSRC           hResource;
215     CLSID           clsid;
216     CLSID           clsidConvertDefault;
217     CLSID           clsidActivateDefault;
218     CLSID           clsidNew;
219     DWORD           dvAspect;
220     WORD            wFormat;
221     BOOL            fIsLinkedObject;
222     HGLOBAL         hMetaPict;
223     LPWSTR          lpszUserType;
224     BOOL            fObjectsIconChanged;
225     LPWSTR          lpszDefLabel;
226     UINT            cClsidExclude;
227     LPCLSID         lpClsidExclude;
228 } OLEUICONVERTW, *POLEUICONVERTW, *LPOLEUICONVERTW;
229
230 DECL_WINELIB_TYPE_AW(OLEUICONVERT)
231 DECL_WINELIB_TYPE_AW(POLEUICONVERT)
232 DECL_WINELIB_TYPE_AW(LPOLEUICONVERT)
233
234 /*****************************************************************************
235  * CHANGE ICON DIALOG
236  */
237 typedef struct tagOLEUICHANGEICONA
238 {
239     DWORD           cbStruct;
240     DWORD           dwFlags;
241     HWND            hWndOwner;
242     LPCSTR          lpszCaption;
243     LPFNOLEUIHOOK   lpfnHook;
244     LPARAM          lCustData;
245     HINSTANCE       hInstance;
246     LPCSTR          lpszTemplate;
247     HRSRC           hResource;
248     HGLOBAL         hMetaPict;
249     CLSID           clsid;
250     CHAR            szIconExe[MAX_PATH];
251     INT             cchIconExe;
252 } OLEUICHANGEICONA, *POLEUICHANGEICONA, *LPOLEUICHANGEICONA;
253
254 typedef struct tagOLEUICHANGEICONW
255 {
256     DWORD           cbStruct;
257     DWORD           dwFlags;
258     HWND            hWndOwner;
259     LPCWSTR         lpszCaption;
260     LPFNOLEUIHOOK   lpfnHook;
261     LPARAM          lCustData;
262     HINSTANCE       hInstance;
263     LPCWSTR         lpszTemplate;
264     HRSRC           hResource;
265     HGLOBAL         hMetaPict;
266     CLSID           clsid;
267     WCHAR           szIconExe[MAX_PATH];
268     INT             cchIconExe;
269 } OLEUICHANGEICONW, *POLEUICHANGEICONW, *LPOLEUICHANGEICONW;
270
271 DECL_WINELIB_TYPE_AW(OLEUICHANGEICON)
272 DECL_WINELIB_TYPE_AW(POLEUICHANGEICON)
273 DECL_WINELIB_TYPE_AW(LPOLEUICHANGEICON)
274
275
276 /*****************************************************************************
277  * PASTE SPECIAL DIALOG
278  */
279
280 typedef enum tagOLEUIPASTEFLAG
281 {
282    OLEUIPASTE_ENABLEICON    = 2048,
283    OLEUIPASTE_PASTEONLY     = 0,
284    OLEUIPASTE_PASTE         = 512,
285    OLEUIPASTE_LINKANYTYPE   = 1024,
286    OLEUIPASTE_LINKTYPE1     = 1,
287    OLEUIPASTE_LINKTYPE2     = 2,
288    OLEUIPASTE_LINKTYPE3     = 4,
289    OLEUIPASTE_LINKTYPE4     = 8,
290    OLEUIPASTE_LINKTYPE5     = 16,
291    OLEUIPASTE_LINKTYPE6     = 32,
292    OLEUIPASTE_LINKTYPE7     = 64,
293    OLEUIPASTE_LINKTYPE8     = 128
294 } OLEUIPASTEFLAG;
295
296 typedef struct tagOLEUIPASTEENTRYA
297 {
298    FORMATETC        fmtetc;
299    LPCSTR           lpstrFormatName;
300    LPCSTR           lpstrResultText;
301    DWORD            dwFlags;
302    DWORD            dwScratchSpace;
303 } OLEUIPASTEENTRYA, *POLEUIPASTEENTRYA, *LPOLEUIPASTEENTRYA;
304
305 typedef struct tagOLEUIPASTEENTRYW
306 {
307    FORMATETC        fmtetc;
308    LPCWSTR          lpstrFormatName;
309    LPCWSTR          lpstrResultText;
310    DWORD            dwFlags;
311    DWORD            dwScratchSpace;
312 } OLEUIPASTEENTRYW, *POLEUIPASTEENTRYW, *LPOLEUIPASTEENTRYW;
313
314 DECL_WINELIB_TYPE_AW(OLEUIPASTEENTRY)
315 DECL_WINELIB_TYPE_AW(POLEUIPASTEENTRY)
316 DECL_WINELIB_TYPE_AW(LPOLEUIPASTEENTRY)
317
318 typedef struct tagOLEUIPASTESPECIALA
319 {
320     DWORD           cbStruct;
321     DWORD           dwFlags;
322     HWND            hWndOwner;
323     LPCSTR          lpszCaption;
324     LPFNOLEUIHOOK   lpfnHook;
325     LPARAM          lCustData;
326     HINSTANCE       hInstance;
327     LPCSTR          lpszTemplate;
328     HRSRC           hResource;
329     LPDATAOBJECT    lpSrcDataObj;
330     LPOLEUIPASTEENTRYA arrPasteEntries;
331     INT             cPasteEntries;
332     UINT*           arrLinkTypes;
333     INT             cLinkTypes;
334     UINT            cClsidExclude;
335     LPCLSID         lpClsidExclude;
336     INT             nSelectedIndex;
337     BOOL            fLink;
338     HGLOBAL         hMetaPict;
339     SIZEL           sizel;
340 } OLEUIPASTESPECIALA, *POLEUIPASTESPECIALA, *LPOLEUIPASTESPECIALA;
341
342 typedef struct tagOLEUIPASTESPECIALW
343 {
344     DWORD           cbStruct;
345     DWORD           dwFlags;
346     HWND            hWndOwner;
347     LPCWSTR         lpszCaption;
348     LPFNOLEUIHOOK   lpfnHook;
349     LPARAM          lCustData;
350     HINSTANCE       hInstance;
351     LPCWSTR         lpszTemplate;
352     HRSRC           hResource;
353     LPDATAOBJECT    lpSrcDataObj;
354     LPOLEUIPASTEENTRYW arrPasteEntries;
355     INT             cPasteEntries;
356     UINT*           arrLinkTypes;
357     INT             cLinkTypes;
358     UINT            cClsidExclude;
359     LPCLSID         lpClsidExclude;
360     INT             nSelectedIndex;
361     BOOL            fLink;
362     HGLOBAL         hMetaPict;
363     SIZEL           sizel;
364 } OLEUIPASTESPECIALW, *POLEUIPASTESPECIALW, *LPOLEUIPASTESPECIALW;
365
366 DECL_WINELIB_TYPE_AW(OLEUIPASTESPECIAL)
367 DECL_WINELIB_TYPE_AW(POLEUIPASTESPECIAL)
368 DECL_WINELIB_TYPE_AW(LPOLEUIPASTESPECIAL)
369
370 #define PSF_SHOWHELP                    0x00000001L
371 #define PSF_SELECTPASTE                 0x00000002L
372 #define PSF_SELECTPASTELINK             0x00000004L
373
374 #define PSF_CHECKDISPLAYASICON          0x00000008L
375 #define PSF_DISABLEDISPLAYASICON        0x00000010L
376 #define PSF_HIDECHANGEICON              0x00000020L
377 #define PSF_STAYONCLIPBOARDCHANGE       0x00000040L
378 #define PSF_NOREFRESHDATAOBJECT         0x00000080L
379
380 #define OLEUI_IOERR_SRCDATAOBJECTINVALID    (OLEUI_ERR_STANDARDMAX+0)
381 #define OLEUI_IOERR_ARRPASTEENTRIESINVALID  (OLEUI_ERR_STANDARDMAX+1)
382 #define OLEUI_IOERR_ARRLINKTYPESINVALID     (OLEUI_ERR_STANDARDMAX+2)
383 #define OLEUI_PSERR_CLIPBOARDCHANGED        (OLEUI_ERR_STANDARDMAX+3)
384 #define OLEUI_PSERR_GETCLIPBOARDFAILED      (OLEUI_ERR_STANDARDMAX+4)
385
386 #define ELF_SHOWHELP               0x00000001L
387 #define ELF_DISABLEUPDATENOW       0x00000002L
388 #define ELF_DISABLEOPENSOURCE      0x00000004L
389 #define ELF_DISABLECHANGESOURCE    0x00000008L
390 #define ELF_DISABLECANCELLINK      0x00000010L
391
392 typedef struct tagOLEUIEDITLINKSW
393 {
394     DWORD           cbStruct;
395     DWORD           dwFlags;
396     HWND            hWndOwner;
397     LPCWSTR         lpszCaption;
398     LPFNOLEUIHOOK   lpfnHook;
399     LPARAM          lCustData;
400     HINSTANCE       hInstance;
401     LPCWSTR         lpszTemplate;
402     HRSRC           hResource;
403     LPOLEUILINKCONTAINERW lpOleUILinkContainer;
404 } OLEUIEDITLINKSW, *POLEUIEDITLINKSW, *LPOLEUIEDITLINKSW;
405
406 typedef struct tagOLEUIEDITLINKSA
407 {
408     DWORD           cbStruct;
409     DWORD           dwFlags;
410     HWND            hWndOwner;
411     LPCSTR          lpszCaption;
412     LPFNOLEUIHOOK   lpfnHook;
413     LPARAM          lCustData;
414     HINSTANCE       hInstance;
415     LPCSTR          lpszTemplate;
416     HRSRC           hResource;
417     LPOLEUILINKCONTAINERA lpOleUILinkContainer;
418 } OLEUIEDITLINKSA, *POLEUIEDITLINKSA, *LPOLEUIEDITLINKSA;
419
420 DECL_WINELIB_TYPE_AW(OLEUIEDITLINKS)
421 DECL_WINELIB_TYPE_AW(POLEUIEDITLINKS)
422 DECL_WINELIB_TYPE_AW(LPOLEUIEDITLINKS)
423
424
425 /***********************************************************************************
426  * BUSY DIALOG
427  */
428 typedef struct tagOLEUIBUSYA
429 {
430     DWORD           cbStruct;
431     DWORD           dwFlags;
432     HWND            hWndOwner;
433     LPCSTR          lpszCaption;
434     LPFNOLEUIHOOK   lpfnHook;
435     LPARAM          lCustData;
436     HINSTANCE       hInstance;
437     LPCSTR          lpszTemplate;
438     HRSRC           hResource;
439     HTASK           hTask;
440     HWND*           lphWndDialog;
441 } OLEUIBUSYA, *POLEUIBUSYA, *LPOLEUIBUSYA;
442
443 typedef struct tagOLEUIBUSYW
444 {
445     DWORD           cbStruct;
446     DWORD           dwFlags;
447     HWND            hWndOwner;
448     LPCWSTR         lpszCaption;
449     LPFNOLEUIHOOK   lpfnHook;
450     LPARAM          lCustData;
451     HINSTANCE       hInstance;
452     LPCWSTR         lpszTemplate;
453     HRSRC           hResource;
454     HTASK           hTask;
455     HWND*           lphWndDialog;
456 } OLEUIBUSYW, *POLEUIBUSYW, *LPOLEUIBUSYW;
457
458 DECL_WINELIB_TYPE_AW(OLEUIBUSY)
459 DECL_WINELIB_TYPE_AW(POLEUIBUSY)
460 DECL_WINELIB_TYPE_AW(LPOLEUIBUSY)
461
462
463 struct tagOLEUIOBJECTPROPSW;
464 struct tagOLEUIOBJECTPROPSA;
465
466 typedef struct tagOLEUIGNRLPROPSA
467 {
468     DWORD           cbStruct;
469     DWORD           dwFlags;
470     DWORD           dwReserved1[2];
471     LPFNOLEUIHOOK   lpfnHook;
472     LPARAM          lCustData;
473     DWORD           dwReserved2[3];
474     struct tagOLEUIOBJECTPROPSA* lpOP;
475
476 } OLEUIGNRLPROPSA, *POLEUIGNRLPROPSA, *LPOLEUIGNRLPROPSA;
477
478 typedef struct tagOLEUIGNRLPROPSW
479 {
480     DWORD           cbStruct;
481     DWORD           dwFlags;
482     DWORD           dwReserved1[2];
483     LPFNOLEUIHOOK   lpfnHook;
484     LPARAM          lCustData;
485     DWORD           dwReserved2[3];
486     struct tagOLEUIOBJECTPROPSW* lpOP;
487 } OLEUIGNRLPROPSW, *POLEUIGNRLPROPSW, *LPOLEUIGNRLPROPSW;
488
489 DECL_WINELIB_TYPE_AW(OLEUIGNRLPROPS)
490 DECL_WINELIB_TYPE_AW(POLEUIGNRLPROPS)
491 DECL_WINELIB_TYPE_AW(LPOLEUIGNRLPROPS)
492
493 typedef struct tagOLEUIVIEWPROPSA
494 {
495     DWORD           cbStruct;
496     DWORD           dwFlags;
497     DWORD           dwReserved1[2];
498     LPFNOLEUIHOOK   lpfnHook;
499     LPARAM          lCustData;
500     DWORD           dwReserved2[3];
501     struct tagOLEUIOBJECTPROPSA* lpOP;
502     INT             nScaleMin;
503     INT             nScaleMax;
504 } OLEUIVIEWPROPSA, *POLEUIVIEWPROPSA, *LPOLEUIVIEWPROPSA;
505
506 typedef struct tagOLEUIVIEWPROPSW
507 {
508     DWORD           cbStruct;
509     DWORD           dwFlags;
510     DWORD           dwReserved1[2];
511     LPFNOLEUIHOOK   lpfnHook;
512     LPARAM          lCustData;
513     DWORD           dwReserved2[3];
514     struct tagOLEUIOBJECTPROPSW* lpOP;
515     INT             nScaleMin;
516     INT             nScaleMax;
517 } OLEUIVIEWPROPSW, *POLEUIVIEWPROPSW, *LPOLEUIVIEWPROPSW;
518
519 DECL_WINELIB_TYPE_AW(OLEUIVIEWPROPS)
520 DECL_WINELIB_TYPE_AW(POLEUIVIEWPROPS)
521 DECL_WINELIB_TYPE_AW(LPOLEUIVIEWPROPS)
522
523
524 #define VPF_SELECTRELATIVE          0x00000001L
525 #define VPF_DISABLERELATIVE         0x00000002L
526 #define VPF_DISABLESCALE            0x00000004L
527
528 typedef struct tagOLEUILINKPROPSA
529 {
530     DWORD           cbStruct;
531     DWORD           dwFlags;
532     DWORD           dwReserved1[2];
533     LPFNOLEUIHOOK   lpfnHook;
534     LPARAM          lCustData;
535     DWORD           dwReserved2[3];
536     struct tagOLEUIOBJECTPROPSA* lpOP;
537 } OLEUILINKPROPSA, *POLEUILINKPROPSA, *LPOLEUILINKPROPSA;
538
539 typedef struct tagOLEUILINKPROPSW
540 {
541     DWORD           cbStruct;
542     DWORD           dwFlags;
543     DWORD           dwReserved1[2];
544     LPFNOLEUIHOOK   lpfnHook;
545     LPARAM          lCustData;
546     DWORD           dwReserved2[3];
547     struct tagOLEUIOBJECTPROPSW* lpOP;
548 } OLEUILINKPROPSW, *POLEUILINKPROPSW, *LPOLEUILINKPROPSW;
549
550 DECL_WINELIB_TYPE_AW(OLEUILINKPROPS)
551 DECL_WINELIB_TYPE_AW(POLEUILINKPROPS)
552 DECL_WINELIB_TYPE_AW(LPOLEUILINKPROPS)
553
554 typedef struct tagOLEUIOBJECTPROPSA
555 {
556     DWORD                cbStruct;
557     DWORD                dwFlags;
558     LPPROPSHEETHEADERA   lpPS;
559     DWORD                dwObject;
560     LPOLEUIOBJINFOA      lpObjInfo;
561     DWORD                dwLink;
562     LPOLEUILINKINFOA     lpLinkInfo;
563     LPOLEUIGNRLPROPSA    lpGP;
564     LPOLEUIVIEWPROPSA    lpVP;
565     LPOLEUILINKPROPSA    lpLP;
566 } OLEUIOBJECTPROPSA, *POLEUIOBJECTPROPSA, *LPOLEUIOBJECTPROPSA;
567
568 typedef struct tagOLEUIOBJECTPROPSW
569 {
570     DWORD                cbStruct;
571     DWORD                dwFlags;
572     LPPROPSHEETHEADERW   lpPS;
573     DWORD                dwObject;
574     LPOLEUIOBJINFOW      lpObjInfo;
575     DWORD                dwLink;
576     LPOLEUILINKINFOW     lpLinkInfo;
577     LPOLEUIGNRLPROPSW    lpGP;
578     LPOLEUIVIEWPROPSW    lpVP;
579     LPOLEUILINKPROPSW    lpLP;
580 } OLEUIOBJECTPROPSW, *POLEUIOBJECTPROPSW, *LPOLEUIOBJECTPROPSW;
581
582 DECL_WINELIB_TYPE_AW(OLEUIOBJECTPROPS)
583 DECL_WINELIB_TYPE_AW(POLEUIOBJECTPROPS)
584 DECL_WINELIB_TYPE_AW(LPOLEUIOBJECTPROPS)
585
586 /************************************************************************************
587  * CHANGE SOURCE DIALOG
588  */
589
590
591 typedef struct tagOLEUICHANGESOURCEW
592 {
593     DWORD           cbStruct;
594     DWORD           dwFlags;
595     HWND            hWndOwner;
596     LPCWSTR         lpszCaption;
597     LPFNOLEUIHOOK   lpfnHook;
598     LPARAM          lCustData;
599     HINSTANCE       hInstance;
600     LPCWSTR         lpszTemplate;
601     HRSRC           hResource;
602     OPENFILENAMEW*lpOFN;
603     DWORD           dwReserved1[4];
604     LPOLEUILINKCONTAINERW lpOleUILinkContainer;
605     DWORD           dwLink;
606     LPWSTR          lpszDisplayName;
607     ULONG           nFileLength;
608     LPWSTR          lpszFrom;
609     LPWSTR          lpszTo;
610 } OLEUICHANGESOURCEW, *POLEUICHANGESOURCEW, *LPOLEUICHANGESOURCEW;
611
612
613 typedef struct tagOLEUICHANGESOURCEA
614 {
615     DWORD           cbStruct;
616     DWORD           dwFlags;
617     HWND            hWndOwner;
618     LPCSTR          lpszCaption;
619     LPFNOLEUIHOOK   lpfnHook;
620     LPARAM          lCustData;
621     HINSTANCE       hInstance;
622     LPCSTR          lpszTemplate;
623     HRSRC           hResource;
624     OPENFILENAMEA*  lpOFN;
625     DWORD           dwReserved1[4];
626     LPOLEUILINKCONTAINERA lpOleUILinkContainer;
627     DWORD           dwLink;
628     LPSTR           lpszDisplayName;
629     ULONG           nFileLength;
630     LPSTR           lpszFrom;
631     LPSTR           lpszTo;
632 } OLEUICHANGESOURCEA, *POLEUICHANGESOURCEA, *LPOLEUICHANGESOURCEA;
633
634
635 DECL_WINELIB_TYPE_AW(OLEUICHANGESOURCE)
636 DECL_WINELIB_TYPE_AW(POLEUICHANGESOURCE)
637 DECL_WINELIB_TYPE_AW(LPOLEUICHANGESOURCE)
638
639
640 /*****************************************************************************
641  * IOleUILinkContainer interface
642  */
643 #define ICOM_INTERFACE   IOleUILinkContainerA
644 #define IOleUILinkContainerA_METHODS \
645     ICOM_METHOD1(DWORD,GetNextLink,               DWORD,dwLink) \
646     ICOM_METHOD2(HRESULT,SetLinkUpdateOptions,    DWORD,dwLink,  DWORD,dwUpdateOpt) \
647     ICOM_METHOD2(HRESULT,GetLinkUpdateOptions,    DWORD,dwLink,  DWORD*,lpdwUpdateOpt) \
648     ICOM_METHOD5(HRESULT,SetLinkSource,           DWORD,dwLink,  LPSTR,lpszDisplayName, \
649                 ULONG,lenFileName,  ULONG*,pchEaten,  BOOL,fValidateSource) \
650     ICOM_METHOD7(HRESULT,GetLinkSource,           DWORD,dwLink, \
651                 LPSTR*,lplpszDisplayName,  ULONG*,lplenFileName, \
652                 LPSTR*,lplpszFullLinkType,  LPSTR*,lplpszShortLinkType, \
653                 BOOL*,lpfSourceAvailable,  BOOL*,lpfIsSelected) \
654     ICOM_METHOD1(HRESULT,OpenLinkSource,          DWORD,dwLink) \
655     ICOM_METHOD3(HRESULT,UpdateLink,              DWORD,dwLink, \
656                 BOOL,fErrorMessage,  BOOL,fReserved) \
657     ICOM_METHOD1(HRESULT,CancelLink,                                                    DWORD,dwLink)
658 #define IOleUILinkContainerA_IMETHODS \
659     IUnknown_IMETHODS \
660     IOleUILinkContainerA_METHODS
661 ICOM_DEFINE(IOleUILinkContainerA, IUnknown)
662 #undef ICOM_INTERFACE
663
664 #define ICOM_INTERFACE   IOleUILinkContainerW
665 #define IOleUILinkContainerW_METHODS \
666     ICOM_METHOD1(DWORD,GetNextLink,               DWORD,dwLink) \
667     ICOM_METHOD2(HRESULT,SetLinkUpdateOptions,    DWORD,dwLink,  DWORD,dwUpdateOpt) \
668     ICOM_METHOD2(HRESULT,GetLinkUpdateOptions,    DWORD,dwLink,  DWORD*,lpdwUpdateOpt) \
669     ICOM_METHOD5(HRESULT,SetLinkSource,           DWORD,dwLink,  LPWSTR,lpszDisplayName, \
670                 ULONG,lenFileName,  ULONG*,pchEaten,  BOOL,fValidateSource) \
671     ICOM_METHOD7(HRESULT,GetLinkSource,           DWORD,dwLink, \
672                 LPWSTR*,lplpszDisplayName,  ULONG*,lplenFileName, \
673                 LPWSTR*,lplpszFullLinkType,  LPWSTR*,lplpszShortLinkType, \
674                 BOOL*,lpfSourceAvailable,  BOOL*,lpfIsSelected) \
675     ICOM_METHOD1(HRESULT,OpenLinkSource,          DWORD,dwLink) \
676     ICOM_METHOD3(HRESULT,UpdateLink,              DWORD,dwLink, \
677                 BOOL,fErrorMessage,  BOOL,fReserved) \
678     ICOM_METHOD1(HRESULT,CancelLink,                                                    DWORD,dwLink)
679 #define IOleUILinkContainerW_IMETHODS \
680     IUnknown_IMETHODS \
681     IOleUILinkContainerW_METHODS
682 ICOM_DEFINE(IOleUILinkContainerW, IUnknown)
683 #undef ICOM_INTERFACE
684
685 DECL_WINELIB_TYPE_AW(IOleUILinkContainer)
686 DECL_WINELIB_TYPE_AW(POLEUILINKCONTAINER)
687 DECL_WINELIB_TYPE_AW(LPOLEUILINKCONTAINER)
688
689 #if ICOM_INTERFACE
690 /*** IUnknown methods ***/
691 #define IOleUILinkContainer_QueryInterface(p,a,b)          ICOM_CALL2(QueryInterface,p,a,b)
692 #define IOleUILinkContainer_AddRef(p)                      ICOM_CALL (AddRef,p)
693 #define IOleUILinkContainer_Release(p)                     ICOM_CALL (Release,p)
694 /*** IOleUILinkContainer methods ***/
695 #define IOleUILinkContainer_GetNextLink(p,a)               ICOM_CALL1(GetNextLink,p,a)
696 #define IOleUILinkContainer_SetLinkUpdateOptions(p,a,b)    ICOM_CALL2(SetLinkUpdateOptions,p,a,b)
697 #define IOleUILinkContainer_GetLinkUpdateOptions(p,a,b)    ICOM_CALL2(GetLinkUpdateOptions,p,a,b)
698 #define IOleUILinkContainer_SetLinkSource(p,a,b,c,d,e)     ICOM_CALL5(SetLinkSource,p,a,b,c,d,e)
699 #define IOleUILinkContainer_GetLinkSource(p,a,b,c,d,e,f,g) ICOM_CALL7(GetLinkSource,p,a,b,c,d,e,f,g)
700 #define IOleUILinkContainer_OpenLinkSource(p,a)            ICOM_CALL1(OpenLinkSource,p,a)
701 #define IOleUILinkContainer_UpdateLink(p,a,b,c)            ICOM_CALL3(UpdateLink,p,a,b,c)
702 #define IOleUILinkContainer_CancelLink(p,a)                ICOM_CALL1(CancelLink,p,a)
703 #endif
704
705
706 /*****************************************************************************
707  * IOleUILinkInfo interface
708  */
709 #define ICOM_INTERFACE   IOleUILinkInfoA
710 #define IOleUILinkInfoA_METHODS \
711     ICOM_METHOD2(HRESULT,GetLastUpdate,           DWORD,dwLink,  FILETIME*,lpLastUpdate)
712 #define IOleUILinkInfoA_IMETHODS \
713     IOleUILinkContainerA_IMETHODS \
714     IOleUILinkInfoA_METHODS
715 ICOM_DEFINE(IOleUILinkInfoA, IOleUILinkContainerA)
716 #undef ICOM_INTERFACE
717
718 #define ICOM_INTERFACE   IOleUILinkInfoW
719 #define IOleUILinkInfoW_METHODS \
720     ICOM_METHOD2(HRESULT,GetLastUpdate,           DWORD,dwLink,  FILETIME*,lpLastUpdate)
721 #define IOleUILinkInfoW_IMETHODS \
722     IOleUILinkContainerW_IMETHODS \
723     IOleUILinkInfoW_METHODS
724 ICOM_DEFINE(IOleUILinkInfoW, IOleUILinkContainerW)
725 #undef  ICOM_INTERFACE
726
727 DECL_WINELIB_TYPE_AW(IOleUILinkInfo)
728 DECL_WINELIB_TYPE_AW(POLEUILINKINFO)
729 DECL_WINELIB_TYPE_AW(LPOLEUILINKINFO)
730
731 /*** IUnknown methods ***/
732 #define IOleUILinkInfo_QueryInterface(p,a,b)          ICOM_CALL2(QueryInterface,p,a,b)
733 #define IOleUILinkInfo_AddRef(p)                      ICOM_CALL (AddRef,p)
734 #define IOleUILinkInfo_Release(p)                     ICOM_CALL (Release,p)
735 /*** IOleUILinkContainer methods ***/
736 #define IOleUILinkInfo_GetNextLink(p,a)               ICOM_CALL1(GetNextLink,p,a)
737 #define IOleUILinkInfo_SetLinkUpdateOptions(p,a,b)    ICOM_CALL2(SetLinkUpdateOptions,p,a,b)
738 #define IOleUILinkInfo_GetLinkUpdateOptions(p,a,b)    ICOM_CALL2(GetLinkUpdateOptions,p,a,b)
739 #define IOleUILinkInfo_SetLinkSource(p,a,b,c,d,e)     ICOM_CALL5(SetLinkSource,p,a,b,c,d,e)
740 #define IOleUILinkInfo_GetLinkSource(p,a,b,c,d,e,f,g) ICOM_CALL7(GetLinkSource,p,a,b,c,d,e,f,g)
741 #define IOleUILinkInfo_OpenLinkSource(p,a)            ICOM_CALL1(OpenLinkSource,p,a)
742 #define IOleUILinkInfo_UpdateLink(p,a,b,c)            ICOM_CALL3(UpdateLink,p,a,b,c)
743 #define IOleUILinkInfo_CancelLink(p,a)                ICOM_CALL1(CancelLink,p,a)
744 /*** IOleUILinkInfo methods ***/
745 #define IOleUILinkInfo_GetLastUpdate(p,a,b)           ICOM_CALL2(GetLastUpdate,p,a,b)
746
747
748 /*****************************************************************************
749  * IOleUIObjInfo interface
750  */
751 #define ICOM_INTERFACE   IOleUIObjInfoA
752 #define IOleUIObjInfoA_METHODS \
753     ICOM_METHOD6(HRESULT,GetObjectInfo,            DWORD,dwObject, DWORD*,lpdwObjSize, LPSTR*,lplpszLabel, \
754                 LPSTR*,lplpszType, LPSTR*,lplpszShortType, LPSTR*,lplpszLocation) \
755     ICOM_METHOD6(HRESULT,GetConvertInfo,           DWORD,dwObject, CLSID*,lpClassID, WORD*,lpwFormat, \
756                 CLSID*,lpConvertDefaultClassID, LPCLSID*,lplpClsidExclude, UINT*,lpcClsidExclude) \
757     ICOM_METHOD2(HRESULT,ConvertObject,            DWORD,dwObject,  REFCLSID,clsidNew) \
758     ICOM_METHOD4(HRESULT,GetViewInfo,              DWORD,dwObject, \
759                 HGLOBAL*,phMetaPict,  DWORD*,pdvAspect,  INT*,pnCurrentScale) \
760     ICOM_METHOD5(HRESULT,SetViewInfo,              DWORD,dwObject, \
761                 HGLOBAL,hMetaPict,  DWORD,dvAspect, \
762                 INT,nCurrentScale,  BOOL,bRelativeToOrig)
763 #define IOleUIObjInfoA_IMETHODS \
764     IUnknown_IMETHODS \
765     IOleUIObjInfoA_METHODS
766 ICOM_DEFINE(IOleUIObjInfoA, IUnknown)
767 #undef ICOM_INTERFACE
768
769 #define ICOM_INTERFACE   IOleUIObjInfoW
770 #define IOleUIObjInfoW_METHODS \
771     ICOM_METHOD6(HRESULT,GetObjectInfo,            DWORD,dwObject, DWORD*,lpdwObjSize, LPWSTR*,lplpszLabel, \
772                 LPWSTR*,lplpszType,  LPWSTR*,lplpszShortType,  LPWSTR*,lplpszLocation) \
773     ICOM_METHOD6(HRESULT,GetConvertInfo,           DWORD,dwObject, CLSID*,lpClassID, WORD*,lpwFormat, \
774                 CLSID*,lpConvertDefaultClassID, LPCLSID*,lplpClsidExclude, UINT*,lpcClsidExclude) \
775     ICOM_METHOD2(HRESULT,ConvertObject,            DWORD,dwObject,  REFCLSID,clsidNew) \
776     ICOM_METHOD4(HRESULT,GetViewInfo,              DWORD,dwObject, \
777                 HGLOBAL*,phMetaPict,  DWORD*,pdvAspect,  INT*,pnCurrentScale) \
778     ICOM_METHOD5(HRESULT,SetViewInfo,              DWORD,dwObject, \
779                 HGLOBAL,hMetaPict,  DWORD,dvAspect, \
780                 INT,nCurrentScale,  BOOL,bRelativeToOrig)
781 #define IOleUIObjInfoW_IMETHODS \
782     IUnknown_IMETHODS \
783     IOleUIObjInfoW_METHODS
784 ICOM_DEFINE(IOleUIObjInfoW, IUnknown)
785 #undef ICOM_INTERFACE
786
787 DECL_WINELIB_TYPE_AW(IOleUIObjInfo)
788 DECL_WINELIB_TYPE_AW(POLEUIOBJINFO)
789 DECL_WINELIB_TYPE_AW(LPOLEUIOBJINFO)
790
791 /*** IUnknown methods ***/
792 #define IOleUIObjInfo_QueryInterface(p,a,b)            ICOM_CALL2(QueryInterface,p,a,b)
793 #define IOleUIObjInfo_AddRef(p)                        ICOM_CALL (AddRef,p)
794 #define IOleUIObjInfo_Release(p)                       ICOM_CALL (Release,p)
795 /*** IOleUIObjInfo methods ***/
796 #define IOleUIObjInfo_GetObjectInfo(p,a,b,c,d,e,f)     ICOM_CALL6(GetObjectInfo,p,a,b,c,d,e,f)
797 #define IOleUIObjInfo_GetConvertInfo(p,a,b,c,d,e,f)    ICOM_CALL6(GetConvertInfo,p,a,b,c,d,e,f)
798 #define IOleUIObjInfo_ConvertObject(p,a,b)             ICOM_CALL2(ConvertObject,p,a,b)
799 #define IOleUIObjInfo_GetViewInfo(p,a,b,c,d)           ICOM_CALL4(GetViewInfo,p,a,b,c,d)
800 #define IOleUIObjInfo_SetViewInfo(p,a,b,c,d,e)         ICOM_CALL5(SetViewInfo,p,a,b,c,d,e)
801
802 UINT WINAPI  OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
803 UINT WINAPI  OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
804 #define      OleUIInsertObject WINELIB_NAME_AW(OleUIInsertObject)
805 UINT WINAPI  OleUIConvertA(LPOLEUICONVERTA);
806 UINT WINAPI  OleUIConvertW(LPOLEUICONVERTW);
807 #define      OleUIConvert WINELIB_NAME_AW(OleUIConvert)
808 UINT WINAPI  OleUIChangeIconA(LPOLEUICHANGEICONA);
809 UINT WINAPI  OleUIChangeIconW(LPOLEUICHANGEICONW);
810 #define      OleUIChangeIcon WINELIB_NAME_AW(OleUIChangeIcon)
811 UINT WINAPI  OleUIBusyA(LPOLEUIBUSYA);
812 UINT WINAPI  OleUIBusyW(LPOLEUIBUSYW);
813 #define      OleUIBusy WINELIB_NAME_AW(OleUIBusy)
814 UINT WINAPI  OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA);
815 UINT WINAPI  OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW);
816 #define      OleUIObjectProperties WINELIB_NAME_AW(OleUIObjectProperties)
817 UINT WINAPI  OleUIChangeSourceW(LPOLEUICHANGESOURCEW);
818 UINT WINAPI  OleUIChangeSourceA(LPOLEUICHANGESOURCEA);
819 #define      OleUIChangeSource WINELIB_NAME_AW(OleUIChangeSource)
820 UINT WINAPI  OleUIEditLinksA(LPOLEUIEDITLINKSA lpOleUIEditLinks);
821 UINT WINAPI  OleUIEditLinksW(LPOLEUIEDITLINKSW lpOleUIEditLinks);
822 #define      OleUIEditLinks WINELIB_NAME_AW(OleUIEditLinks)
823 BOOL WINAPI  OleUIUpdateLinksA(LPOLEUILINKCONTAINERA lpOleUILinkCntr, HWND hwndParent, LPSTR lpszTitle, INT cLinks);
824 BOOL WINAPI  OleUIUpdateLinksW(LPOLEUILINKCONTAINERW lpOleUILinkCntr, HWND hwndParent, LPWSTR lpszTitle, INT cLinks);
825 #define      OleUIUpdateLinks WINELIB_NAME_AW(OleUIUpdateLinks)
826 BOOL WINAPI  OleUIAddVerbMenuA(LPOLEOBJECT lpOleObj, LPCSTR lpszShortType, HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
827   BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
828 BOOL WINAPI  OleUIAddVerbMenuW(LPOLEOBJECT lpOleObj, LPCWSTR lpszShortType, HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
829   BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
830 #define      OleUIAddVerbMenu WINELIB_NAME_AW(OleUIAddVerbMenu)
831 UINT WINAPI  OleUIPasteSpecialA(LPOLEUIPASTESPECIALA lpOleUIPasteSpecial);
832 UINT WINAPI  OleUIPasteSpecialW(LPOLEUIPASTESPECIALW lpOleUIPasteSpecial);
833 #define      OleUIPasteSpecial WINELIB_NAME_AW(OleUIPasteSpecial)
834
835
836 #ifdef __cplusplus
837 } /* Extern "C" */
838 #endif
839
840
841 #endif  /* __WINE_OLEDLG_H */
842
843
844
845
846