Release 20040914.
[wine/multimedia.git] / include / oledlg.h
blobc5a88e5d8bd8692a49d771b0d6f7a73cbd3dffc6
1 /*
2 * Declarations for OLEDLG
4 * Copyright (C) the Wine project
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.
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.
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
21 #ifndef __WINE_OLEDLG_H
22 #define __WINE_OLEDLG_H
24 #include <commdlg.h>
25 #include <prsht.h>
26 #include <ole2.h>
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
33 typedef struct IOleUILinkContainerA IOleUILinkContainerA, *POLEUILINKCONTAINERA, *LPOLEUILINKCONTAINERA;
34 typedef struct IOleUILinkContainerW IOleUILinkContainerW, *POLEUILINKCONTAINERW, *LPOLEUILINKCONTAINERW;
36 typedef struct IOleUILinkInfoA IOleUILinkInfoA, *POLEUILINKINFOA, *LPOLEUILINKINFOA;
37 typedef struct IOleUILinkInfoW IOleUILinkInfoW, *POLEUILINKINFOW, *LPOLEUILINKINFOW;
39 typedef struct IOleUIObjInfoA IOleUIObjInfoA, *POLEUIOBJINFOA, *LPOLEUIOBJINFOA;
40 typedef struct IOleUIObjInfoW IOleUIObjInfoW, *POLEUIOBJINFOW, *LPOLEUIOBJINFOW;
42 #define IDC_OLEUIHELP 99
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
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
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
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
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
90 #define BZ_DISABLECANCELBUTTON 0x00000001L
91 #define BZ_DISABLESWITCHTOBUTTON 0x00000002L
92 #define BZ_DISABLERETRYBUTTON 0x00000004L
93 #define BZ_NOTRESPONDINGDIALOG 0x00000008L
95 #define OLEUI_ERR_STANDARDMAX 116
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)
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 */
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
126 #define OPF_OBJECTISLINK 0x00000001L
127 #define OPF_NOFILLDEFAULT 0x00000002L
128 #define OPF_SHOWHELP 0x00000004L
129 #define OPF_DISABLECONVERT 0x00000008L
131 typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
133 /*****************************************************************************
134 * INSERT OBJECT DIALOG
136 typedef struct tagOLEUIINSERTOBJECTA
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;
162 typedef struct tagOLEUIINSERTOBJECTW
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;
188 DECL_WINELIB_TYPE_AW(OLEUIINSERTOBJECT)
189 DECL_WINELIB_TYPE_AW(POLEUIINSERTOBJECT)
190 DECL_WINELIB_TYPE_AW(LPOLEUIINSERTOBJECT)
193 /*****************************************************************************
194 * CONVERT DIALOG
196 typedef struct tagOLEUICONVERTA
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;
222 typedef struct tagOLEUICONVERTW
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;
248 DECL_WINELIB_TYPE_AW(OLEUICONVERT)
249 DECL_WINELIB_TYPE_AW(POLEUICONVERT)
250 DECL_WINELIB_TYPE_AW(LPOLEUICONVERT)
252 /*****************************************************************************
253 * CHANGE ICON DIALOG
255 typedef struct tagOLEUICHANGEICONA
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;
272 typedef struct tagOLEUICHANGEICONW
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;
289 DECL_WINELIB_TYPE_AW(OLEUICHANGEICON)
290 DECL_WINELIB_TYPE_AW(POLEUICHANGEICON)
291 DECL_WINELIB_TYPE_AW(LPOLEUICHANGEICON)
294 /*****************************************************************************
295 * PASTE SPECIAL DIALOG
298 typedef enum tagOLEUIPASTEFLAG
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;
314 typedef struct tagOLEUIPASTEENTRYA
316 FORMATETC fmtetc;
317 LPCSTR lpstrFormatName;
318 LPCSTR lpstrResultText;
319 DWORD dwFlags;
320 DWORD dwScratchSpace;
321 } OLEUIPASTEENTRYA, *POLEUIPASTEENTRYA, *LPOLEUIPASTEENTRYA;
323 typedef struct tagOLEUIPASTEENTRYW
325 FORMATETC fmtetc;
326 LPCWSTR lpstrFormatName;
327 LPCWSTR lpstrResultText;
328 DWORD dwFlags;
329 DWORD dwScratchSpace;
330 } OLEUIPASTEENTRYW, *POLEUIPASTEENTRYW, *LPOLEUIPASTEENTRYW;
332 DECL_WINELIB_TYPE_AW(OLEUIPASTEENTRY)
333 DECL_WINELIB_TYPE_AW(POLEUIPASTEENTRY)
334 DECL_WINELIB_TYPE_AW(LPOLEUIPASTEENTRY)
336 typedef struct tagOLEUIPASTESPECIALA
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;
360 typedef struct tagOLEUIPASTESPECIALW
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;
384 DECL_WINELIB_TYPE_AW(OLEUIPASTESPECIAL)
385 DECL_WINELIB_TYPE_AW(POLEUIPASTESPECIAL)
386 DECL_WINELIB_TYPE_AW(LPOLEUIPASTESPECIAL)
388 #define PSF_SHOWHELP 0x00000001L
389 #define PSF_SELECTPASTE 0x00000002L
390 #define PSF_SELECTPASTELINK 0x00000004L
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
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)
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
410 typedef struct tagOLEUIEDITLINKSW
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;
424 typedef struct tagOLEUIEDITLINKSA
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;
438 DECL_WINELIB_TYPE_AW(OLEUIEDITLINKS)
439 DECL_WINELIB_TYPE_AW(POLEUIEDITLINKS)
440 DECL_WINELIB_TYPE_AW(LPOLEUIEDITLINKS)
443 /***********************************************************************************
444 * BUSY DIALOG
446 typedef struct tagOLEUIBUSYA
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;
461 typedef struct tagOLEUIBUSYW
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;
476 DECL_WINELIB_TYPE_AW(OLEUIBUSY)
477 DECL_WINELIB_TYPE_AW(POLEUIBUSY)
478 DECL_WINELIB_TYPE_AW(LPOLEUIBUSY)
481 struct tagOLEUIOBJECTPROPSW;
482 struct tagOLEUIOBJECTPROPSA;
484 typedef struct tagOLEUIGNRLPROPSA
486 DWORD cbStruct;
487 DWORD dwFlags;
488 DWORD dwReserved1[2];
489 LPFNOLEUIHOOK lpfnHook;
490 LPARAM lCustData;
491 DWORD dwReserved2[3];
492 struct tagOLEUIOBJECTPROPSA* lpOP;
494 } OLEUIGNRLPROPSA, *POLEUIGNRLPROPSA, *LPOLEUIGNRLPROPSA;
496 typedef struct tagOLEUIGNRLPROPSW
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;
507 DECL_WINELIB_TYPE_AW(OLEUIGNRLPROPS)
508 DECL_WINELIB_TYPE_AW(POLEUIGNRLPROPS)
509 DECL_WINELIB_TYPE_AW(LPOLEUIGNRLPROPS)
511 typedef struct tagOLEUIVIEWPROPSA
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;
524 typedef struct tagOLEUIVIEWPROPSW
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;
537 DECL_WINELIB_TYPE_AW(OLEUIVIEWPROPS)
538 DECL_WINELIB_TYPE_AW(POLEUIVIEWPROPS)
539 DECL_WINELIB_TYPE_AW(LPOLEUIVIEWPROPS)
542 #define VPF_SELECTRELATIVE 0x00000001L
543 #define VPF_DISABLERELATIVE 0x00000002L
544 #define VPF_DISABLESCALE 0x00000004L
546 typedef struct tagOLEUILINKPROPSA
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;
557 typedef struct tagOLEUILINKPROPSW
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;
568 DECL_WINELIB_TYPE_AW(OLEUILINKPROPS)
569 DECL_WINELIB_TYPE_AW(POLEUILINKPROPS)
570 DECL_WINELIB_TYPE_AW(LPOLEUILINKPROPS)
572 typedef struct tagOLEUIOBJECTPROPSA
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;
586 typedef struct tagOLEUIOBJECTPROPSW
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;
600 DECL_WINELIB_TYPE_AW(OLEUIOBJECTPROPS)
601 DECL_WINELIB_TYPE_AW(POLEUIOBJECTPROPS)
602 DECL_WINELIB_TYPE_AW(LPOLEUIOBJECTPROPS)
604 /************************************************************************************
605 * CHANGE SOURCE DIALOG
609 typedef struct tagOLEUICHANGESOURCEW
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;
631 typedef struct tagOLEUICHANGESOURCEA
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;
653 DECL_WINELIB_TYPE_AW(OLEUICHANGESOURCE)
654 DECL_WINELIB_TYPE_AW(POLEUICHANGESOURCE)
655 DECL_WINELIB_TYPE_AW(LPOLEUICHANGESOURCE)
658 /*****************************************************************************
659 * IOleUILinkContainer interface
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 DECLARE_INTERFACE_(IOleUILinkContainerA, IUnknown) { IOleUILinkContainerA_METHODS };
676 #undef INTERFACE
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 DECLARE_INTERFACE_(IOleUILinkContainerW, IUnknown) { IOleUILinkContainerW_METHODS };
693 #undef INTERFACE
695 DECL_WINELIB_TYPE_AW(IOleUILinkContainer)
696 DECL_WINELIB_TYPE_AW(POLEUILINKCONTAINER)
697 DECL_WINELIB_TYPE_AW(LPOLEUILINKCONTAINER)
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
716 /*****************************************************************************
717 * IOleUILinkInfo interface
719 #define INTERFACE IOleUILinkInfoA
720 #define IOleUILinkInfoA_METHODS \
721 IOleUILinkContainerA_METHODS \
722 STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink, FILETIME *lpLastUpdate) PURE;
723 DECLARE_INTERFACE_(IOleUILinkInfoA, IOleUILinkContainerA) { IOleUILinkInfoA_METHODS };
724 #undef INTERFACE
726 #define INTERFACE IOleUILinkInfoW
727 #define IOleUILinkInfoW_METHODS \
728 IOleUILinkContainerW_METHODS \
729 STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink, FILETIME *lpLastUpdate) PURE;
730 DECLARE_INTERFACE_(IOleUILinkInfoW, IOleUILinkContainerW) { IOleUILinkInfoW_METHODS };
731 #undef INTERFACE
733 DECL_WINELIB_TYPE_AW(IOleUILinkInfo)
734 DECL_WINELIB_TYPE_AW(POLEUILINKINFO)
735 DECL_WINELIB_TYPE_AW(LPOLEUILINKINFO)
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
756 /*****************************************************************************
757 * IOleUIObjInfo interface
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 DECLARE_INTERFACE_(IOleUIObjInfoA, IUnknown) { IOleUIObjInfoA_METHODS };
771 #undef INTERFACE
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 DECLARE_INTERFACE_(IOleUIObjInfoW, IUnknown) { IOleUIObjInfoW_METHODS };
785 #undef INTERFACE
787 DECL_WINELIB_TYPE_AW(IOleUIObjInfo)
788 DECL_WINELIB_TYPE_AW(POLEUIOBJINFO)
789 DECL_WINELIB_TYPE_AW(LPOLEUIOBJINFO)
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
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)
840 #ifdef __cplusplus
841 } /* Extern "C" */
842 #endif
845 #endif /* __WINE_OLEDLG_H */