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