1 /*
2 * Declarations for OLEDLG
3 *
4 * Copyright (C) the Wine project
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21 #ifndef __WINE_OLEDLG_H
22 #define __WINE_OLEDLG_H
23
24 #ifndef __WINESRC__
25 # include <windows.h>
26 #endif
27 #include <shellapi.h>
28 #include <commdlg.h>
29 #include <ole2.h>
30 #ifndef __WINESRC__
31 # include <string.h>
32 # include <tchar.h>
33 #endif
34 #include <dlgs.h>
35 #include <prsht.h>
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41
42 typedef struct IOleUILinkContainerA *POLEUILINKCONTAINERA, *LPOLEUILINKCONTAINERA;
43 typedef struct IOleUILinkContainerW *POLEUILINKCONTAINERW, *LPOLEUILINKCONTAINERW;
44
45 typedef struct IOleUILinkInfoA *POLEUILINKINFOA, *LPOLEUILINKINFOA;
46 typedef struct IOleUILinkInfoW *POLEUILINKINFOW, *LPOLEUILINKINFOW;
47
48 typedef struct IOleUIObjInfoA *POLEUIOBJINFOA, *LPOLEUIOBJINFOA;
49 typedef struct IOleUIObjInfoW *POLEUIOBJINFOW, *LPOLEUIOBJINFOW;
50
51 #define IDC_OLEUIHELP 99
52
53
54 #define OLEUI_ERR_STANDARDMAX 116
55
56 #define OLEUI_BZERR_HTASKINVALID (OLEUI_ERR_STANDARDMAX+0)
57 #define OLEUI_BZ_SWITCHTOSELECTED (OLEUI_ERR_STANDARDMAX+1)
58 #define OLEUI_BZ_RETRYSELECTED (OLEUI_ERR_STANDARDMAX+2)
59 #define OLEUI_BZ_CALLUNBLOCKED (OLEUI_ERR_STANDARDMAX+3)
60
61 #define OLEUI_FALSE 0
62 #define OLEUI_SUCCESS 1 /* Same as OLEUI_OK */
63 #define OLEUI_OK 1 /* OK button pressed */
64 #define OLEUI_CANCEL 2 /* Cancel button pressed */
65
66 #define OLEUI_ERR_STANDARDMIN 100
67 #define OLEUI_ERR_OLEMEMALLOC 100
68 #define OLEUI_ERR_STRUCTURENULL 101
69 #define OLEUI_ERR_STRUCTUREINVALID 102
70 #define OLEUI_ERR_CBSTRUCTINCORRECT 103
71 #define OLEUI_ERR_HWNDOWNERINVALID 104
72 #define OLEUI_ERR_LPSZCAPTIONINVALID 105
73 #define OLEUI_ERR_LPFNHOOKINVALID 106
74 #define OLEUI_ERR_HINSTANCEINVALID 107
75 #define OLEUI_ERR_LPSZTEMPLATEINVALID 108
76 #define OLEUI_ERR_HRESOURCEINVALID 109
77 #define OLEUI_ERR_FINDTEMPLATEFAILURE 110
78 #define OLEUI_ERR_LOADTEMPLATEFAILURE 111
79 #define OLEUI_ERR_DIALOGFAILURE 112
80 #define OLEUI_ERR_LOCALMEMALLOC 113
81 #define OLEUI_ERR_GLOBALMEMALLOC 114
82 #define OLEUI_ERR_LOADSTRING 115
83 #define OLEUI_ERR_STANDARDMAX 116
84
85 typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
86
87 /*****************************************************************************
88 * Registered Message Names
89 */
90 #define SZOLEUI_MSG_HELPA "OLEUI_MSG_HELP"
91 #define SZOLEUI_MSG_ENDDIALOGA "OLEUI_MSG_ENDDIALOG"
92 #define SZOLEUI_MSG_BROWSEA "OLEUI_MSG_BROWSE"
93 #define SZOLEUI_MSG_CHANGEICONA "OLEUI_MSG_CHANGEICON"
94 #define SZOLEUI_MSG_CLOSEBUSYDIALOGA "OLEUI_MSG_CLOSEBUSYDIALOG"
95 #define SZOLEUI_MSG_CONVERTA "OLEUI_MSG_CONVERT"
96 #define SZOLEUI_MSG_CHANGESOURCEA "OLEUI_MSG_CHANGESOURCE"
97 #define SZOLEUI_MSG_ADDCONTROLA "OLEUI_MSG_ADDCONTROL"
98 #define SZOLEUI_MSG_BROWSE_OFNA "OLEUI_MSG_BROWSE_OFN"
99 #if defined(__GNUC__)
100 # define SZOLEUI_MSG_HELPW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','H','E','L','P',0 }
101 # define SZOLEUI_MSG_ENDDIALOGW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','E','N','D','D','I','A','L','O','G',0 }
102 # define SZOLEUI_MSG_BROWSEW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E',0 }
103 # define SZOLEUI_MSG_CHANGEICONW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','H','A','N','G','E','I','C','O','N',0 }
104 # define SZOLEUI_MSG_CLOSEBUSYDIALOGW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','L','O','S','E','B','U','S','Y','D','I','A','L','O','G',0 }
105 # define SZOLEUI_MSG_CONVERTW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','O','N','V','E','R','T',0 }
106 # define SZOLEUI_MSG_CHANGESOURCEW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','H','A','N','G','E','S','O','U','R','C','E',0 }
107 # define SZOLEUI_MSG_ADDCONTROLW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','A','D','D','C','O','N','T','R','O','L',0 }
108 # define SZOLEUI_MSG_BROWSE_OFNW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E','_','O','F','N',0 }
109 #elif defined(_MSC_VER)
110 # define SZOLEUI_MSG_HELPW L"OLEUI_MSG_HELP"
111 # define SZOLEUI_MSG_ENDDIALOGW L"OLEUI_MSG_ENDDIALOG"
112 # define SZOLEUI_MSG_BROWSEW L"OLEUI_MSG_BROWSE"
113 # define SZOLEUI_MSG_CHANGEICONW L"OLEUI_MSG_CHANGEICON"
114 # define SZOLEUI_MSG_CLOSEBUSYDIALOGW L"OLEUI_MSG_CLOSEBUSYDIALOG"
115 # define SZOLEUI_MSG_CONVERTW L"OLEUI_MSG_CONVERT"
116 # define SZOLEUI_MSG_CHANGESOURCEW L"OLEUI_MSG_CHANGESOURCE"
117 # define SZOLEUI_MSG_ADDCONTROLW L"OLEUI_MSG_ADDCONTROL"
118 # define SZOLEUI_MSG_BROWSE_OFNW L"OLEUI_MSG_BROWSE_OFN"
119 #else
120 static const WCHAR SZOLEUI_MSG_HELPW[] = { 'O','L','E','U','I','_','M','S','G','_','H','E','L','P',0 };
121 static const WCHAR SZOLEUI_MSG_ENDDIALOGW[] = { 'O','L','E','U','I','_','M','S','G','_','E','N','D','D','I','A','L','O','G',0 };
122 static const WCHAR SZOLEUI_MSG_BROWSEW[] = { 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E',0 };
123 static const WCHAR SZOLEUI_MSG_CHANGEICONW[] = { 'O','L','E','U','I','_','M','S','G','_','C','H','A','N','G','E','I','C','O','N',0 };
124 static const WCHAR SZOLEUI_MSG_CLOSEBUSYDIALOGW[] = { 'O','L','E','U','I','_','M','S','G','_','C','L','O','S','E','B','U','S','Y','D','I','A','L','O','G',0 };
125 static const WCHAR SZOLEUI_MSG_CONVERTW[] = { 'O','L','E','U','I','_','M','S','G','_','C','O','N','V','E','R','T',0 };
126 static const WCHAR SZOLEUI_MSG_CHANGESOURCEW[] = { 'O','L','E','U','I','_','M','S','G','_','C','H','A','N','G','E','S','O','U','R','C','E',0 };
127 static const WCHAR SZOLEUI_MSG_ADDCONTROLW[] = { 'O','L','E','U','I','_','M','S','G','_','A','D','D','C','O','N','T','R','O','L',0 };
128 static const WCHAR SZOLEUI_MSG_BROWSE_OFNW[] = { 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E','_','O','F','N',0 };
129 #endif
130 #define SZOLEUI_MSG_HELP WINELIB_NAME_AW(SZOLEUI_MSG_HELP)
131 #define SZOLEUI_MSG_ENDDIALOG WINELIB_NAME_AW(SZOLEUI_MSG_ENDDIALOG)
132 #define SZOLEUI_MSG_BROWSE WINELIB_NAME_AW(SZOLEUI_MSG_BROWSE)
133 #define SZOLEUI_MSG_CHANGEICON WINELIB_NAME_AW(SZOLEUI_MSG_CHANGEICON)
134 #define SZOLEUI_MSG_CLOSEBUSYDIALOG WINELIB_NAME_AW(SZOLEUI_MSG_CLOSEBUSYDIALOG)
135 #define SZOLEUI_MSG_CONVERT WINELIB_NAME_AW(SZOLEUI_MSG_CONVERT)
136 #define SZOLEUI_MSG_CHANGESOURCE WINELIB_NAME_AW(SZOLEUI_MSG_CHANGESOURCE)
137 #define SZOLEUI_MSG_ADDCONTROL WINELIB_NAME_AW(SZOLEUI_MSG_ADDCONTROL)
138 #define SZOLEUI_MSG_BROWSE_OFN WINELIB_NAME_AW(SZOLEUI_MSG_BROWSE_OFN)
139
140
141 /*****************************************************************************
142 * INSERT OBJECT DIALOG
143 */
144 typedef struct tagOLEUIINSERTOBJECTA
145 {
146 DWORD cbStruct;
147 DWORD dwFlags;
148 HWND hWndOwner;
149 LPCSTR lpszCaption;
150 LPFNOLEUIHOOK lpfnHook;
151 LPARAM lCustData;
152 HINSTANCE hInstance;
153 LPCSTR lpszTemplate;
154 HRSRC hResource;
155 CLSID clsid;
156 LPSTR lpszFile;
157 UINT cchFile;
158 UINT cClsidExclude;
159 LPCLSID lpClsidExclude;
160 IID iid;
161 DWORD oleRender;
162 LPFORMATETC lpFormatEtc;
163 LPOLECLIENTSITE lpIOleClientSite;
164 LPSTORAGE lpIStorage;
165 LPVOID *ppvObj;
166 SCODE sc;
167 HGLOBAL hMetaPict;
168 } OLEUIINSERTOBJECTA, *POLEUIINSERTOBJECTA, *LPOLEUIINSERTOBJECTA;
169
170 typedef struct tagOLEUIINSERTOBJECTW
171 {
172 DWORD cbStruct;
173 DWORD dwFlags;
174 HWND hWndOwner;
175 LPCWSTR lpszCaption;
176 LPFNOLEUIHOOK lpfnHook;
177 LPARAM lCustData;
178 HINSTANCE hInstance;
179 LPCWSTR lpszTemplate;
180 HRSRC hResource;
181 CLSID clsid;
182 LPWSTR lpszFile;
183 UINT cchFile;
184 UINT cClsidExclude;
185 LPCLSID lpClsidExclude;
186 IID iid;
187 DWORD oleRender;
188 LPFORMATETC lpFormatEtc;
189 LPOLECLIENTSITE lpIOleClientSite;
190 LPSTORAGE lpIStorage;
191 LPVOID *ppvObj;
192 SCODE sc;
193 HGLOBAL hMetaPict;
194 } OLEUIINSERTOBJECTW, *POLEUIINSERTOBJECTW, *LPOLEUIINSERTOBJECTW;
195
196 DECL_WINELIB_TYPE_AW(OLEUIINSERTOBJECT)
197 DECL_WINELIB_TYPE_AW(POLEUIINSERTOBJECT)
198 DECL_WINELIB_TYPE_AW(LPOLEUIINSERTOBJECT)
199
200 #define IOF_SHOWHELP 0x00000001L
201 #define IOF_SELECTCREATENEW 0x00000002L
202 #define IOF_SELECTCREATEFROMFILE 0x00000004L
203 #define IOF_CHECKLINK 0x00000008L
204 #define IOF_CHECKDISPLAYASICON 0x00000010L
205 #define IOF_CREATENEWOBJECT 0x00000020L
206 #define IOF_CREATEFILEOBJECT 0x00000040L
207 #define IOF_CREATELINKOBJECT 0x00000080L
208 #define IOF_DISABLELINK 0x00000100L
209 #define IOF_VERIFYSERVERSEXIST 0x00000200L
210 #define IOF_DISABLEDISPLAYASICON 0x00000400L
211 #define IOF_HIDECHANGEICON 0x00000800L
212 #define IOF_SHOWINSERTCONTROL 0x00001000L
213 #define IOF_SELECTCREATECONTROL 0x00002000L
214
215 /*****************************************************************************
216 * CONVERT DIALOG
217 */
218 typedef struct tagOLEUICONVERTA
219 {
220 DWORD cbStruct;
221 DWORD dwFlags;
222 HWND hWndOwner;
223 LPCSTR lpszCaption;
224 LPFNOLEUIHOOK lpfnHook;
225 LPARAM lCustData;
226 HINSTANCE hInstance;
227 LPCSTR lpszTemplate;
228 HRSRC hResource;
229 CLSID clsid;
230 CLSID clsidConvertDefault;
231 CLSID clsidActivateDefault;
232 CLSID clsidNew;
233 DWORD dvAspect;
234 WORD wFormat;
235 BOOL fIsLinkedObject;
236 HGLOBAL hMetaPict;
237 LPSTR lpszUserType;
238 BOOL fObjectsIconChanged;
239 LPSTR lpszDefLabel;
240 UINT cClsidExclude;
241 LPCLSID lpClsidExclude;
242 } OLEUICONVERTA, *POLEUICONVERTA, *LPOLEUICONVERTA;
243
244 typedef struct tagOLEUICONVERTW
245 {
246 DWORD cbStruct;
247 DWORD dwFlags;
248 HWND hWndOwner;
249 LPCWSTR lpszCaption;
250 LPFNOLEUIHOOK lpfnHook;
251 LPARAM lCustData;
252 HINSTANCE hInstance;
253 LPCWSTR lpszTemplate;
254 HRSRC hResource;
255 CLSID clsid;
256 CLSID clsidConvertDefault;
257 CLSID clsidActivateDefault;
258 CLSID clsidNew;
259 DWORD dvAspect;
260 WORD wFormat;
261 BOOL fIsLinkedObject;
262 HGLOBAL hMetaPict;
263 LPWSTR lpszUserType;
264 BOOL fObjectsIconChanged;
265 LPWSTR lpszDefLabel;
266 UINT cClsidExclude;
267 LPCLSID lpClsidExclude;
268 } OLEUICONVERTW, *POLEUICONVERTW, *LPOLEUICONVERTW;
269
270 DECL_WINELIB_TYPE_AW(OLEUICONVERT)
271 DECL_WINELIB_TYPE_AW(POLEUICONVERT)
272 DECL_WINELIB_TYPE_AW(LPOLEUICONVERT)
273
274 #define CF_SHOWHELPBUTTON 0x00000001L
275 #define CF_SETCONVERTDEFAULT 0x00000002L
276 #define CF_SETACTIVATEDEFAULT 0x00000004L
277 #define CF_SELECTCONVERTTO 0x00000008L
278 #define CF_SELECTACTIVATEAS 0x00000010L
279 #define CF_DISABLEDISPLAYASICON 0x00000020L
280 #define CF_DISABLEACTIVATEAS 0x00000040L
281 #define CF_HIDECHANGEICON 0x00000080L
282 #define CF_CONVERTONLY 0x00000100L
283
284 /*****************************************************************************
285 * CHANGE ICON DIALOG
286 */
287 typedef struct tagOLEUICHANGEICONA
288 {
289 DWORD cbStruct;
290 DWORD dwFlags;
291 HWND hWndOwner;
292 LPCSTR lpszCaption;
293 LPFNOLEUIHOOK lpfnHook;
294 LPARAM lCustData;
295 HINSTANCE hInstance;
296 LPCSTR lpszTemplate;
297 HRSRC hResource;
298 HGLOBAL hMetaPict;
299 CLSID clsid;
300 CHAR szIconExe[MAX_PATH];
301 INT cchIconExe;
302 } OLEUICHANGEICONA, *POLEUICHANGEICONA, *LPOLEUICHANGEICONA;
303
304 typedef struct tagOLEUICHANGEICONW
305 {
306 DWORD cbStruct;
307 DWORD dwFlags;
308 HWND hWndOwner;
309 LPCWSTR lpszCaption;
310 LPFNOLEUIHOOK lpfnHook;
311 LPARAM lCustData;
312 HINSTANCE hInstance;
313 LPCWSTR lpszTemplate;
314 HRSRC hResource;
315 HGLOBAL hMetaPict;
316 CLSID clsid;
317 WCHAR szIconExe[MAX_PATH];
318 INT cchIconExe;
319 } OLEUICHANGEICONW, *POLEUICHANGEICONW, *LPOLEUICHANGEICONW;
320
321 DECL_WINELIB_TYPE_AW(OLEUICHANGEICON)
322 DECL_WINELIB_TYPE_AW(POLEUICHANGEICON)
323 DECL_WINELIB_TYPE_AW(LPOLEUICHANGEICON)
324
325
326 #define CIF_SHOWHELP 0x00000001L
327 #define CIF_SELECTCURRENT 0x00000002L
328 #define CIF_SELECTDEFAULT 0x00000004L
329 #define CIF_SELECTFROMFILE 0x00000008L
330 #define CIF_USEICONEXE 0x00000010L
331
332 /*****************************************************************************
333 * PASTE SPECIAL DIALOG
334 */
335
336 typedef enum tagOLEUIPASTEFLAG
337 {
338 OLEUIPASTE_ENABLEICON = 2048,
339 OLEUIPASTE_PASTEONLY = 0,
340 OLEUIPASTE_PASTE = 512,
341 OLEUIPASTE_LINKANYTYPE = 1024,
342 OLEUIPASTE_LINKTYPE1 = 1,
343 OLEUIPASTE_LINKTYPE2 = 2,
344 OLEUIPASTE_LINKTYPE3 = 4,
345 OLEUIPASTE_LINKTYPE4 = 8,
346 OLEUIPASTE_LINKTYPE5 = 16,
347 OLEUIPASTE_LINKTYPE6 = 32,
348 OLEUIPASTE_LINKTYPE7 = 64,
349 OLEUIPASTE_LINKTYPE8 = 128
350 } OLEUIPASTEFLAG;
351
352 typedef struct tagOLEUIPASTEENTRYA
353 {
354 FORMATETC fmtetc;
355 LPCSTR lpstrFormatName;
356 LPCSTR lpstrResultText;
357 DWORD dwFlags;
358 DWORD dwScratchSpace;
359 } OLEUIPASTEENTRYA, *POLEUIPASTEENTRYA, *LPOLEUIPASTEENTRYA;
360
361 typedef struct tagOLEUIPASTEENTRYW
362 {
363 FORMATETC fmtetc;
364 LPCWSTR lpstrFormatName;
365 LPCWSTR lpstrResultText;
366 DWORD dwFlags;
367 DWORD dwScratchSpace;
368 } OLEUIPASTEENTRYW, *POLEUIPASTEENTRYW, *LPOLEUIPASTEENTRYW;
369
370 DECL_WINELIB_TYPE_AW(OLEUIPASTEENTRY)
371 DECL_WINELIB_TYPE_AW(POLEUIPASTEENTRY)
372 DECL_WINELIB_TYPE_AW(LPOLEUIPASTEENTRY)
373
374 typedef struct tagOLEUIPASTESPECIALA
375 {
376 DWORD cbStruct;
377 DWORD dwFlags;
378 HWND hWndOwner;
379 LPCSTR lpszCaption;
380 LPFNOLEUIHOOK lpfnHook;
381 LPARAM lCustData;
382 HINSTANCE hInstance;
383 LPCSTR lpszTemplate;
384 HRSRC hResource;
385 LPDATAOBJECT lpSrcDataObj;
386 LPOLEUIPASTEENTRYA arrPasteEntries;
387 INT cPasteEntries;
388 UINT* arrLinkTypes;
389 INT cLinkTypes;
390 UINT cClsidExclude;
391 LPCLSID lpClsidExclude;
392 INT nSelectedIndex;
393 BOOL fLink;
394 HGLOBAL hMetaPict;
395 SIZEL sizel;
396 } OLEUIPASTESPECIALA, *POLEUIPASTESPECIALA, *LPOLEUIPASTESPECIALA;
397
398 typedef struct tagOLEUIPASTESPECIALW
399 {
400 DWORD cbStruct;
401 DWORD dwFlags;
402 HWND hWndOwner;
403 LPCWSTR lpszCaption;
404 LPFNOLEUIHOOK lpfnHook;
405 LPARAM lCustData;
406 HINSTANCE hInstance;
407 LPCWSTR lpszTemplate;
408 HRSRC hResource;
409 LPDATAOBJECT lpSrcDataObj;
410 LPOLEUIPASTEENTRYW arrPasteEntries;
411 INT cPasteEntries;
412 UINT* arrLinkTypes;
413 INT cLinkTypes;
414 UINT cClsidExclude;
415 LPCLSID lpClsidExclude;
416 INT nSelectedIndex;
417 BOOL fLink;
418 HGLOBAL hMetaPict;
419 SIZEL sizel;
420 } OLEUIPASTESPECIALW, *POLEUIPASTESPECIALW, *LPOLEUIPASTESPECIALW;
421
422 DECL_WINELIB_TYPE_AW(OLEUIPASTESPECIAL)
423 DECL_WINELIB_TYPE_AW(POLEUIPASTESPECIAL)
424 DECL_WINELIB_TYPE_AW(LPOLEUIPASTESPECIAL)
425
426 #define PS_MAXLINKTYPES 8
427
428 #define PSF_SHOWHELP 0x00000001L
429 #define PSF_SELECTPASTE 0x00000002L
430 #define PSF_SELECTPASTELINK 0x00000004L
431
432 #define PSF_CHECKDISPLAYASICON 0x00000008L
433 #define PSF_DISABLEDISPLAYASICON 0x00000010L
434 #define PSF_HIDECHANGEICON 0x00000020L
435 #define PSF_STAYONCLIPBOARDCHANGE 0x00000040L
436 #define PSF_NOREFRESHDATAOBJECT 0x00000080L
437
438 #define OLEUI_IOERR_SRCDATAOBJECTINVALID (OLEUI_ERR_STANDARDMAX+0)
439 #define OLEUI_IOERR_ARRPASTEENTRIESINVALID (OLEUI_ERR_STANDARDMAX+1)
440 #define OLEUI_IOERR_ARRLINKTYPESINVALID (OLEUI_ERR_STANDARDMAX+2)
441 #define OLEUI_PSERR_CLIPBOARDCHANGED (OLEUI_ERR_STANDARDMAX+3)
442 #define OLEUI_PSERR_GETCLIPBOARDFAILED (OLEUI_ERR_STANDARDMAX+4)
443
444 /* Paste Special dialog resource ids */
445 #define IDD_PASTESPECIAL 1003
446 #define IDD_PASTESPECIAL4 1108
447
448 /* Paste Special dialog control ids */
449 #define IDC_PS_PASTE 500
450 #define IDC_PS_PASTELINK 501
451 #define IDC_PS_SOURCETEXT 502
452 #define IDC_PS_PASTELIST 503
453 #define IDC_PS_PASTELINKLIST 504
454 #define IDC_PS_DISPLAYLIST 505
455 #define IDC_PS_DISPLAYASICON 506
456 #define IDC_PS_ICONDISPLAY 507
457 #define IDC_PS_CHANGEICON 508
458 #define IDC_PS_RESULTIMAGE 509
459 #define IDC_PS_RESULTTEXT 510
460
461 /*****************************************************************************
462 * EDIT LINKS DIALOG
463 */
464
465 #define ELF_SHOWHELP 0x00000001L
466 #define ELF_DISABLEUPDATENOW 0x00000002L
467 #define ELF_DISABLEOPENSOURCE 0x00000004L
468 #define ELF_DISABLECHANGESOURCE 0x00000008L
469 #define ELF_DISABLECANCELLINK 0x00000010L
470
471 typedef struct tagOLEUIEDITLINKSW
472 {
473 DWORD cbStruct;
474 DWORD dwFlags;
475 HWND hWndOwner;
476 LPCWSTR lpszCaption;
477 LPFNOLEUIHOOK lpfnHook;
478 LPARAM lCustData;
479 HINSTANCE hInstance;
480 LPCWSTR lpszTemplate;
481 HRSRC hResource;
482 LPOLEUILINKCONTAINERW lpOleUILinkContainer;
483 } OLEUIEDITLINKSW, *POLEUIEDITLINKSW, *LPOLEUIEDITLINKSW;
484
485 typedef struct tagOLEUIEDITLINKSA
486 {
487 DWORD cbStruct;
488 DWORD dwFlags;
489 HWND hWndOwner;
490 LPCSTR lpszCaption;
491 LPFNOLEUIHOOK lpfnHook;
492 LPARAM lCustData;
493 HINSTANCE hInstance;
494 LPCSTR lpszTemplate;
495 HRSRC hResource;
496 LPOLEUILINKCONTAINERA lpOleUILinkContainer;
497 } OLEUIEDITLINKSA, *POLEUIEDITLINKSA, *LPOLEUIEDITLINKSA;
498
499 DECL_WINELIB_TYPE_AW(OLEUIEDITLINKS)
500 DECL_WINELIB_TYPE_AW(POLEUIEDITLINKS)
501 DECL_WINELIB_TYPE_AW(LPOLEUIEDITLINKS)
502
503
504 /***********************************************************************************
505 * BUSY DIALOG
506 */
507 typedef struct tagOLEUIBUSYA
508 {
509 DWORD cbStruct;
510 DWORD dwFlags;
511 HWND hWndOwner;
512 LPCSTR lpszCaption;
513 LPFNOLEUIHOOK lpfnHook;
514 LPARAM lCustData;
515 HINSTANCE hInstance;
516 LPCSTR lpszTemplate;
517 HRSRC hResource;
518 HTASK hTask;
519 HWND* lphWndDialog;
520 } OLEUIBUSYA, *POLEUIBUSYA, *LPOLEUIBUSYA;
521
522 typedef struct tagOLEUIBUSYW
523 {
524 DWORD cbStruct;
525 DWORD dwFlags;
526 HWND hWndOwner;
527 LPCWSTR lpszCaption;
528 LPFNOLEUIHOOK lpfnHook;
529 LPARAM lCustData;
530 HINSTANCE hInstance;
531 LPCWSTR lpszTemplate;
532 HRSRC hResource;
533 HTASK hTask;
534 HWND* lphWndDialog;
535 } OLEUIBUSYW, *POLEUIBUSYW, *LPOLEUIBUSYW;
536
537 DECL_WINELIB_TYPE_AW(OLEUIBUSY)
538 DECL_WINELIB_TYPE_AW(POLEUIBUSY)
539 DECL_WINELIB_TYPE_AW(LPOLEUIBUSY)
540
541
542 #define BZ_DISABLECANCELBUTTON 0x00000001L
543 #define BZ_DISABLESWITCHTOBUTTON 0x00000002L
544 #define BZ_DISABLERETRYBUTTON 0x00000004L
545 #define BZ_NOTRESPONDINGDIALOG 0x00000008L
546
547 /***********************************************************************************
548 * OBJECT PROPERTIES DIALOG
549 */
550
551 struct tagOLEUIOBJECTPROPSW;
552 struct tagOLEUIOBJECTPROPSA;
553
554 typedef struct tagOLEUIGNRLPROPSA
555 {
556 DWORD cbStruct;
557 DWORD dwFlags;
558 DWORD dwReserved1[2];
559 LPFNOLEUIHOOK lpfnHook;
560 LPARAM lCustData;
561 DWORD dwReserved2[3];
562 struct tagOLEUIOBJECTPROPSA* lpOP;
563
564 } OLEUIGNRLPROPSA, *POLEUIGNRLPROPSA, *LPOLEUIGNRLPROPSA;
565
566 typedef struct tagOLEUIGNRLPROPSW
567 {
568 DWORD cbStruct;
569 DWORD dwFlags;
570 DWORD dwReserved1[2];
571 LPFNOLEUIHOOK lpfnHook;
572 LPARAM lCustData;
573 DWORD dwReserved2[3];
574 struct tagOLEUIOBJECTPROPSW* lpOP;
575 } OLEUIGNRLPROPSW, *POLEUIGNRLPROPSW, *LPOLEUIGNRLPROPSW;
576
577 DECL_WINELIB_TYPE_AW(OLEUIGNRLPROPS)
578 DECL_WINELIB_TYPE_AW(POLEUIGNRLPROPS)
579 DECL_WINELIB_TYPE_AW(LPOLEUIGNRLPROPS)
580
581 typedef struct tagOLEUIVIEWPROPSA
582 {
583 DWORD cbStruct;
584 DWORD dwFlags;
585 DWORD dwReserved1[2];
586 LPFNOLEUIHOOK lpfnHook;
587 LPARAM lCustData;
588 DWORD dwReserved2[3];
589 struct tagOLEUIOBJECTPROPSA* lpOP;
590 INT nScaleMin;
591 INT nScaleMax;
592 } OLEUIVIEWPROPSA, *POLEUIVIEWPROPSA, *LPOLEUIVIEWPROPSA;
593
594 typedef struct tagOLEUIVIEWPROPSW
595 {
596 DWORD cbStruct;
597 DWORD dwFlags;
598 DWORD dwReserved1[2];
599 LPFNOLEUIHOOK lpfnHook;
600 LPARAM lCustData;
601 DWORD dwReserved2[3];
602 struct tagOLEUIOBJECTPROPSW* lpOP;
603 INT nScaleMin;
604 INT nScaleMax;
605 } OLEUIVIEWPROPSW, *POLEUIVIEWPROPSW, *LPOLEUIVIEWPROPSW;
606
607 DECL_WINELIB_TYPE_AW(OLEUIVIEWPROPS)
608 DECL_WINELIB_TYPE_AW(POLEUIVIEWPROPS)
609 DECL_WINELIB_TYPE_AW(LPOLEUIVIEWPROPS)
610
611
612 #define VPF_SELECTRELATIVE 0x00000001L
613 #define VPF_DISABLERELATIVE 0x00000002L
614 #define VPF_DISABLESCALE 0x00000004L
615
616 typedef struct tagOLEUILINKPROPSA
617 {
618 DWORD cbStruct;
619 DWORD dwFlags;
620 DWORD dwReserved1[2];
621 LPFNOLEUIHOOK lpfnHook;
622 LPARAM lCustData;
623 DWORD dwReserved2[3];
624 struct tagOLEUIOBJECTPROPSA* lpOP;
625 } OLEUILINKPROPSA, *POLEUILINKPROPSA, *LPOLEUILINKPROPSA;
626
627 typedef struct tagOLEUILINKPROPSW
628 {
629 DWORD cbStruct;
630 DWORD dwFlags;
631 DWORD dwReserved1[2];
632 LPFNOLEUIHOOK lpfnHook;
633 LPARAM lCustData;
634 DWORD dwReserved2[3];
635 struct tagOLEUIOBJECTPROPSW* lpOP;
636 } OLEUILINKPROPSW, *POLEUILINKPROPSW, *LPOLEUILINKPROPSW;
637
638 DECL_WINELIB_TYPE_AW(OLEUILINKPROPS)
639 DECL_WINELIB_TYPE_AW(POLEUILINKPROPS)
640 DECL_WINELIB_TYPE_AW(LPOLEUILINKPROPS)
641
642 typedef struct tagOLEUIOBJECTPROPSA
643 {
644 DWORD cbStruct;
645 DWORD dwFlags;
646 LPPROPSHEETHEADERA lpPS;
647 DWORD dwObject;
648 LPOLEUIOBJINFOA lpObjInfo;
649 DWORD dwLink;
650 LPOLEUILINKINFOA lpLinkInfo;
651 LPOLEUIGNRLPROPSA lpGP;
652 LPOLEUIVIEWPROPSA lpVP;
653 LPOLEUILINKPROPSA lpLP;
654 } OLEUIOBJECTPROPSA, *POLEUIOBJECTPROPSA, *LPOLEUIOBJECTPROPSA;
655
656 typedef struct tagOLEUIOBJECTPROPSW
657 {
658 DWORD cbStruct;
659 DWORD dwFlags;
660 LPPROPSHEETHEADERW lpPS;
661 DWORD dwObject;
662 LPOLEUIOBJINFOW lpObjInfo;
663 DWORD dwLink;
664 LPOLEUILINKINFOW lpLinkInfo;
665 LPOLEUIGNRLPROPSW lpGP;
666 LPOLEUIVIEWPROPSW lpVP;
667 LPOLEUILINKPROPSW lpLP;
668 } OLEUIOBJECTPROPSW, *POLEUIOBJECTPROPSW, *LPOLEUIOBJECTPROPSW;
669
670 DECL_WINELIB_TYPE_AW(OLEUIOBJECTPROPS)
671 DECL_WINELIB_TYPE_AW(POLEUIOBJECTPROPS)
672 DECL_WINELIB_TYPE_AW(LPOLEUIOBJECTPROPS)
673
674 #define OPF_OBJECTISLINK 0x00000001L
675 #define OPF_NOFILLDEFAULT 0x00000002L
676 #define OPF_SHOWHELP 0x00000004L
677 #define OPF_DISABLECONVERT 0x00000008L
678
679
680 /************************************************************************************
681 * CHANGE SOURCE DIALOG
682 */
683
684
685 typedef struct tagOLEUICHANGESOURCEW
686 {
687 DWORD cbStruct;
688 DWORD dwFlags;
689 HWND hWndOwner;
690 LPCWSTR lpszCaption;
691 LPFNOLEUIHOOK lpfnHook;
692 LPARAM lCustData;
693 HINSTANCE hInstance;
694 LPCWSTR lpszTemplate;
695 HRSRC hResource;
696 OPENFILENAMEW*lpOFN;
697 DWORD dwReserved1[4];
698 LPOLEUILINKCONTAINERW lpOleUILinkContainer;
699 DWORD dwLink;
700 LPWSTR lpszDisplayName;
701 ULONG nFileLength;
702 LPWSTR lpszFrom;
703 LPWSTR lpszTo;
704 } OLEUICHANGESOURCEW, *POLEUICHANGESOURCEW, *LPOLEUICHANGESOURCEW;
705
706
707 typedef struct tagOLEUICHANGESOURCEA
708 {
709 DWORD cbStruct;
710 DWORD dwFlags;
711 HWND hWndOwner;
712 LPCSTR lpszCaption;
713 LPFNOLEUIHOOK lpfnHook;
714 LPARAM lCustData;
715 HINSTANCE hInstance;
716 LPCSTR lpszTemplate;
717 HRSRC hResource;
718 OPENFILENAMEA* lpOFN;
719 DWORD dwReserved1[4];
720 LPOLEUILINKCONTAINERA lpOleUILinkContainer;
721 DWORD dwLink;
722 LPSTR lpszDisplayName;
723 ULONG nFileLength;
724 LPSTR lpszFrom;
725 LPSTR lpszTo;
726 } OLEUICHANGESOURCEA, *POLEUICHANGESOURCEA, *LPOLEUICHANGESOURCEA;
727
728
729 DECL_WINELIB_TYPE_AW(OLEUICHANGESOURCE)
DECL_WINELIB_TYPE_AW(POLEUICHANGESOURCE)730 DECL_WINELIB_TYPE_AW(POLEUICHANGESOURCE)
731 DECL_WINELIB_TYPE_AW(LPOLEUICHANGESOURCE)
732
733 /* Change Source Dialog flags */
734 #define CSF_SHOWHELP 0x00000001L
735 #define CSF_VALIDSOURCE 0x00000002L
736 #define CSF_ONLYGETSOURCE 0x00000004L
737 #define CSF_EXPLORER 0x00000008L
738
739
740 /*****************************************************************************
741 * IOleUILinkContainer interface
742 */
743 #define INTERFACE IOleUILinkContainerA
744 DECLARE_INTERFACE_(IOleUILinkContainerA,IUnknown)
745 {
746 /*** IUnknown methods ***/
747 STDMETHOD_(HRESULT,QueryInterface)(THIS_
748 _In_ REFIID riid,
749 _Outptr_ void** ppvObject) PURE;
750 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
751 STDMETHOD_(ULONG,Release)(THIS) PURE;
752 /*** IOleUILinkContainerA methods ***/
753 STDMETHOD_(DWORD,GetNextLink)(THIS_ _In_ DWORD dwLink) PURE;
754 STDMETHOD(SetLinkUpdateOptions)(THIS_
755 _In_ DWORD dwLink,
756 _In_ DWORD dwUpdateOpt) PURE;
757 STDMETHOD(GetLinkUpdateOptions)(THIS_
758 _In_ DWORD dwLink,
759 _Out_ DWORD *lpdwUpdateOpt) PURE;
760 STDMETHOD(SetLinkSource)(THIS_
761 _In_ DWORD dwLink,
762 _In_ LPSTR lpszDisplayName,
763 _In_ ULONG lenFileName,
764 _Out_ ULONG *pchEaten,
765 _In_ BOOL fValidateSource) PURE;
766 STDMETHOD(GetLinkSource)(THIS_
767 _In_ DWORD dwLink,
768 _Outptr_opt_result_maybenull_ LPSTR *lplpszDisplayName,
769 _Out_ ULONG *lplenFileName,
770 _Outptr_opt_result_maybenull_ LPSTR *lplpszFullLinkType,
771 _Outptr_opt_result_maybenull_ LPSTR *lplpszShortLinkType,
772 _Out_ BOOL *lpfSourceAvailable,
773 _Out_ BOOL *lpfIsSelected) PURE;
774 STDMETHOD(OpenLinkSource)(THIS_ _In_ DWORD dwLink) PURE;
775 STDMETHOD(UpdateLink)(THIS_
776 _In_ DWORD dwLink,
777 _In_ BOOL fErrorMessage,
778 _In_ BOOL fReserved) PURE;
779 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
780 };
781 #undef INTERFACE
782
783 #define INTERFACE IOleUILinkContainerW
DECLARE_INTERFACE_(IOleUILinkContainerW,IUnknown)784 DECLARE_INTERFACE_(IOleUILinkContainerW,IUnknown)
785 {
786 /*** IUnknown methods ***/
787 STDMETHOD_(HRESULT,QueryInterface)(THIS_
788 _In_ REFIID riid,
789 _Outptr_ void** ppvObject) PURE;
790 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
791 STDMETHOD_(ULONG,Release)(THIS) PURE;
792 /*** IOleUILinkContainerW methods ***/
793 STDMETHOD_(DWORD,GetNextLink)(THIS_ _In_ DWORD dwLink) PURE;
794 STDMETHOD(SetLinkUpdateOptions)(THIS_
795 _In_ DWORD dwLink,
796 _In_ DWORD dwUpdateOpt) PURE;
797 STDMETHOD(GetLinkUpdateOptions)(THIS_
798 _In_ DWORD dwLink,
799 _Out_ DWORD *lpdwUpdateOpt) PURE;
800 STDMETHOD(SetLinkSource)(THIS_
801 _In_ DWORD dwLink,
802 _In_ LPWSTR lpszDisplayName,
803 _In_ ULONG lenFileName,
804 _Out_ ULONG *pchEaten,
805 _In_ BOOL fValidateSource) PURE;
806 STDMETHOD(GetLinkSource)(THIS_
807 _In_ DWORD dwLink,
808 _Outptr_opt_result_maybenull_ LPWSTR *lplpszDisplayName,
809 _Out_ ULONG *lplenFileName,
810 _Outptr_opt_result_maybenull_ LPWSTR *lplpszFullLinkType,
811 _Outptr_opt_result_maybenull_ LPWSTR *lplpszShortLinkType,
812 _Out_ BOOL *lpfSourceAvailable,
813 _Out_ BOOL *lpfIsSelected) PURE;
814 STDMETHOD(OpenLinkSource)(THIS_ _In_ DWORD dwLink) PURE;
815 STDMETHOD(UpdateLink)(THIS_
816 _In_ DWORD dwLink,
817 _In_ BOOL fErrorMessage,
818 _In_ BOOL fReserved) PURE;
819 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
820 };
821 #undef INTERFACE
822
823 DECL_WINELIB_TYPE_AW(IOleUILinkContainer)
DECL_WINELIB_TYPE_AW(POLEUILINKCONTAINER)824 DECL_WINELIB_TYPE_AW(POLEUILINKCONTAINER)
825 DECL_WINELIB_TYPE_AW(LPOLEUILINKCONTAINER)
826
827 #if !defined(__cplusplus) || defined(CINTERFACE)
828 /*** IUnknown methods ***/
829 #define IOleUILinkContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
830 #define IOleUILinkContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
831 #define IOleUILinkContainer_Release(p) (p)->lpVtbl->Release(p)
832 /*** IOleUILinkContainer methods ***/
833 #define IOleUILinkContainer_GetNextLink(p,a) (p)->lpVtbl->GetNextLink(p,a)
834 #define IOleUILinkContainer_SetLinkUpdateOptions(p,a,b) (p)->lpVtbl->SetLinkUpdateOptions(p,a,b)
835 #define IOleUILinkContainer_GetLinkUpdateOptions(p,a,b) (p)->lpVtbl->GetLinkUpdateOptions(p,a,b)
836 #define IOleUILinkContainer_SetLinkSource(p,a,b,c,d,e) (p)->lpVtbl->SetLinkSource(p,a,b,c,d,e)
837 #define IOleUILinkContainer_GetLinkSource(p,a,b,c,d,e,f,g) (p)->lpVtbl->GetLinkSource(p,a,b,c,d,e,f,g)
838 #define IOleUILinkContainer_OpenLinkSource(p,a) (p)->lpVtbl->OpenLinkSource(p,a)
839 #define IOleUILinkContainer_UpdateLink(p,a,b,c) (p)->lpVtbl->UpdateLink(p,a,b,c)
840 #define IOleUILinkContainer_CancelLink(p,a) (p)->lpVtbl->CancelLink(p,a)
841 #endif
842
843
844 /*****************************************************************************
845 * IOleUILinkInfo interface
846 */
847 #define INTERFACE IOleUILinkInfoA
848 DECLARE_INTERFACE_(IOleUILinkInfoA,IOleUILinkContainerA)
849 {
850 /*** IUnknown methods ***/
851 STDMETHOD_(HRESULT, QueryInterface)(THIS_
852 _In_ REFIID riid,
853 _Outptr_ void** ppvObject) PURE;
854 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
855 STDMETHOD_(ULONG,Release)(THIS) PURE;
856 /*** IOleUILinkContainerA methods ***/
857 STDMETHOD_(DWORD, GetNextLink)(THIS_ _In_ DWORD dwLink) PURE;
858 STDMETHOD(SetLinkUpdateOptions)(THIS_
859 _In_ DWORD dwLink,
860 _In_ DWORD dwUpdateOpt) PURE;
861 STDMETHOD(GetLinkUpdateOptions)(THIS_
862 _In_ DWORD dwLink,
863 _Out_ DWORD *lpdwUpdateOpt) PURE;
864 STDMETHOD(SetLinkSource)(THIS_
865 _In_ DWORD dwLink,
866 _In_ LPSTR lpszDisplayName,
867 _In_ ULONG lenFileName,
868 _Out_ ULONG *pchEaten,
869 _In_ BOOL fValidateSource) PURE;
870 STDMETHOD(GetLinkSource)(THIS_
871 _In_ DWORD dwLink,
872 _Outptr_opt_result_maybenull_ LPSTR *lplpszDisplayName,
873 _Out_ ULONG *lplenFileName,
874 _Outptr_opt_result_maybenull_ LPSTR *lplpszFullLinkType,
875 _Outptr_opt_result_maybenull_ LPSTR *lplpszShortLinkType,
876 _Out_ BOOL *lpfSourceAvailable,
877 _Out_ BOOL *lpfIsSelected) PURE;
878 STDMETHOD(OpenLinkSource)(THIS_ _In_ DWORD dwLink) PURE;
879 STDMETHOD(UpdateLink)(THIS_
880 _In_ DWORD dwLink,
881 _In_ BOOL fErrorMessage,
882 _In_ BOOL fReserved) PURE;
883 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
884 /*** IOleUILinkInfoA methods ***/
885 STDMETHOD(GetLastUpdate)(THIS_
886 _In_ DWORD dwLink,
887 _Out_ FILETIME *lpLastUpdate) PURE;
888 };
889 #undef INTERFACE
890
891 #define INTERFACE IOleUILinkInfoW
DECLARE_INTERFACE_(IOleUILinkInfoW,IOleUILinkContainerW)892 DECLARE_INTERFACE_(IOleUILinkInfoW,IOleUILinkContainerW)
893 {
894 /*** IUnknown methods ***/
895 STDMETHOD_(HRESULT,QueryInterface)(THIS_
896 _In_ REFIID riid,
897 _Outptr_ void** ppvObject) PURE;
898 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
899 STDMETHOD_(ULONG,Release)(THIS) PURE;
900 /*** IOleUILinkContainerW methods ***/
901 STDMETHOD_(DWORD, GetNextLink)(THIS_ _In_ DWORD dwLink) PURE;
902 STDMETHOD(SetLinkUpdateOptions)(THIS_
903 _In_ DWORD dwLink,
904 _In_ DWORD dwUpdateOpt) PURE;
905 STDMETHOD(GetLinkUpdateOptions)(THIS_
906 _In_ DWORD dwLink,
907 _Out_ DWORD *lpdwUpdateOpt) PURE;
908 STDMETHOD(SetLinkSource)(THIS_
909 _In_ DWORD dwLink,
910 _In_ LPWSTR lpszDisplayName,
911 _In_ ULONG lenFileName,
912 _Out_ ULONG *pchEaten,
913 _In_ BOOL fValidateSource) PURE;
914 STDMETHOD(GetLinkSource)(THIS_
915 _In_ DWORD dwLink,
916 _Outptr_opt_result_maybenull_ LPWSTR *lplpszDisplayName,
917 _Out_ ULONG *lplenFileName,
918 _Outptr_opt_result_maybenull_ LPWSTR *lplpszFullLinkType,
919 _Outptr_opt_result_maybenull_ LPWSTR *lplpszShortLinkType,
920 _Out_ BOOL *lpfSourceAvailable,
921 _Out_ BOOL *lpfIsSelected) PURE;
922 STDMETHOD(OpenLinkSource)(THIS_ _In_ DWORD dwLink) PURE;
923 STDMETHOD(UpdateLink)(THIS_
924 _In_ DWORD dwLink,
925 _In_ BOOL fErrorMessage,
926 _In_ BOOL fReserved) PURE;
927 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
928 /*** IOleUILinkInfoW methods ***/
929 STDMETHOD(GetLastUpdate)(THIS_
930 _In_ DWORD dwLink,
931 _Out_ FILETIME *lpLastUpdate) PURE;
932 };
933 #undef INTERFACE
934
935 DECL_WINELIB_TYPE_AW(IOleUILinkInfo)
DECL_WINELIB_TYPE_AW(POLEUILINKINFO)936 DECL_WINELIB_TYPE_AW(POLEUILINKINFO)
937 DECL_WINELIB_TYPE_AW(LPOLEUILINKINFO)
938
939 #if !defined(__cplusplus) || defined(CINTERFACE)
940 /*** IUnknown methods ***/
941 #define IOleUILinkInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
942 #define IOleUILinkInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
943 #define IOleUILinkInfo_Release(p) (p)->lpVtbl->Release(p)
944 /*** IOleUILinkContainer methods ***/
945 #define IOleUILinkInfo_GetNextLink(p,a) (p)->lpVtbl->GetNextLink(p,a)
946 #define IOleUILinkInfo_SetLinkUpdateOptions(p,a,b) (p)->lpVtbl->SetLinkUpdateOptions(p,a,b)
947 #define IOleUILinkInfo_GetLinkUpdateOptions(p,a,b) (p)->lpVtbl->GetLinkUpdateOptions(p,a,b)
948 #define IOleUILinkInfo_SetLinkSource(p,a,b,c,d,e) (p)->lpVtbl->SetLinkSource(p,a,b,c,d,e)
949 #define IOleUILinkInfo_GetLinkSource(p,a,b,c,d,e,f,g) (p)->lpVtbl->GetLinkSource(p,a,b,c,d,e,f,g)
950 #define IOleUILinkInfo_OpenLinkSource(p,a) (p)->lpVtbl->OpenLinkSource(p,a)
951 #define IOleUILinkInfo_UpdateLink(p,a,b,c) (p)->lpVtbl->UpdateLink(p,a,b,c)
952 #define IOleUILinkInfo_CancelLink(p,a) (p)->lpVtbl->CancelLink(p,a)
953 /*** IOleUILinkInfo methods ***/
954 #define IOleUILinkInfo_GetLastUpdate(p,a,b) (p)->lpVtbl->GetLastUpdate(p,a,b)
955 #endif
956
957
958 /*****************************************************************************
959 * IOleUIObjInfo interface
960 */
961 #define INTERFACE IOleUIObjInfoA
962 DECLARE_INTERFACE_(IOleUIObjInfoA,IUnknown)
963 {
964 /*** IUnknown methods ***/
965 STDMETHOD_(HRESULT,QueryInterface)(THIS_
966 _In_ REFIID riid,
967 _Outptr_ void** ppvObject) PURE;
968 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
969 STDMETHOD_(ULONG,Release)(THIS) PURE;
970 /*** IOleUIObjInfoA methods ***/
971 STDMETHOD(GetObjectInfo)(THIS_
972 _In_ DWORD dwObject,
973 _Out_ DWORD *lpdwObjSize,
974 _Outptr_opt_result_maybenull_ LPSTR *lplpszLabel,
975 _Outptr_opt_result_maybenull_ LPSTR *lplpszType,
976 _Outptr_opt_result_maybenull_ LPSTR *lplpszShortType,
977 _Outptr_opt_result_maybenull_ LPSTR *lplpszLocation) PURE;
978 STDMETHOD(GetConvertInfo)(THIS_
979 _In_ DWORD dwObject,
980 _Out_ CLSID *lpClassID,
981 _Out_ WORD *lpwFormat,
982 _Out_ CLSID *lpConvertDefaultClassID,
983 _Outptr_result_maybenull_ LPCLSID *lplpClsidExclude,
984 _Out_opt_ UINT *lpcClsidExclude) PURE;
985 STDMETHOD(ConvertObject)(THIS_
986 _In_ DWORD dwObject,
987 _In_ REFCLSID clsidNew) PURE;
988 STDMETHOD(GetViewInfo)(THIS_
989 _In_ DWORD dwObject,
990 _In_opt_ HGLOBAL *phMetaPict,
991 _In_opt_ DWORD *pdvAspect,
992 _In_opt_ INT *pnCurrentScale) PURE;
993 STDMETHOD(SetViewInfo)(THIS_
994 _In_ DWORD dwObject,
995 _In_ HGLOBAL hMetaPict,
996 _In_ DWORD dvAspect,
997 _In_ INT nCurrentScale,
998 _In_ BOOL bRelativeToOrig) PURE;
999 };
1000 #undef INTERFACE
1001
1002 #define INTERFACE IOleUIObjInfoW
DECLARE_INTERFACE_(IOleUIObjInfoW,IUnknown)1003 DECLARE_INTERFACE_(IOleUIObjInfoW,IUnknown)
1004 {
1005 /*** IUnknown methods ***/
1006 STDMETHOD_(HRESULT,QueryInterface)(THIS_
1007 _In_ REFIID riid,
1008 _Outptr_ void** ppvObject) PURE;
1009 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1010 STDMETHOD_(ULONG,Release)(THIS) PURE;
1011 /*** IOleUIObjInfoW methods ***/
1012 STDMETHOD(GetObjectInfo)(THIS_
1013 _In_ DWORD dwObject,
1014 _Out_ DWORD *lpdwObjSize,
1015 _Outptr_opt_result_maybenull_ LPWSTR *lplpszLabel,
1016 _Outptr_opt_result_maybenull_ LPWSTR *lplpszType,
1017 _Outptr_opt_result_maybenull_ LPWSTR *lplpszShortType,
1018 _Outptr_opt_result_maybenull_ LPWSTR *lplpszLocation) PURE;
1019 STDMETHOD(GetConvertInfo)(THIS_
1020 _In_ DWORD dwObject,
1021 _Out_ CLSID *lpClassID,
1022 _Out_ WORD *lpwFormat,
1023 _Out_ CLSID *lpConvertDefaultClassID,
1024 _Outptr_result_maybenull_ LPCLSID *lplpClsidExclude,
1025 _Out_opt_ UINT *lpcClsidExclude) PURE;
1026 STDMETHOD(ConvertObject)(THIS_
1027 _In_ DWORD dwObject,
1028 _In_ REFCLSID clsidNew) PURE;
1029 STDMETHOD(GetViewInfo)(THIS_
1030 _In_ DWORD dwObject,
1031 _In_opt_ HGLOBAL *phMetaPict,
1032 _In_opt_ DWORD *pdvAspect,
1033 _In_opt_ INT *pnCurrentScale) PURE;
1034 STDMETHOD(SetViewInfo)(THIS_
1035 _In_ DWORD dwObject,
1036 _In_ HGLOBAL hMetaPict,
1037 _In_ DWORD dvAspect,
1038 _In_ INT nCurrentScale,
1039 _In_ BOOL bRelativeToOrig) PURE;
1040 };
1041 #undef INTERFACE
1042
1043 DECL_WINELIB_TYPE_AW(IOleUIObjInfo)
1044 DECL_WINELIB_TYPE_AW(POLEUIOBJINFO)
1045 DECL_WINELIB_TYPE_AW(LPOLEUIOBJINFO)
1046
1047 #if !defined(__cplusplus) || defined(CINTERFACE)
1048 /*** IUnknown methods ***/
1049 #define IOleUIObjInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1050 #define IOleUIObjInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
1051 #define IOleUIObjInfo_Release(p) (p)->lpVtbl->Release(p)
1052 /*** IOleUIObjInfo methods ***/
1053 #define IOleUIObjInfo_GetObjectInfo(p,a,b,c,d,e,f) (p)->lpVtbl->GetObjectInfo(p,a,b,c,d,e,f)
1054 #define IOleUIObjInfo_GetConvertInfo(p,a,b,c,d,e,f) (p)->lpVtbl->GetConvertInfo(p,a,b,c,d,e,f)
1055 #define IOleUIObjInfo_ConvertObject(p,a,b) (p)->lpVtbl->ConvertObject(p,a,b)
1056 #define IOleUIObjInfo_GetViewInfo(p,a,b,c,d) (p)->lpVtbl->GetViewInfo(p,a,b,c,d)
1057 #define IOleUIObjInfo_SetViewInfo(p,a,b,c,d,e) (p)->lpVtbl->SetViewInfo(p,a,b,c,d,e)
1058 #endif
1059
1060 UINT WINAPI OleUIInsertObjectW(_In_ LPOLEUIINSERTOBJECTW);
1061 UINT WINAPI OleUIInsertObjectA(_In_ LPOLEUIINSERTOBJECTA);
1062 #define OleUIInsertObject WINELIB_NAME_AW(OleUIInsertObject)
1063 UINT WINAPI OleUIConvertA(_In_ LPOLEUICONVERTA);
1064 UINT WINAPI OleUIConvertW(_In_ LPOLEUICONVERTW);
1065 #define OleUIConvert WINELIB_NAME_AW(OleUIConvert)
1066 UINT WINAPI OleUIChangeIconA(_In_ LPOLEUICHANGEICONA);
1067 UINT WINAPI OleUIChangeIconW(_In_ LPOLEUICHANGEICONW);
1068 #define OleUIChangeIcon WINELIB_NAME_AW(OleUIChangeIcon)
1069 UINT WINAPI OleUIBusyA(_In_ LPOLEUIBUSYA);
1070 UINT WINAPI OleUIBusyW(_In_ LPOLEUIBUSYW);
1071 #define OleUIBusy WINELIB_NAME_AW(OleUIBusy)
1072 UINT WINAPI OleUIObjectPropertiesA(_In_ LPOLEUIOBJECTPROPSA);
1073 UINT WINAPI OleUIObjectPropertiesW(_In_ LPOLEUIOBJECTPROPSW);
1074 #define OleUIObjectProperties WINELIB_NAME_AW(OleUIObjectProperties)
1075 UINT WINAPI OleUIChangeSourceW(_In_ LPOLEUICHANGESOURCEW);
1076 UINT WINAPI OleUIChangeSourceA(_In_ LPOLEUICHANGESOURCEA);
1077 #define OleUIChangeSource WINELIB_NAME_AW(OleUIChangeSource)
1078 UINT WINAPI OleUIEditLinksA(_In_ LPOLEUIEDITLINKSA lpOleUIEditLinks);
1079 UINT WINAPI OleUIEditLinksW(_In_ LPOLEUIEDITLINKSW lpOleUIEditLinks);
1080 #define OleUIEditLinks WINELIB_NAME_AW(OleUIEditLinks)
1081
1082 BOOL
1083 WINAPI
1084 OleUIUpdateLinksA(
1085 _In_ LPOLEUILINKCONTAINERA lpOleUILinkCntr,
1086 _In_ HWND hwndParent,
1087 _In_ LPSTR lpszTitle,
1088 _In_ INT cLinks);
1089
1090 BOOL
1091 WINAPI
1092 OleUIUpdateLinksW(
1093 _In_ LPOLEUILINKCONTAINERW lpOleUILinkCntr,
1094 _In_ HWND hwndParent,
1095 _In_ LPWSTR lpszTitle,
1096 _In_ INT cLinks);
1097
1098 #define OleUIUpdateLinks WINELIB_NAME_AW(OleUIUpdateLinks)
1099
1100 BOOL
1101 WINAPI
1102 OleUIAddVerbMenuA(
1103 _In_opt_ LPOLEOBJECT lpOleObj,
1104 _In_opt_ LPCSTR lpszShortType,
1105 _In_ HMENU hMenu,
1106 _In_ UINT uPos,
1107 _In_ UINT uIDVerbMin,
1108 _In_ UINT uIDVerbMax,
1109 _In_ BOOL bAddConvert,
1110 _In_ UINT idConvert,
1111 _Out_ HMENU *lphMenu);
1112
1113 BOOL
1114 WINAPI
1115 OleUIAddVerbMenuW(
1116 _In_opt_ LPOLEOBJECT lpOleObj,
1117 _In_opt_ LPCWSTR lpszShortType,
1118 _In_ HMENU hMenu,
1119 _In_ UINT uPos,
1120 _In_ UINT uIDVerbMin,
1121 _In_ UINT uIDVerbMax,
1122 _In_ BOOL bAddConvert,
1123 _In_ UINT idConvert,
1124 _Out_ HMENU *lphMenu);
1125
1126 #define OleUIAddVerbMenu WINELIB_NAME_AW(OleUIAddVerbMenu)
1127
1128 UINT WINAPI OleUIPasteSpecialA(_In_ LPOLEUIPASTESPECIALA lpOleUIPasteSpecial);
1129 UINT WINAPI OleUIPasteSpecialW(_In_ LPOLEUIPASTESPECIALW lpOleUIPasteSpecial);
1130 #define OleUIPasteSpecial WINELIB_NAME_AW(OleUIPasteSpecial)
1131 INT __cdecl OleUIPromptUserA(INT,HWND, ...);
1132 INT __cdecl OleUIPromptUserW(INT,HWND, ...);
1133 #define OleUIPromptUser WINELIB_NAME_AW(OleUIPromptUser)
1134
1135 #ifdef __cplusplus
1136 } /* Extern "C" */
1137 #endif
1138
1139
1140 #endif /* __WINE_OLEDLG_H */
1141