blob: 29fff5ac0fec9c0064fdc1e557dffb8eeec42e4d [file] [log] [blame]
Alexandre Julliarda0d77311998-09-13 16:32:00 +00001/*
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00002 * 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
Jonathan Ernst360a3f92006-05-18 14:49:52 +020018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Alexandre Julliarda0d77311998-09-13 16:32:00 +000019 */
20
21#ifndef __WINE_OLEDLG_H
22#define __WINE_OLEDLG_H
23
Francois Gouget041df962006-11-09 11:36:42 +010024#ifndef __WINESRC__
25# include <windows.h>
26#endif
27#include <shellapi.h>
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +000028#include <commdlg.h>
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +000029#include <ole2.h>
Francois Gouget041df962006-11-09 11:36:42 +010030#ifndef __WINESRC__
31# include <string.h>
32# include <tchar.h>
33#endif
34#include <dlgs.h>
35#include <prsht.h>
Adrian Thurstond3354d01999-03-24 15:05:05 +000036
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41
Alexandre Julliardb8d30752005-07-26 18:32:53 +000042typedef struct IOleUILinkContainerA *POLEUILINKCONTAINERA, *LPOLEUILINKCONTAINERA;
43typedef struct IOleUILinkContainerW *POLEUILINKCONTAINERW, *LPOLEUILINKCONTAINERW;
Adrian Thurstond3354d01999-03-24 15:05:05 +000044
Alexandre Julliardb8d30752005-07-26 18:32:53 +000045typedef struct IOleUILinkInfoA *POLEUILINKINFOA, *LPOLEUILINKINFOA;
46typedef struct IOleUILinkInfoW *POLEUILINKINFOW, *LPOLEUILINKINFOW;
Adrian Thurstond3354d01999-03-24 15:05:05 +000047
Alexandre Julliardb8d30752005-07-26 18:32:53 +000048typedef struct IOleUIObjInfoA *POLEUIOBJINFOA, *LPOLEUIOBJINFOA;
49typedef struct IOleUIObjInfoW *POLEUIOBJINFOW, *LPOLEUIOBJINFOW;
Adrian Thurstond3354d01999-03-24 15:05:05 +000050
Albert Den Hann8de1dfa1999-03-27 16:06:55 +000051#define IDC_OLEUIHELP 99
52
Albert Den Hann8de1dfa1999-03-27 16:06:55 +000053
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
Alexandre Julliarda0d77311998-09-13 16:32:00 +000061#define OLEUI_FALSE 0
62#define OLEUI_SUCCESS 1 /* Same as OLEUI_OK */
Vincent Béron9a624912002-05-31 23:06:46 +000063#define OLEUI_OK 1 /* OK button pressed */
Alexandre Julliarda0d77311998-09-13 16:32:00 +000064#define OLEUI_CANCEL 2 /* Cancel button pressed */
65
Ulrich Czekallaaf0d2af2003-11-05 01:34:38 +000066#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
Patrik Stridvallf94462f2002-01-31 23:22:07 +000085typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
Alexandre Julliarda0d77311998-09-13 16:32:00 +000086
Adrian Thurstond3354d01999-03-24 15:05:05 +000087/*****************************************************************************
Huw Daviese85b6462006-10-18 15:42:10 +010088 * 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
120static const WCHAR SZOLEUI_MSG_HELPW[] = { 'O','L','E','U','I','_','M','S','G','_','H','E','L','P',0 };
121static const WCHAR SZOLEUI_MSG_ENDDIALOGW[] = { 'O','L','E','U','I','_','M','S','G','_','E','N','D','D','I','A','L','O','G',0 };
122static const WCHAR SZOLEUI_MSG_BROWSEW[] = { 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E',0 };
123static const WCHAR SZOLEUI_MSG_CHANGEICONW[] = { 'O','L','E','U','I','_','M','S','G','_','C','H','A','N','G','E','I','C','O','N',0 };
124static 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 };
125static const WCHAR SZOLEUI_MSG_CONVERTW[] = { 'O','L','E','U','I','_','M','S','G','_','C','O','N','V','E','R','T',0 };
126static 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 };
127static const WCHAR SZOLEUI_MSG_ADDCONTROLW[] = { 'O','L','E','U','I','_','M','S','G','_','A','D','D','C','O','N','T','R','O','L',0 };
128static 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/*****************************************************************************
Adrian Thurstond3354d01999-03-24 15:05:05 +0000142 * INSERT OBJECT DIALOG
143 */
144typedef struct tagOLEUIINSERTOBJECTA
145{
Vincent Béron9a624912002-05-31 23:06:46 +0000146 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000168} OLEUIINSERTOBJECTA, *POLEUIINSERTOBJECTA, *LPOLEUIINSERTOBJECTA;
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000169
Adrian Thurstond3354d01999-03-24 15:05:05 +0000170typedef struct tagOLEUIINSERTOBJECTW
171{
Vincent Béron9a624912002-05-31 23:06:46 +0000172 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000194} OLEUIINSERTOBJECTW, *POLEUIINSERTOBJECTW, *LPOLEUIINSERTOBJECTW;
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000195
Adrian Thurstond3354d01999-03-24 15:05:05 +0000196DECL_WINELIB_TYPE_AW(OLEUIINSERTOBJECT)
197DECL_WINELIB_TYPE_AW(POLEUIINSERTOBJECT)
198DECL_WINELIB_TYPE_AW(LPOLEUIINSERTOBJECT)
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000199
Huw Davies3f46f742006-10-18 15:28:40 +0100200#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
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000214
Adrian Thurstond3354d01999-03-24 15:05:05 +0000215/*****************************************************************************
216 * CONVERT DIALOG
217 */
218typedef struct tagOLEUICONVERTA
219{
Vincent Béron9a624912002-05-31 23:06:46 +0000220 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000235 BOOL fIsLinkedObject;
Vincent Béron9a624912002-05-31 23:06:46 +0000236 HGLOBAL hMetaPict;
237 LPSTR lpszUserType;
238 BOOL fObjectsIconChanged;
239 LPSTR lpszDefLabel;
240 UINT cClsidExclude;
241 LPCLSID lpClsidExclude;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000242} OLEUICONVERTA, *POLEUICONVERTA, *LPOLEUICONVERTA;
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000243
Adrian Thurstond3354d01999-03-24 15:05:05 +0000244typedef struct tagOLEUICONVERTW
245{
Vincent Béron9a624912002-05-31 23:06:46 +0000246 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000261 BOOL fIsLinkedObject;
Vincent Béron9a624912002-05-31 23:06:46 +0000262 HGLOBAL hMetaPict;
263 LPWSTR lpszUserType;
264 BOOL fObjectsIconChanged;
265 LPWSTR lpszDefLabel;
266 UINT cClsidExclude;
267 LPCLSID lpClsidExclude;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000268} OLEUICONVERTW, *POLEUICONVERTW, *LPOLEUICONVERTW;
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000269
Adrian Thurstond3354d01999-03-24 15:05:05 +0000270DECL_WINELIB_TYPE_AW(OLEUICONVERT)
271DECL_WINELIB_TYPE_AW(POLEUICONVERT)
272DECL_WINELIB_TYPE_AW(LPOLEUICONVERT)
273
Huw Davies3f46f742006-10-18 15:28:40 +0100274#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
Adrian Thurstond3354d01999-03-24 15:05:05 +0000284/*****************************************************************************
285 * CHANGE ICON DIALOG
286 */
287typedef struct tagOLEUICHANGEICONA
288{
Vincent Béron9a624912002-05-31 23:06:46 +0000289 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000302} OLEUICHANGEICONA, *POLEUICHANGEICONA, *LPOLEUICHANGEICONA;
303
304typedef struct tagOLEUICHANGEICONW
305{
Vincent Béron9a624912002-05-31 23:06:46 +0000306 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000319} OLEUICHANGEICONW, *POLEUICHANGEICONW, *LPOLEUICHANGEICONW;
320
321DECL_WINELIB_TYPE_AW(OLEUICHANGEICON)
322DECL_WINELIB_TYPE_AW(POLEUICHANGEICON)
323DECL_WINELIB_TYPE_AW(LPOLEUICHANGEICON)
324
325
Huw Davies3f46f742006-10-18 15:28:40 +0100326#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
Adrian Thurstond3354d01999-03-24 15:05:05 +0000332/*****************************************************************************
333 * PASTE SPECIAL DIALOG
334 */
335
336typedef enum tagOLEUIPASTEFLAG
337{
Vincent Béron9a624912002-05-31 23:06:46 +0000338 OLEUIPASTE_ENABLEICON = 2048,
Adrian Thurstond3354d01999-03-24 15:05:05 +0000339 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
Vincent Béron9a624912002-05-31 23:06:46 +0000350} OLEUIPASTEFLAG;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000351
352typedef struct tagOLEUIPASTEENTRYA
353{
Vincent Béron9a624912002-05-31 23:06:46 +0000354 FORMATETC fmtetc;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000355 LPCSTR lpstrFormatName;
356 LPCSTR lpstrResultText;
Vincent Béron9a624912002-05-31 23:06:46 +0000357 DWORD dwFlags;
358 DWORD dwScratchSpace;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000359} OLEUIPASTEENTRYA, *POLEUIPASTEENTRYA, *LPOLEUIPASTEENTRYA;
360
361typedef struct tagOLEUIPASTEENTRYW
362{
Vincent Béron9a624912002-05-31 23:06:46 +0000363 FORMATETC fmtetc;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000364 LPCWSTR lpstrFormatName;
365 LPCWSTR lpstrResultText;
Vincent Béron9a624912002-05-31 23:06:46 +0000366 DWORD dwFlags;
367 DWORD dwScratchSpace;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000368} OLEUIPASTEENTRYW, *POLEUIPASTEENTRYW, *LPOLEUIPASTEENTRYW;
369
370DECL_WINELIB_TYPE_AW(OLEUIPASTEENTRY)
371DECL_WINELIB_TYPE_AW(POLEUIPASTEENTRY)
372DECL_WINELIB_TYPE_AW(LPOLEUIPASTEENTRY)
373
374typedef struct tagOLEUIPASTESPECIALA
375{
Vincent Béron9a624912002-05-31 23:06:46 +0000376 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000386 LPOLEUIPASTEENTRYA arrPasteEntries;
Vincent Béron9a624912002-05-31 23:06:46 +0000387 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000396} OLEUIPASTESPECIALA, *POLEUIPASTESPECIALA, *LPOLEUIPASTESPECIALA;
397
398typedef struct tagOLEUIPASTESPECIALW
399{
Vincent Béron9a624912002-05-31 23:06:46 +0000400 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000410 LPOLEUIPASTEENTRYW arrPasteEntries;
Vincent Béron9a624912002-05-31 23:06:46 +0000411 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000420} OLEUIPASTESPECIALW, *POLEUIPASTESPECIALW, *LPOLEUIPASTESPECIALW;
421
422DECL_WINELIB_TYPE_AW(OLEUIPASTESPECIAL)
423DECL_WINELIB_TYPE_AW(POLEUIPASTESPECIAL)
424DECL_WINELIB_TYPE_AW(LPOLEUIPASTESPECIAL)
425
Huw Daviesccca9bc2006-10-18 15:32:42 +0100426#define PS_MAXLINKTYPES 8
427
Adrian Thurstond3354d01999-03-24 15:05:05 +0000428#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
Huw Daviesc3ae9172006-10-18 15:13:03 +0100444/* 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
Albert Den Hann8de1dfa1999-03-27 16:06:55 +0000465#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
Adrian Thurstond3354d01999-03-24 15:05:05 +0000471typedef struct tagOLEUIEDITLINKSW
472{
Vincent Béron9a624912002-05-31 23:06:46 +0000473 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000483} OLEUIEDITLINKSW, *POLEUIEDITLINKSW, *LPOLEUIEDITLINKSW;
484
485typedef struct tagOLEUIEDITLINKSA
486{
Vincent Béron9a624912002-05-31 23:06:46 +0000487 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000497} OLEUIEDITLINKSA, *POLEUIEDITLINKSA, *LPOLEUIEDITLINKSA;
498
499DECL_WINELIB_TYPE_AW(OLEUIEDITLINKS)
500DECL_WINELIB_TYPE_AW(POLEUIEDITLINKS)
501DECL_WINELIB_TYPE_AW(LPOLEUIEDITLINKS)
502
503
504/***********************************************************************************
505 * BUSY DIALOG
506 */
507typedef struct tagOLEUIBUSYA
508{
Vincent Béron9a624912002-05-31 23:06:46 +0000509 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000520} OLEUIBUSYA, *POLEUIBUSYA, *LPOLEUIBUSYA;
521
522typedef struct tagOLEUIBUSYW
523{
Vincent Béron9a624912002-05-31 23:06:46 +0000524 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000535} OLEUIBUSYW, *POLEUIBUSYW, *LPOLEUIBUSYW;
536
537DECL_WINELIB_TYPE_AW(OLEUIBUSY)
538DECL_WINELIB_TYPE_AW(POLEUIBUSY)
539DECL_WINELIB_TYPE_AW(LPOLEUIBUSY)
540
541
Huw Davies3f46f742006-10-18 15:28:40 +0100542#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
Adrian Thurstond3354d01999-03-24 15:05:05 +0000551struct tagOLEUIOBJECTPROPSW;
552struct tagOLEUIOBJECTPROPSA;
553
554typedef struct tagOLEUIGNRLPROPSA
555{
Vincent Béron9a624912002-05-31 23:06:46 +0000556 DWORD cbStruct;
557 DWORD dwFlags;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000558 DWORD dwReserved1[2];
Vincent Béron9a624912002-05-31 23:06:46 +0000559 LPFNOLEUIHOOK lpfnHook;
560 LPARAM lCustData;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000561 DWORD dwReserved2[3];
Vincent Béron9a624912002-05-31 23:06:46 +0000562 struct tagOLEUIOBJECTPROPSA* lpOP;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000563
564} OLEUIGNRLPROPSA, *POLEUIGNRLPROPSA, *LPOLEUIGNRLPROPSA;
565
566typedef struct tagOLEUIGNRLPROPSW
567{
Vincent Béron9a624912002-05-31 23:06:46 +0000568 DWORD cbStruct;
569 DWORD dwFlags;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000570 DWORD dwReserved1[2];
Vincent Béron9a624912002-05-31 23:06:46 +0000571 LPFNOLEUIHOOK lpfnHook;
572 LPARAM lCustData;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000573 DWORD dwReserved2[3];
Vincent Béron9a624912002-05-31 23:06:46 +0000574 struct tagOLEUIOBJECTPROPSW* lpOP;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000575} OLEUIGNRLPROPSW, *POLEUIGNRLPROPSW, *LPOLEUIGNRLPROPSW;
576
577DECL_WINELIB_TYPE_AW(OLEUIGNRLPROPS)
578DECL_WINELIB_TYPE_AW(POLEUIGNRLPROPS)
579DECL_WINELIB_TYPE_AW(LPOLEUIGNRLPROPS)
580
581typedef struct tagOLEUIVIEWPROPSA
582{
Vincent Béron9a624912002-05-31 23:06:46 +0000583 DWORD cbStruct;
584 DWORD dwFlags;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000585 DWORD dwReserved1[2];
Vincent Béron9a624912002-05-31 23:06:46 +0000586 LPFNOLEUIHOOK lpfnHook;
587 LPARAM lCustData;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000588 DWORD dwReserved2[3];
Vincent Béron9a624912002-05-31 23:06:46 +0000589 struct tagOLEUIOBJECTPROPSA* lpOP;
590 INT nScaleMin;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000591 INT nScaleMax;
592} OLEUIVIEWPROPSA, *POLEUIVIEWPROPSA, *LPOLEUIVIEWPROPSA;
593
594typedef struct tagOLEUIVIEWPROPSW
595{
Vincent Béron9a624912002-05-31 23:06:46 +0000596 DWORD cbStruct;
597 DWORD dwFlags;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000598 DWORD dwReserved1[2];
Vincent Béron9a624912002-05-31 23:06:46 +0000599 LPFNOLEUIHOOK lpfnHook;
600 LPARAM lCustData;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000601 DWORD dwReserved2[3];
Vincent Béron9a624912002-05-31 23:06:46 +0000602 struct tagOLEUIOBJECTPROPSW* lpOP;
603 INT nScaleMin;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000604 INT nScaleMax;
605} OLEUIVIEWPROPSW, *POLEUIVIEWPROPSW, *LPOLEUIVIEWPROPSW;
606
607DECL_WINELIB_TYPE_AW(OLEUIVIEWPROPS)
608DECL_WINELIB_TYPE_AW(POLEUIVIEWPROPS)
609DECL_WINELIB_TYPE_AW(LPOLEUIVIEWPROPS)
610
611
Vincent Béron9a624912002-05-31 23:06:46 +0000612#define VPF_SELECTRELATIVE 0x00000001L
613#define VPF_DISABLERELATIVE 0x00000002L
614#define VPF_DISABLESCALE 0x00000004L
Adrian Thurstond3354d01999-03-24 15:05:05 +0000615
616typedef struct tagOLEUILINKPROPSA
617{
Vincent Béron9a624912002-05-31 23:06:46 +0000618 DWORD cbStruct;
619 DWORD dwFlags;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000620 DWORD dwReserved1[2];
Vincent Béron9a624912002-05-31 23:06:46 +0000621 LPFNOLEUIHOOK lpfnHook;
622 LPARAM lCustData;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000623 DWORD dwReserved2[3];
Vincent Béron9a624912002-05-31 23:06:46 +0000624 struct tagOLEUIOBJECTPROPSA* lpOP;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000625} OLEUILINKPROPSA, *POLEUILINKPROPSA, *LPOLEUILINKPROPSA;
626
627typedef struct tagOLEUILINKPROPSW
628{
Vincent Béron9a624912002-05-31 23:06:46 +0000629 DWORD cbStruct;
630 DWORD dwFlags;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000631 DWORD dwReserved1[2];
Vincent Béron9a624912002-05-31 23:06:46 +0000632 LPFNOLEUIHOOK lpfnHook;
633 LPARAM lCustData;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000634 DWORD dwReserved2[3];
Vincent Béron9a624912002-05-31 23:06:46 +0000635 struct tagOLEUIOBJECTPROPSW* lpOP;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000636} OLEUILINKPROPSW, *POLEUILINKPROPSW, *LPOLEUILINKPROPSW;
637
638DECL_WINELIB_TYPE_AW(OLEUILINKPROPS)
639DECL_WINELIB_TYPE_AW(POLEUILINKPROPS)
640DECL_WINELIB_TYPE_AW(LPOLEUILINKPROPS)
641
642typedef struct tagOLEUIOBJECTPROPSA
643{
Vincent Béron9a624912002-05-31 23:06:46 +0000644 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000654} OLEUIOBJECTPROPSA, *POLEUIOBJECTPROPSA, *LPOLEUIOBJECTPROPSA;
655
656typedef struct tagOLEUIOBJECTPROPSW
657{
Vincent Béron9a624912002-05-31 23:06:46 +0000658 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000668} OLEUIOBJECTPROPSW, *POLEUIOBJECTPROPSW, *LPOLEUIOBJECTPROPSW;
669
670DECL_WINELIB_TYPE_AW(OLEUIOBJECTPROPS)
671DECL_WINELIB_TYPE_AW(POLEUIOBJECTPROPS)
672DECL_WINELIB_TYPE_AW(LPOLEUIOBJECTPROPS)
673
Huw Davies3f46f742006-10-18 15:28:40 +0100674#define OPF_OBJECTISLINK 0x00000001L
675#define OPF_NOFILLDEFAULT 0x00000002L
676#define OPF_SHOWHELP 0x00000004L
677#define OPF_DISABLECONVERT 0x00000008L
678
679
Adrian Thurstond3354d01999-03-24 15:05:05 +0000680/************************************************************************************
681 * CHANGE SOURCE DIALOG
682 */
683
684
685typedef struct tagOLEUICHANGESOURCEW
686{
Vincent Béron9a624912002-05-31 23:06:46 +0000687 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000700 LPWSTR lpszDisplayName;
Vincent Béron9a624912002-05-31 23:06:46 +0000701 ULONG nFileLength;
702 LPWSTR lpszFrom;
703 LPWSTR lpszTo;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000704} OLEUICHANGESOURCEW, *POLEUICHANGESOURCEW, *LPOLEUICHANGESOURCEW;
705
706
707typedef struct tagOLEUICHANGESOURCEA
708{
Vincent Béron9a624912002-05-31 23:06:46 +0000709 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;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000722 LPSTR lpszDisplayName;
Vincent Béron9a624912002-05-31 23:06:46 +0000723 ULONG nFileLength;
724 LPSTR lpszFrom;
725 LPSTR lpszTo;
Adrian Thurstond3354d01999-03-24 15:05:05 +0000726} OLEUICHANGESOURCEA, *POLEUICHANGESOURCEA, *LPOLEUICHANGESOURCEA;
727
728
729DECL_WINELIB_TYPE_AW(OLEUICHANGESOURCE)
730DECL_WINELIB_TYPE_AW(POLEUICHANGESOURCE)
731DECL_WINELIB_TYPE_AW(LPOLEUICHANGESOURCE)
732
Huw Davies3f46f742006-10-18 15:28:40 +0100733/* 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
Adrian Thurstond3354d01999-03-24 15:05:05 +0000739
740/*****************************************************************************
741 * IOleUILinkContainer interface
742 */
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000743#define INTERFACE IOleUILinkContainerA
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000744DECLARE_INTERFACE_(IOleUILinkContainerA,IUnknown)
745{
746 /*** IUnknown methods ***/
747 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
748 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
749 STDMETHOD_(ULONG,Release)(THIS) PURE;
750 /*** IOleUILinkContainerA methods ***/
751 STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
752 STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE;
753 STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD *lpdwUpdateOpt) PURE;
754 STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink, LPSTR lpszDisplayName,
755 ULONG lenFileName, ULONG *pchEaten, BOOL fValidateSource) PURE;
756 STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPSTR *lplpszDisplayName, ULONG *lplenFileName,
757 LPSTR *lplpszFullLinkType, LPSTR *lplpszShortLinkType,
758 BOOL *lpfSourceAvailable, BOOL *lpfIsSelected) PURE;
759 STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
760 STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000761 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000762};
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000763#undef INTERFACE
Adrian Thurstond3354d01999-03-24 15:05:05 +0000764
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000765#define INTERFACE IOleUILinkContainerW
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000766DECLARE_INTERFACE_(IOleUILinkContainerW,IUnknown)
767{
768 /*** IUnknown methods ***/
769 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
770 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
771 STDMETHOD_(ULONG,Release)(THIS) PURE;
772 /*** IOleUILinkContainerW methods ***/
773 STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
774 STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE;
775 STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD *lpdwUpdateOpt) PURE;
776 STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink, LPWSTR lpszDisplayName,
777 ULONG lenFileName, ULONG *pchEaten, BOOL fValidateSource) PURE;
778 STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPWSTR *lplpszDisplayName, ULONG *lplenFileName,
779 LPWSTR *lplpszFullLinkType, LPWSTR *lplpszShortLinkType,
780 BOOL *lpfSourceAvailable, BOOL *lpfIsSelected) PURE;
781 STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
782 STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000783 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000784};
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000785#undef INTERFACE
Adrian Thurstond3354d01999-03-24 15:05:05 +0000786
787DECL_WINELIB_TYPE_AW(IOleUILinkContainer)
788DECL_WINELIB_TYPE_AW(POLEUILINKCONTAINER)
789DECL_WINELIB_TYPE_AW(LPOLEUILINKCONTAINER)
790
Francois Gouget52ecbf72004-10-04 19:35:40 +0000791#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000792/*** IUnknown methods ***/
Alexandre Julliard55379112003-04-10 21:13:58 +0000793#define IOleUILinkContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
794#define IOleUILinkContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
795#define IOleUILinkContainer_Release(p) (p)->lpVtbl->Release(p)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000796/*** IOleUILinkContainer methods ***/
Alexandre Julliard55379112003-04-10 21:13:58 +0000797#define IOleUILinkContainer_GetNextLink(p,a) (p)->lpVtbl->GetNextLink(p,a)
798#define IOleUILinkContainer_SetLinkUpdateOptions(p,a,b) (p)->lpVtbl->SetLinkUpdateOptions(p,a,b)
799#define IOleUILinkContainer_GetLinkUpdateOptions(p,a,b) (p)->lpVtbl->GetLinkUpdateOptions(p,a,b)
800#define IOleUILinkContainer_SetLinkSource(p,a,b,c,d,e) (p)->lpVtbl->SetLinkSource(p,a,b,c,d,e)
801#define IOleUILinkContainer_GetLinkSource(p,a,b,c,d,e,f,g) (p)->lpVtbl->GetLinkSource(p,a,b,c,d,e,f,g)
802#define IOleUILinkContainer_OpenLinkSource(p,a) (p)->lpVtbl->OpenLinkSource(p,a)
803#define IOleUILinkContainer_UpdateLink(p,a,b,c) (p)->lpVtbl->UpdateLink(p,a,b,c)
804#define IOleUILinkContainer_CancelLink(p,a) (p)->lpVtbl->CancelLink(p,a)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000805#endif
806
807
808/*****************************************************************************
809 * IOleUILinkInfo interface
810 */
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000811#define INTERFACE IOleUILinkInfoA
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000812DECLARE_INTERFACE_(IOleUILinkInfoA,IOleUILinkContainerA)
813{
814 /*** IUnknown methods ***/
815 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
816 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
817 STDMETHOD_(ULONG,Release)(THIS) PURE;
818 /*** IOleUILinkContainerA methods ***/
819 STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
820 STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE;
821 STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD *lpdwUpdateOpt) PURE;
822 STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink, LPSTR lpszDisplayName,
823 ULONG lenFileName, ULONG *pchEaten, BOOL fValidateSource) PURE;
824 STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPSTR *lplpszDisplayName, ULONG *lplenFileName,
825 LPSTR *lplpszFullLinkType, LPSTR *lplpszShortLinkType,
826 BOOL *lpfSourceAvailable, BOOL *lpfIsSelected) PURE;
827 STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
828 STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
829 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
830 /*** IOleUILinkInfoA methods ***/
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000831 STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink, FILETIME *lpLastUpdate) PURE;
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000832};
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000833#undef INTERFACE
Adrian Thurstond3354d01999-03-24 15:05:05 +0000834
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000835#define INTERFACE IOleUILinkInfoW
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000836DECLARE_INTERFACE_(IOleUILinkInfoW,IOleUILinkContainerW)
837{
838 /*** IUnknown methods ***/
839 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
840 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
841 STDMETHOD_(ULONG,Release)(THIS) PURE;
842 /*** IOleUILinkContainerW methods ***/
843 STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
844 STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE;
845 STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD *lpdwUpdateOpt) PURE;
846 STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink, LPWSTR lpszDisplayName,
847 ULONG lenFileName, ULONG *pchEaten, BOOL fValidateSource) PURE;
848 STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPWSTR *lplpszDisplayName, ULONG *lplenFileName,
849 LPWSTR *lplpszFullLinkType, LPWSTR *lplpszShortLinkType,
850 BOOL *lpfSourceAvailable, BOOL *lpfIsSelected) PURE;
851 STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
852 STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
853 STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
854 /*** IOleUILinkInfoW methods ***/
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000855 STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink, FILETIME *lpLastUpdate) PURE;
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000856};
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000857#undef INTERFACE
Adrian Thurstond3354d01999-03-24 15:05:05 +0000858
859DECL_WINELIB_TYPE_AW(IOleUILinkInfo)
860DECL_WINELIB_TYPE_AW(POLEUILINKINFO)
861DECL_WINELIB_TYPE_AW(LPOLEUILINKINFO)
862
Francois Gouget52ecbf72004-10-04 19:35:40 +0000863#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000864/*** IUnknown methods ***/
Alexandre Julliard55379112003-04-10 21:13:58 +0000865#define IOleUILinkInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
866#define IOleUILinkInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
867#define IOleUILinkInfo_Release(p) (p)->lpVtbl->Release(p)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000868/*** IOleUILinkContainer methods ***/
Alexandre Julliard55379112003-04-10 21:13:58 +0000869#define IOleUILinkInfo_GetNextLink(p,a) (p)->lpVtbl->GetNextLink(p,a)
870#define IOleUILinkInfo_SetLinkUpdateOptions(p,a,b) (p)->lpVtbl->SetLinkUpdateOptions(p,a,b)
871#define IOleUILinkInfo_GetLinkUpdateOptions(p,a,b) (p)->lpVtbl->GetLinkUpdateOptions(p,a,b)
872#define IOleUILinkInfo_SetLinkSource(p,a,b,c,d,e) (p)->lpVtbl->SetLinkSource(p,a,b,c,d,e)
873#define IOleUILinkInfo_GetLinkSource(p,a,b,c,d,e,f,g) (p)->lpVtbl->GetLinkSource(p,a,b,c,d,e,f,g)
874#define IOleUILinkInfo_OpenLinkSource(p,a) (p)->lpVtbl->OpenLinkSource(p,a)
875#define IOleUILinkInfo_UpdateLink(p,a,b,c) (p)->lpVtbl->UpdateLink(p,a,b,c)
876#define IOleUILinkInfo_CancelLink(p,a) (p)->lpVtbl->CancelLink(p,a)
Vincent Béron9a624912002-05-31 23:06:46 +0000877/*** IOleUILinkInfo methods ***/
Alexandre Julliard55379112003-04-10 21:13:58 +0000878#define IOleUILinkInfo_GetLastUpdate(p,a,b) (p)->lpVtbl->GetLastUpdate(p,a,b)
879#endif
Adrian Thurstond3354d01999-03-24 15:05:05 +0000880
881
882/*****************************************************************************
883 * IOleUIObjInfo interface
884 */
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000885#define INTERFACE IOleUIObjInfoA
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000886DECLARE_INTERFACE_(IOleUIObjInfoA,IUnknown)
887{
888 /*** IUnknown methods ***/
889 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
890 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
891 STDMETHOD_(ULONG,Release)(THIS) PURE;
892 /*** IOleUIObjInfoA methods ***/
893 STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject, DWORD *lpdwObjSize, LPSTR *lplpszLabel,
894 LPSTR *lplpszType, LPSTR *lplpszShortType, LPSTR *lplpszLocation) PURE;
895 STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject, CLSID *lpClassID, WORD *lpwFormat,
896 CLSID *lpConvertDefaultClassID, LPCLSID *lplpClsidExclude, UINT *lpcClsidExclude) PURE;
897 STDMETHOD(ConvertObject)(THIS_ DWORD dwObject, REFCLSID clsidNew) PURE;
898 STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject, HGLOBAL *phMetaPict, DWORD *pdvAspect, INT *pnCurrentScale) PURE;
899 STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject, HGLOBAL hMetaPict, DWORD dvAspect,
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000900 INT nCurrentScale, BOOL bRelativeToOrig) PURE;
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000901};
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000902#undef INTERFACE
Adrian Thurstond3354d01999-03-24 15:05:05 +0000903
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000904#define INTERFACE IOleUIObjInfoW
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000905DECLARE_INTERFACE_(IOleUIObjInfoW,IUnknown)
906{
907 /*** IUnknown methods ***/
908 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
909 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
910 STDMETHOD_(ULONG,Release)(THIS) PURE;
911 /*** IOleUIObjInfoW methods ***/
912 STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject, DWORD *lpdwObjSize, LPWSTR *lplpszLabel,
913 LPWSTR *lplpszType, LPWSTR *lplpszShortType, LPWSTR *lplpszLocation) PURE;
914 STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject, CLSID *lpClassID, WORD *lpwFormat,
915 CLSID *lpConvertDefaultClassID, LPCLSID *lplpClsidExclude, UINT *lpcClsidExclude) PURE;
916 STDMETHOD(ConvertObject)(THIS_ DWORD dwObject, REFCLSID clsidNew) PURE;
917 STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject, HGLOBAL *phMetaPict, DWORD *pdvAspect, INT *pnCurrentScale) PURE;
918 STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject, HGLOBAL hMetaPict, DWORD dvAspect,
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000919 INT nCurrentScale, BOOL bRelativeToOrig) PURE;
Alexandre Julliard5d0160e2004-10-05 04:38:15 +0000920};
Alexandre Julliardf00c46f2003-04-10 00:19:24 +0000921#undef INTERFACE
Adrian Thurstond3354d01999-03-24 15:05:05 +0000922
923DECL_WINELIB_TYPE_AW(IOleUIObjInfo)
924DECL_WINELIB_TYPE_AW(POLEUIOBJINFO)
925DECL_WINELIB_TYPE_AW(LPOLEUIOBJINFO)
926
Francois Gouget52ecbf72004-10-04 19:35:40 +0000927#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000928/*** IUnknown methods ***/
Alexandre Julliard55379112003-04-10 21:13:58 +0000929#define IOleUIObjInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
930#define IOleUIObjInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
931#define IOleUIObjInfo_Release(p) (p)->lpVtbl->Release(p)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000932/*** IOleUIObjInfo methods ***/
Alexandre Julliard55379112003-04-10 21:13:58 +0000933#define IOleUIObjInfo_GetObjectInfo(p,a,b,c,d,e,f) (p)->lpVtbl->GetObjectInfo(p,a,b,c,d,e,f)
934#define IOleUIObjInfo_GetConvertInfo(p,a,b,c,d,e,f) (p)->lpVtbl->GetConvertInfo(p,a,b,c,d,e,f)
935#define IOleUIObjInfo_ConvertObject(p,a,b) (p)->lpVtbl->ConvertObject(p,a,b)
936#define IOleUIObjInfo_GetViewInfo(p,a,b,c,d) (p)->lpVtbl->GetViewInfo(p,a,b,c,d)
937#define IOleUIObjInfo_SetViewInfo(p,a,b,c,d,e) (p)->lpVtbl->SetViewInfo(p,a,b,c,d,e)
938#endif
Adrian Thurstond3354d01999-03-24 15:05:05 +0000939
940UINT WINAPI OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
941UINT WINAPI OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
942#define OleUIInsertObject WINELIB_NAME_AW(OleUIInsertObject)
943UINT WINAPI OleUIConvertA(LPOLEUICONVERTA);
944UINT WINAPI OleUIConvertW(LPOLEUICONVERTW);
945#define OleUIConvert WINELIB_NAME_AW(OleUIConvert)
946UINT WINAPI OleUIChangeIconA(LPOLEUICHANGEICONA);
947UINT WINAPI OleUIChangeIconW(LPOLEUICHANGEICONW);
948#define OleUIChangeIcon WINELIB_NAME_AW(OleUIChangeIcon)
949UINT WINAPI OleUIBusyA(LPOLEUIBUSYA);
950UINT WINAPI OleUIBusyW(LPOLEUIBUSYW);
951#define OleUIBusy WINELIB_NAME_AW(OleUIBusy)
952UINT WINAPI OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA);
953UINT WINAPI OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW);
954#define OleUIObjectProperties WINELIB_NAME_AW(OleUIObjectProperties)
955UINT WINAPI OleUIChangeSourceW(LPOLEUICHANGESOURCEW);
956UINT WINAPI OleUIChangeSourceA(LPOLEUICHANGESOURCEA);
957#define OleUIChangeSource WINELIB_NAME_AW(OleUIChangeSource)
958UINT WINAPI OleUIEditLinksA(LPOLEUIEDITLINKSA lpOleUIEditLinks);
959UINT WINAPI OleUIEditLinksW(LPOLEUIEDITLINKSW lpOleUIEditLinks);
960#define OleUIEditLinks WINELIB_NAME_AW(OleUIEditLinks)
961BOOL WINAPI OleUIUpdateLinksA(LPOLEUILINKCONTAINERA lpOleUILinkCntr, HWND hwndParent, LPSTR lpszTitle, INT cLinks);
962BOOL WINAPI OleUIUpdateLinksW(LPOLEUILINKCONTAINERW lpOleUILinkCntr, HWND hwndParent, LPWSTR lpszTitle, INT cLinks);
963#define OleUIUpdateLinks WINELIB_NAME_AW(OleUIUpdateLinks)
964BOOL WINAPI OleUIAddVerbMenuA(LPOLEOBJECT lpOleObj, LPCSTR lpszShortType, HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
965 BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
966BOOL WINAPI OleUIAddVerbMenuW(LPOLEOBJECT lpOleObj, LPCWSTR lpszShortType, HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
967 BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
968#define OleUIAddVerbMenu WINELIB_NAME_AW(OleUIAddVerbMenu)
969UINT WINAPI OleUIPasteSpecialA(LPOLEUIPASTESPECIALA lpOleUIPasteSpecial);
970UINT WINAPI OleUIPasteSpecialW(LPOLEUIPASTESPECIALW lpOleUIPasteSpecial);
Vincent Béron9a624912002-05-31 23:06:46 +0000971#define OleUIPasteSpecial WINELIB_NAME_AW(OleUIPasteSpecial)
Alexandre Julliard2fdc4dc2003-11-26 04:11:56 +0000972INT __cdecl OleUIPromptUserA(INT,HWND, ...);
973INT __cdecl OleUIPromptUserW(INT,HWND, ...);
974#define OleUIPromptUser WINELIB_NAME_AW(OleUIPromptUser)
Adrian Thurstond3354d01999-03-24 15:05:05 +0000975
976#ifdef __cplusplus
977} /* Extern "C" */
978#endif
979
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000980
981#endif /* __WINE_OLEDLG_H */