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