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