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