1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _OLEDLG_H_
7#define _OLEDLG_H_
8
9#include <_mingw_unicode.h>
10
11#ifndef RC_INVOKED
12#ifndef __cplusplus
13/* #define NONAMELESSUNION */
14#endif
15
16#if defined(_UNICODE) && !defined(UNICODE)
17#define UNICODE
18#endif
19#if defined(UNICODE) && !defined(_UNICODE)
20#define _UNICODE
21#endif
22
23#include <windows.h>
24#include <shellapi.h>
25#include <commdlg.h>
26#include <ole2.h>
27#include <string.h>
28#include <tchar.h>
29#endif /* End RC_INVOKED */
30
31#include <dlgs.h>
32
33#define IDC_OLEUIHELP 99
34
35#define IDC_IO_CREATENEW 2100
36#define IDC_IO_CREATEFROMFILE 2101
37#define IDC_IO_LINKFILE 2102
38#define IDC_IO_OBJECTTYPELIST 2103
39#define IDC_IO_DISPLAYASICON 2104
40#define IDC_IO_CHANGEICON 2105
41#define IDC_IO_FILE 2106
42#define IDC_IO_FILEDISPLAY 2107
43#define IDC_IO_RESULTIMAGE 2108
44#define IDC_IO_RESULTTEXT 2109
45#define IDC_IO_ICONDISPLAY 2110
46#define IDC_IO_OBJECTTYPETEXT 2111
47#define IDC_IO_FILETEXT 2112
48#define IDC_IO_FILETYPE 2113
49#define IDC_IO_INSERTCONTROL 2114
50#define IDC_IO_ADDCONTROL 2115
51#define IDC_IO_CONTROLTYPELIST 2116
52
53#define IDC_PS_PASTE 500
54#define IDC_PS_PASTELINK 501
55#define IDC_PS_SOURCETEXT 502
56#define IDC_PS_PASTELIST 503
57#define IDC_PS_PASTELINKLIST 504
58#define IDC_PS_DISPLAYLIST 505
59#define IDC_PS_DISPLAYASICON 506
60#define IDC_PS_ICONDISPLAY 507
61#define IDC_PS_CHANGEICON 508
62#define IDC_PS_RESULTIMAGE 509
63#define IDC_PS_RESULTTEXT 510
64
65#define IDC_CI_GROUP 120
66#define IDC_CI_CURRENT 121
67#define IDC_CI_CURRENTICON 122
68#define IDC_CI_DEFAULT 123
69#define IDC_CI_DEFAULTICON 124
70#define IDC_CI_FROMFILE 125
71#define IDC_CI_FROMFILEEDIT 126
72#define IDC_CI_ICONLIST 127
73#define IDC_CI_LABEL 128
74#define IDC_CI_LABELEDIT 129
75#define IDC_CI_BROWSE 130
76#define IDC_CI_ICONDISPLAY 131
77
78#define IDC_CV_OBJECTTYPE 150
79#define IDC_CV_DISPLAYASICON 152
80#define IDC_CV_CHANGEICON 153
81#define IDC_CV_ACTIVATELIST 154
82#define IDC_CV_CONVERTTO 155
83#define IDC_CV_ACTIVATEAS 156
84#define IDC_CV_RESULTTEXT 157
85#define IDC_CV_CONVERTLIST 158
86#define IDC_CV_ICONDISPLAY 165
87
88#define IDC_EL_CHANGESOURCE 201
89#define IDC_EL_AUTOMATIC 202
90#define IDC_EL_CANCELLINK 209
91#define IDC_EL_UPDATENOW 210
92#define IDC_EL_OPENSOURCE 211
93#define IDC_EL_MANUAL 212
94#define IDC_EL_LINKSOURCE 216
95#define IDC_EL_LINKTYPE 217
96#define IDC_EL_LINKSLISTBOX 206
97#define IDC_EL_COL1 220
98#define IDC_EL_COL2 221
99#define IDC_EL_COL3 222
100
101#define IDC_BZ_RETRY 600
102#define IDC_BZ_ICON 601
103#define IDC_BZ_MESSAGE1 602
104#define IDC_BZ_SWITCHTO 604
105
106#define IDC_UL_METER 1029
107#define IDC_UL_STOP 1030
108#define IDC_UL_PERCENT 1031
109#define IDC_UL_PROGRESS 1032
110
111#define IDC_PU_LINKS 900
112#define IDC_PU_TEXT 901
113#define IDC_PU_CONVERT 902
114#define IDC_PU_ICON 908
115
116#define IDC_GP_OBJECTNAME 1009
117#define IDC_GP_OBJECTTYPE 1010
118#define IDC_GP_OBJECTSIZE 1011
119#define IDC_GP_CONVERT 1013
120#define IDC_GP_OBJECTICON 1014
121#define IDC_GP_OBJECTLOCATION 1022
122
123#define IDC_VP_PERCENT 1000
124#define IDC_VP_CHANGEICON 1001
125#define IDC_VP_EDITABLE 1002
126#define IDC_VP_ASICON 1003
127#define IDC_VP_RELATIVE 1005
128#define IDC_VP_SPIN 1006
129#define IDC_VP_SCALETXT 1034
130#define IDC_VP_ICONDISPLAY 1021
131#define IDC_VP_RESULTIMAGE 1033
132
133#define IDC_LP_OPENSOURCE 1006
134#define IDC_LP_UPDATENOW 1007
135#define IDC_LP_BREAKLINK 1008
136#define IDC_LP_LINKSOURCE 1012
137#define IDC_LP_CHANGESOURCE 1015
138#define IDC_LP_AUTOMATIC 1016
139#define IDC_LP_MANUAL 1017
140#define IDC_LP_DATE 1018
141#define IDC_LP_TIME 1019
142
143#define IDD_INSERTOBJECT 1000
144#define IDD_CHANGEICON 1001
145#define IDD_CONVERT 1002
146#define IDD_PASTESPECIAL 1003
147#define IDD_EDITLINKS 1004
148#define IDD_BUSY 1006
149#define IDD_UPDATELINKS 1007
150#define IDD_CHANGESOURCE 1009
151#define IDD_INSERTFILEBROWSE 1010
152#define IDD_CHANGEICONBROWSE 1011
153#define IDD_CONVERTONLY 1012
154#define IDD_CHANGESOURCE4 1013
155#define IDD_GNRLPROPS 1100
156#define IDD_VIEWPROPS 1101
157#define IDD_LINKPROPS 1102
158#define IDD_CONVERT4 1103
159#define IDD_CONVERTONLY4 1104
160#define IDD_EDITLINKS4 1105
161#define IDD_GNRLPROPS4 1106
162#define IDD_LINKPROPS4 1107
163#define IDD_PASTESPECIAL4 1108
164
165#define IDD_CANNOTUPDATELINK 1008
166#define IDD_LINKSOURCEUNAVAILABLE 1020
167#define IDD_SERVERNOTFOUND 1023
168#define IDD_OUTOFMEMORY 1024
169#define IDD_SERVERNOTREGW 1021
170#define IDD_LINKTYPECHANGEDW 1022
171#define IDD_SERVERNOTREGA 1025
172#define IDD_LINKTYPECHANGEDA 1026
173
174#define IDD_SERVERNOTREG __MINGW_NAME_AW(IDD_SERVERNOTREG)
175#define IDD_LINKTYPECHANGED __MINGW_NAME_AW(IDD_LINKTYPECHANGED)
176
177#ifndef RC_INVOKED
178
179#ifdef __cplusplus
180extern "C" {
181#endif
182
183#pragma pack(push,8)
184
185#define OLESTDDELIM TEXT("\\")
186
187  typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND,UINT,WPARAM,LPARAM);
188
189#define SZOLEUI_MSG_HELP TEXT("OLEUI_MSG_HELP")
190#define SZOLEUI_MSG_ENDDIALOG TEXT("OLEUI_MSG_ENDDIALOG")
191#define SZOLEUI_MSG_BROWSE TEXT("OLEUI_MSG_BROWSE")
192#define SZOLEUI_MSG_CHANGEICON TEXT("OLEUI_MSG_CHANGEICON")
193#define SZOLEUI_MSG_CLOSEBUSYDIALOG TEXT("OLEUI_MSG_CLOSEBUSYDIALOG")
194#define SZOLEUI_MSG_CONVERT TEXT("OLEUI_MSG_CONVERT")
195#define SZOLEUI_MSG_CHANGESOURCE TEXT("OLEUI_MSG_CHANGESOURCE")
196#define SZOLEUI_MSG_ADDCONTROL TEXT("OLEUI_MSG_ADDCONTROL")
197#define SZOLEUI_MSG_BROWSE_OFN TEXT("OLEUI_MSG_BROWSE_OFN")
198
199#define ID_BROWSE_CHANGEICON 1
200#define ID_BROWSE_INSERTFILE 2
201#define ID_BROWSE_ADDCONTROL 3
202#define ID_BROWSE_CHANGESOURCE 4
203
204#define OLEUI_FALSE 0
205#define OLEUI_SUCCESS 1
206#define OLEUI_OK 1
207#define OLEUI_CANCEL 2
208
209#define OLEUI_ERR_STANDARDMIN 100
210#define OLEUI_ERR_OLEMEMALLOC 100
211#define OLEUI_ERR_STRUCTURENULL 101
212#define OLEUI_ERR_STRUCTUREINVALID 102
213#define OLEUI_ERR_CBSTRUCTINCORRECT 103
214#define OLEUI_ERR_HWNDOWNERINVALID 104
215#define OLEUI_ERR_LPSZCAPTIONINVALID 105
216#define OLEUI_ERR_LPFNHOOKINVALID 106
217#define OLEUI_ERR_HINSTANCEINVALID 107
218#define OLEUI_ERR_LPSZTEMPLATEINVALID 108
219#define OLEUI_ERR_HRESOURCEINVALID 109
220
221#define OLEUI_ERR_FINDTEMPLATEFAILURE 110
222#define OLEUI_ERR_LOADTEMPLATEFAILURE 111
223#define OLEUI_ERR_DIALOGFAILURE 112
224#define OLEUI_ERR_LOCALMEMALLOC 113
225#define OLEUI_ERR_GLOBALMEMALLOC 114
226#define OLEUI_ERR_LOADSTRING 115
227
228#define OLEUI_ERR_STANDARDMAX 116
229
230  STDAPI_(WINBOOL) OleUIAddVerbMenuW(LPOLEOBJECT lpOleObj,LPCWSTR lpszShortType,HMENU hMenu,UINT uPos,UINT uIDVerbMin,UINT uIDVerbMax,WINBOOL bAddConvert,UINT idConvert,HMENU *lphMenu);
231  STDAPI_(WINBOOL) OleUIAddVerbMenuA(LPOLEOBJECT lpOleObj,LPCSTR lpszShortType,HMENU hMenu,UINT uPos,UINT uIDVerbMin,UINT uIDVerbMax,WINBOOL bAddConvert,UINT idConvert,HMENU *lphMenu);
232
233#define OleUIAddVerbMenu __MINGW_NAME_AW(OleUIAddVerbMenu)
234
235  typedef struct tagOLEUIINSERTOBJECTW {
236    DWORD cbStruct;
237    DWORD dwFlags;
238    HWND hWndOwner;
239    LPCWSTR lpszCaption;
240    LPFNOLEUIHOOK lpfnHook;
241    LPARAM lCustData;
242    HINSTANCE hInstance;
243    LPCWSTR lpszTemplate;
244    HRSRC hResource;
245    CLSID clsid;
246    LPWSTR lpszFile;
247    UINT cchFile;
248    UINT cClsidExclude;
249    LPCLSID lpClsidExclude;
250    IID iid;
251    DWORD oleRender;
252    LPFORMATETC lpFormatEtc;
253    LPOLECLIENTSITE lpIOleClientSite;
254    LPSTORAGE lpIStorage;
255    LPVOID *ppvObj;
256    SCODE sc;
257    HGLOBAL hMetaPict;
258  } OLEUIINSERTOBJECTW,*POLEUIINSERTOBJECTW,*LPOLEUIINSERTOBJECTW;
259
260  typedef struct tagOLEUIINSERTOBJECTA {
261    DWORD cbStruct;
262    DWORD dwFlags;
263    HWND hWndOwner;
264    LPCSTR lpszCaption;
265    LPFNOLEUIHOOK lpfnHook;
266    LPARAM lCustData;
267    HINSTANCE hInstance;
268    LPCSTR lpszTemplate;
269    HRSRC hResource;
270    CLSID clsid;
271    LPSTR lpszFile;
272    UINT cchFile;
273    UINT cClsidExclude;
274    LPCLSID lpClsidExclude;
275    IID iid;
276    DWORD oleRender;
277    LPFORMATETC lpFormatEtc;
278    LPOLECLIENTSITE lpIOleClientSite;
279    LPSTORAGE lpIStorage;
280    LPVOID *ppvObj;
281    SCODE sc;
282    HGLOBAL hMetaPict;
283  } OLEUIINSERTOBJECTA,*POLEUIINSERTOBJECTA,*LPOLEUIINSERTOBJECTA;
284
285  STDAPI_(UINT) OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
286  STDAPI_(UINT) OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
287
288#define tagOLEUIINSERTOBJECT __MINGW_NAME_AW(tagOLEUIINSERTOBJECT)
289
290#define OLEUIINSERTOBJECT __MINGW_NAME_AW(OLEUIINSERTOBJECT)
291#define POLEUIINSERTOBJECT __MINGW_NAME_AW(POLEUIINSERTOBJECT)
292#define LPOLEUIINSERTOBJECT __MINGW_NAME_AW(LPOLEUIINSERTOBJECT)
293
294#define OleUIInsertObject __MINGW_NAME_AW(OleUIInsertObject)
295
296#define IOF_SHOWHELP __MSABI_LONG(0x00000001)
297#define IOF_SELECTCREATENEW __MSABI_LONG(0x00000002)
298#define IOF_SELECTCREATEFROMFILE __MSABI_LONG(0x00000004)
299#define IOF_CHECKLINK __MSABI_LONG(0x00000008)
300#define IOF_CHECKDISPLAYASICON __MSABI_LONG(0x00000010)
301#define IOF_CREATENEWOBJECT __MSABI_LONG(0x00000020)
302#define IOF_CREATEFILEOBJECT __MSABI_LONG(0x00000040)
303#define IOF_CREATELINKOBJECT __MSABI_LONG(0x00000080)
304#define IOF_DISABLELINK __MSABI_LONG(0x00000100)
305#define IOF_VERIFYSERVERSEXIST __MSABI_LONG(0x00000200)
306#define IOF_DISABLEDISPLAYASICON __MSABI_LONG(0x00000400)
307#define IOF_HIDECHANGEICON __MSABI_LONG(0x00000800)
308#define IOF_SHOWINSERTCONTROL __MSABI_LONG(0x00001000)
309#define IOF_SELECTCREATECONTROL __MSABI_LONG(0x00002000)
310
311#define OLEUI_IOERR_LPSZFILEINVALID (OLEUI_ERR_STANDARDMAX+0)
312#define OLEUI_IOERR_LPSZLABELINVALID (OLEUI_ERR_STANDARDMAX+1)
313#define OLEUI_IOERR_HICONINVALID (OLEUI_ERR_STANDARDMAX+2)
314#define OLEUI_IOERR_LPFORMATETCINVALID (OLEUI_ERR_STANDARDMAX+3)
315#define OLEUI_IOERR_PPVOBJINVALID (OLEUI_ERR_STANDARDMAX+4)
316#define OLEUI_IOERR_LPIOLECLIENTSITEINVALID (OLEUI_ERR_STANDARDMAX+5)
317#define OLEUI_IOERR_LPISTORAGEINVALID (OLEUI_ERR_STANDARDMAX+6)
318#define OLEUI_IOERR_SCODEHASERROR (OLEUI_ERR_STANDARDMAX+7)
319#define OLEUI_IOERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+8)
320#define OLEUI_IOERR_CCHFILEINVALID (OLEUI_ERR_STANDARDMAX+9)
321
322  typedef enum tagOLEUIPASTEFLAG {
323    OLEUIPASTE_ENABLEICON = 2048,OLEUIPASTE_PASTEONLY = 0,OLEUIPASTE_PASTE = 512,OLEUIPASTE_LINKANYTYPE = 1024,OLEUIPASTE_LINKTYPE1 = 1,
324    OLEUIPASTE_LINKTYPE2 = 2,OLEUIPASTE_LINKTYPE3 = 4,OLEUIPASTE_LINKTYPE4 = 8,OLEUIPASTE_LINKTYPE5 = 16,OLEUIPASTE_LINKTYPE6 = 32,
325    OLEUIPASTE_LINKTYPE7 = 64,OLEUIPASTE_LINKTYPE8 = 128
326  } OLEUIPASTEFLAG;
327
328  typedef struct tagOLEUIPASTEENTRYW {
329    FORMATETC fmtetc;
330    LPCWSTR lpstrFormatName;
331    LPCWSTR lpstrResultText;
332    DWORD dwFlags;
333    DWORD dwScratchSpace;
334  } OLEUIPASTEENTRYW,*POLEUIPASTEENTRYW,*LPOLEUIPASTEENTRYW;
335
336  typedef struct tagOLEUIPASTEENTRYA {
337    FORMATETC fmtetc;
338    LPCSTR lpstrFormatName;
339    LPCSTR lpstrResultText;
340    DWORD dwFlags;
341    DWORD dwScratchSpace;
342  } OLEUIPASTEENTRYA,*POLEUIPASTEENTRYA,*LPOLEUIPASTEENTRYA;
343
344#define tagOLEUIPASTEENTRY __MINGW_NAME_AW(tagOLEUIPASTEENTRY)
345
346#define OLEUIPASTEENTRY __MINGW_NAME_AW(OLEUIPASTEENTRY)
347#define POLEUIPASTEENTRY __MINGW_NAME_AW(POLEUIPASTEENTRY)
348#define LPOLEUIPASTEENTRY __MINGW_NAME_AW(LPOLEUIPASTEENTRY)
349
350#define PS_MAXLINKTYPES 8
351
352  typedef struct tagOLEUIPASTESPECIALW {
353    DWORD cbStruct;
354    DWORD dwFlags;
355    HWND hWndOwner;
356    LPCWSTR lpszCaption;
357    LPFNOLEUIHOOK lpfnHook;
358    LPARAM lCustData;
359    HINSTANCE hInstance;
360    LPCWSTR lpszTemplate;
361    HRSRC hResource;
362    LPDATAOBJECT lpSrcDataObj;
363    LPOLEUIPASTEENTRYW arrPasteEntries;
364    int cPasteEntries;
365    UINT *arrLinkTypes;
366    int cLinkTypes;
367    UINT cClsidExclude;
368    LPCLSID lpClsidExclude;
369    int nSelectedIndex;
370    WINBOOL fLink;
371    HGLOBAL hMetaPict;
372    SIZEL sizel;
373  } OLEUIPASTESPECIALW,*POLEUIPASTESPECIALW,*LPOLEUIPASTESPECIALW;
374
375  typedef struct tagOLEUIPASTESPECIALA {
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    WINBOOL fLink;
394    HGLOBAL hMetaPict;
395    SIZEL sizel;
396  } OLEUIPASTESPECIALA,*POLEUIPASTESPECIALA,*LPOLEUIPASTESPECIALA;
397
398#define tagOLEUIPASTESPECIAL __MINGW_NAME_AW(tagOLEUIPASTESPECIAL)
399
400#define OLEUIPASTESPECIAL __MINGW_NAME_AW(OLEUIPASTESPECIAL)
401#define POLEUIPASTESPECIAL __MINGW_NAME_AW(POLEUIPASTESPECIAL)
402#define LPOLEUIPASTESPECIAL __MINGW_NAME_AW(LPOLEUIPASTESPECIAL)
403
404  STDAPI_(UINT) OleUIPasteSpecialW(LPOLEUIPASTESPECIALW);
405  STDAPI_(UINT) OleUIPasteSpecialA(LPOLEUIPASTESPECIALA);
406
407#define OleUIPasteSpecial __MINGW_NAME_AW(OleUIPasteSpecial)
408
409#define PSF_SHOWHELP __MSABI_LONG(0x00000001)
410#define PSF_SELECTPASTE __MSABI_LONG(0x00000002)
411#define PSF_SELECTPASTELINK __MSABI_LONG(0x00000004)
412
413#define PSF_CHECKDISPLAYASICON __MSABI_LONG(0x00000008)
414#define PSF_DISABLEDISPLAYASICON __MSABI_LONG(0x00000010)
415#define PSF_HIDECHANGEICON __MSABI_LONG(0x00000020)
416#define PSF_STAYONCLIPBOARDCHANGE __MSABI_LONG(0x00000040)
417#define PSF_NOREFRESHDATAOBJECT __MSABI_LONG(0x00000080)
418
419#define OLEUI_IOERR_SRCDATAOBJECTINVALID (OLEUI_ERR_STANDARDMAX+0)
420#define OLEUI_IOERR_ARRPASTEENTRIESINVALID (OLEUI_ERR_STANDARDMAX+1)
421#define OLEUI_IOERR_ARRLINKTYPESINVALID (OLEUI_ERR_STANDARDMAX+2)
422#define OLEUI_PSERR_CLIPBOARDCHANGED (OLEUI_ERR_STANDARDMAX+3)
423#define OLEUI_PSERR_GETCLIPBOARDFAILED (OLEUI_ERR_STANDARDMAX+4)
424
425#undef INTERFACE
426#define INTERFACE IOleUILinkContainerW
427
428  DECLARE_INTERFACE_(IOleUILinkContainerW,IUnknown) {
429    STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
430    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
431    STDMETHOD_(ULONG,Release)(THIS) PURE;
432    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
433    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD dwUpdateOpt) PURE;
434    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD *lpdwUpdateOpt) PURE;
435    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink,LPWSTR lpszDisplayName,ULONG lenFileName,ULONG *pchEaten,WINBOOL fValidateSource) PURE;
436    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPWSTR *lplpszDisplayName,ULONG *lplenFileName,LPWSTR *lplpszFullLinkType,LPWSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
437    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
438    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
439    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
440  };
441
442  typedef IOleUILinkContainerW *LPOLEUILINKCONTAINERW;
443
444#undef INTERFACE
445#define INTERFACE IOleUILinkContainerA
446
447  DECLARE_INTERFACE_(IOleUILinkContainerA,IUnknown) {
448    STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
449    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
450    STDMETHOD_(ULONG,Release)(THIS) PURE;
451    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
452    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD dwUpdateOpt) PURE;
453    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD *lpdwUpdateOpt) PURE;
454    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink,LPSTR lpszDisplayName,ULONG lenFileName,ULONG *pchEaten,WINBOOL fValidateSource) PURE;
455    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPSTR *lplpszDisplayName,ULONG *lplenFileName,LPSTR *lplpszFullLinkType,LPSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
456    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
457    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
458    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
459  };
460
461  typedef IOleUILinkContainerA *LPOLEUILINKCONTAINERA;
462
463#define IOleUILinkContainer __MINGW_NAME_AW(IOleUILinkContainer)
464#define LPOLEUILINKCONTAINER __MINGW_NAME_AW(LPOLEUILINKCONTAINER)
465
466#define IOleUILinkContainerVtbl __MINGW_NAME_AW_EXT(IOleUILinkContainer,Vtbl)
467
468  typedef struct tagOLEUIEDITLINKSW {
469    DWORD cbStruct;
470    DWORD dwFlags;
471    HWND hWndOwner;
472    LPCWSTR lpszCaption;
473    LPFNOLEUIHOOK lpfnHook;
474    LPARAM lCustData;
475    HINSTANCE hInstance;
476    LPCWSTR lpszTemplate;
477    HRSRC hResource;
478    LPOLEUILINKCONTAINERW lpOleUILinkContainer;
479  } OLEUIEDITLINKSW,*POLEUIEDITLINKSW,*LPOLEUIEDITLINKSW;
480
481  typedef struct tagOLEUIEDITLINKSA {
482    DWORD cbStruct;
483    DWORD dwFlags;
484    HWND hWndOwner;
485    LPCSTR lpszCaption;
486    LPFNOLEUIHOOK lpfnHook;
487    LPARAM lCustData;
488    HINSTANCE hInstance;
489    LPCSTR lpszTemplate;
490    HRSRC hResource;
491    LPOLEUILINKCONTAINERA lpOleUILinkContainer;
492  } OLEUIEDITLINKSA,*POLEUIEDITLINKSA,*LPOLEUIEDITLINKSA;
493
494#define tagOLEUIEDITLINKS __MINGW_NAME_AW(tagOLEUIEDITLINKS)
495
496#define OLEUIEDITLINKS __MINGW_NAME_AW(OLEUIEDITLINKS)
497#define POLEUIEDITLINKS __MINGW_NAME_AW(POLEUIEDITLINKS)
498#define LPOLEUIEDITLINKS __MINGW_NAME_AW(LPOLEUIEDITLINKS)
499
500#define OLEUI_ELERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+0)
501#define OLEUI_ELERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1)
502
503  STDAPI_(UINT) OleUIEditLinksW(LPOLEUIEDITLINKSW);
504  STDAPI_(UINT) OleUIEditLinksA(LPOLEUIEDITLINKSA);
505
506#define OleUIEditLinks __MINGW_NAME_AW(OleUIEditLinks)
507
508#define ELF_SHOWHELP __MSABI_LONG(0x00000001)
509#define ELF_DISABLEUPDATENOW __MSABI_LONG(0x00000002)
510#define ELF_DISABLEOPENSOURCE __MSABI_LONG(0x00000004)
511#define ELF_DISABLECHANGESOURCE __MSABI_LONG(0x00000008)
512#define ELF_DISABLECANCELLINK __MSABI_LONG(0x00000010)
513
514  typedef struct tagOLEUICHANGEICONW {
515    DWORD cbStruct;
516    DWORD dwFlags;
517    HWND hWndOwner;
518    LPCWSTR lpszCaption;
519    LPFNOLEUIHOOK lpfnHook;
520    LPARAM lCustData;
521    HINSTANCE hInstance;
522    LPCWSTR lpszTemplate;
523    HRSRC hResource;
524    HGLOBAL hMetaPict;
525    CLSID clsid;
526    WCHAR szIconExe[MAX_PATH];
527    int cchIconExe;
528  } OLEUICHANGEICONW,*POLEUICHANGEICONW,*LPOLEUICHANGEICONW;
529
530  typedef struct tagOLEUICHANGEICONA {
531    DWORD cbStruct;
532    DWORD dwFlags;
533    HWND hWndOwner;
534    LPCSTR lpszCaption;
535    LPFNOLEUIHOOK lpfnHook;
536    LPARAM lCustData;
537    HINSTANCE hInstance;
538    LPCSTR lpszTemplate;
539    HRSRC hResource;
540    HGLOBAL hMetaPict;
541    CLSID clsid;
542    CHAR szIconExe[MAX_PATH];
543    int cchIconExe;
544  } OLEUICHANGEICONA,*POLEUICHANGEICONA,*LPOLEUICHANGEICONA;
545
546  STDAPI_(UINT) OleUIChangeIconW(LPOLEUICHANGEICONW);
547  STDAPI_(UINT) OleUIChangeIconA(LPOLEUICHANGEICONA);
548
549
550#define tagOLEUICHANGEICON __MINGW_NAME_AW(tagOLEUICHANGEICON)
551
552#define OLEUICHANGEICON __MINGW_NAME_AW(OLEUICHANGEICON)
553#define POLEUICHANGEICON __MINGW_NAME_AW(POLEUICHANGEICON)
554#define LPOLEUICHANGEICON __MINGW_NAME_AW(LPOLEUICHANGEICON)
555
556#define OleUIChangeIcon __MINGW_NAME_AW(OleUIChangeIcon)
557
558#define CIF_SHOWHELP __MSABI_LONG(0x00000001)
559#define CIF_SELECTCURRENT __MSABI_LONG(0x00000002)
560#define CIF_SELECTDEFAULT __MSABI_LONG(0x00000004)
561#define CIF_SELECTFROMFILE __MSABI_LONG(0x00000008)
562#define CIF_USEICONEXE __MSABI_LONG(0x00000010)
563
564#define OLEUI_CIERR_MUSTHAVECLSID (OLEUI_ERR_STANDARDMAX+0)
565#define OLEUI_CIERR_MUSTHAVECURRENTMETAFILE (OLEUI_ERR_STANDARDMAX+1)
566#define OLEUI_CIERR_SZICONEXEINVALID (OLEUI_ERR_STANDARDMAX+2)
567
568#define PROP_HWND_CHGICONDLG TEXT("HWND_CIDLG")
569
570  typedef struct tagOLEUICONVERTW {
571    DWORD cbStruct;
572    DWORD dwFlags;
573    HWND hWndOwner;
574    LPCWSTR lpszCaption;
575    LPFNOLEUIHOOK lpfnHook;
576    LPARAM lCustData;
577    HINSTANCE hInstance;
578    LPCWSTR lpszTemplate;
579    HRSRC hResource;
580    CLSID clsid;
581    CLSID clsidConvertDefault;
582    CLSID clsidActivateDefault;
583    CLSID clsidNew;
584    DWORD dvAspect;
585    WORD wFormat;
586    WINBOOL fIsLinkedObject;
587    HGLOBAL hMetaPict;
588    LPWSTR lpszUserType;
589    WINBOOL fObjectsIconChanged;
590    LPWSTR lpszDefLabel;
591    UINT cClsidExclude;
592    LPCLSID lpClsidExclude;
593  } OLEUICONVERTW,*POLEUICONVERTW,*LPOLEUICONVERTW;
594
595  typedef struct tagOLEUICONVERTA {
596    DWORD cbStruct;
597    DWORD dwFlags;
598    HWND hWndOwner;
599    LPCSTR lpszCaption;
600    LPFNOLEUIHOOK lpfnHook;
601    LPARAM lCustData;
602    HINSTANCE hInstance;
603    LPCSTR lpszTemplate;
604    HRSRC hResource;
605    CLSID clsid;
606    CLSID clsidConvertDefault;
607    CLSID clsidActivateDefault;
608    CLSID clsidNew;
609    DWORD dvAspect;
610    WORD wFormat;
611    WINBOOL fIsLinkedObject;
612    HGLOBAL hMetaPict;
613    LPSTR lpszUserType;
614    WINBOOL fObjectsIconChanged;
615    LPSTR lpszDefLabel;
616    UINT cClsidExclude;
617    LPCLSID lpClsidExclude;
618  } OLEUICONVERTA,*POLEUICONVERTA,*LPOLEUICONVERTA;
619
620  STDAPI_(UINT) OleUIConvertW(LPOLEUICONVERTW);
621  STDAPI_(UINT) OleUIConvertA(LPOLEUICONVERTA);
622
623#define tagOLEUICONVERT __MINGW_NAME_AW(tagOLEUICONVERT)
624
625#define OLEUICONVERT __MINGW_NAME_AW(OLEUICONVERT)
626#define POLEUICONVERT __MINGW_NAME_AW(POLEUICONVERT)
627#define LPOLEUICONVERT __MINGW_NAME_AW(LPOLEUICONVERT)
628
629#define OleUIConvert __MINGW_NAME_AW(OleUIConvert)
630
631  STDAPI_(WINBOOL) OleUICanConvertOrActivateAs(REFCLSID rClsid,WINBOOL fIsLinkedObject,WORD wFormat);
632
633#define CF_SHOWHELPBUTTON __MSABI_LONG(0x00000001)
634#define CF_SETCONVERTDEFAULT __MSABI_LONG(0x00000002)
635#define CF_SETACTIVATEDEFAULT __MSABI_LONG(0x00000004)
636#define CF_SELECTCONVERTTO __MSABI_LONG(0x00000008)
637#define CF_SELECTACTIVATEAS __MSABI_LONG(0x00000010)
638#define CF_DISABLEDISPLAYASICON __MSABI_LONG(0x00000020)
639#define CF_DISABLEACTIVATEAS __MSABI_LONG(0x00000040)
640#define CF_HIDECHANGEICON __MSABI_LONG(0x00000080)
641#define CF_CONVERTONLY __MSABI_LONG(0x00000100)
642
643#define OLEUI_CTERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+1)
644#define OLEUI_CTERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+2)
645#define OLEUI_CTERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+3)
646#define OLEUI_CTERR_HMETAPICTINVALID (OLEUI_ERR_STANDARDMAX+4)
647#define OLEUI_CTERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+5)
648
649  typedef struct tagOLEUIBUSYW {
650    DWORD cbStruct;
651    DWORD dwFlags;
652    HWND hWndOwner;
653    LPCWSTR lpszCaption;
654    LPFNOLEUIHOOK lpfnHook;
655    LPARAM lCustData;
656    HINSTANCE hInstance;
657    LPCWSTR lpszTemplate;
658    HRSRC hResource;
659    HTASK hTask;
660    HWND *lphWndDialog;
661  } OLEUIBUSYW,*POLEUIBUSYW,*LPOLEUIBUSYW;
662
663  typedef struct tagOLEUIBUSYA {
664    DWORD cbStruct;
665    DWORD dwFlags;
666    HWND hWndOwner;
667    LPCSTR lpszCaption;
668    LPFNOLEUIHOOK lpfnHook;
669    LPARAM lCustData;
670    HINSTANCE hInstance;
671    LPCSTR lpszTemplate;
672    HRSRC hResource;
673    HTASK hTask;
674    HWND *lphWndDialog;
675  } OLEUIBUSYA,*POLEUIBUSYA,*LPOLEUIBUSYA;
676
677  STDAPI_(UINT) OleUIBusyW(LPOLEUIBUSYW);
678  STDAPI_(UINT) OleUIBusyA(LPOLEUIBUSYA);
679
680#define tagOLEUIBUSY __MINGW_NAME_AW(tagOLEUIBUSY)
681
682#define OLEUIBUSY __MINGW_NAME_AW(OLEUIBUSY)
683#define POLEUIBUSY __MINGW_NAME_AW(POLEUIBUSY)
684#define LPOLEUIBUSY __MINGW_NAME_AW(LPOLEUIBUSY)
685
686#define OleUIBusy __MINGW_NAME_AW(OleUIBusy)
687
688#define BZ_DISABLECANCELBUTTON __MSABI_LONG(0x00000001)
689#define BZ_DISABLESWITCHTOBUTTON __MSABI_LONG(0x00000002)
690#define BZ_DISABLERETRYBUTTON __MSABI_LONG(0x00000004)
691
692#define BZ_NOTRESPONDINGDIALOG __MSABI_LONG(0x00000008)
693
694#define OLEUI_BZERR_HTASKINVALID (OLEUI_ERR_STANDARDMAX+0)
695#define OLEUI_BZ_SWITCHTOSELECTED (OLEUI_ERR_STANDARDMAX+1)
696#define OLEUI_BZ_RETRYSELECTED (OLEUI_ERR_STANDARDMAX+2)
697#define OLEUI_BZ_CALLUNBLOCKED (OLEUI_ERR_STANDARDMAX+3)
698
699  typedef struct tagOLEUICHANGESOURCEW {
700    DWORD cbStruct;
701    DWORD dwFlags;
702    HWND hWndOwner;
703    LPCWSTR lpszCaption;
704    LPFNOLEUIHOOK lpfnHook;
705    LPARAM lCustData;
706    HINSTANCE hInstance;
707    LPCWSTR lpszTemplate;
708    HRSRC hResource;
709    OPENFILENAMEW *lpOFN;
710    DWORD dwReserved1[4];
711    LPOLEUILINKCONTAINERW lpOleUILinkContainer;
712    DWORD dwLink;
713    LPWSTR lpszDisplayName;
714    ULONG nFileLength;
715    LPWSTR lpszFrom;
716    LPWSTR lpszTo;
717  } OLEUICHANGESOURCEW,*POLEUICHANGESOURCEW,*LPOLEUICHANGESOURCEW;
718
719  typedef struct tagOLEUICHANGESOURCEA {
720    DWORD cbStruct;
721    DWORD dwFlags;
722    HWND hWndOwner;
723    LPCSTR lpszCaption;
724    LPFNOLEUIHOOK lpfnHook;
725    LPARAM lCustData;
726    HINSTANCE hInstance;
727    LPCSTR lpszTemplate;
728    HRSRC hResource;
729    OPENFILENAMEA *lpOFN;
730    DWORD dwReserved1[4];
731    LPOLEUILINKCONTAINERA lpOleUILinkContainer;
732    DWORD dwLink;
733    LPSTR lpszDisplayName;
734    ULONG nFileLength;
735    LPSTR lpszFrom;
736    LPSTR lpszTo;
737  } OLEUICHANGESOURCEA,*POLEUICHANGESOURCEA,*LPOLEUICHANGESOURCEA;
738
739  STDAPI_(UINT) OleUIChangeSourceW(LPOLEUICHANGESOURCEW);
740  STDAPI_(UINT) OleUIChangeSourceA(LPOLEUICHANGESOURCEA);
741
742#define tagOLEUICHANGESOURCE __MINGW_NAME_AW(tagOLEUICHANGESOURCE)
743
744#define OLEUICHANGESOURCE __MINGW_NAME_AW(OLEUICHANGESOURCE)
745#define POLEUICHANGESOURCE __MINGW_NAME_AW(POLEUICHANGESOURCE)
746#define LPOLEUICHANGESOURCE __MINGW_NAME_AW(LPOLEUICHANGESOURCE)
747
748#define OleUIChangeSource __MINGW_NAME_AW(OleUIChangeSource)
749
750#define CSF_SHOWHELP __MSABI_LONG(0x00000001)
751#define CSF_VALIDSOURCE __MSABI_LONG(0x00000002)
752#define CSF_ONLYGETSOURCE __MSABI_LONG(0x00000004)
753#define CSF_EXPLORER __MSABI_LONG(0x00000008)
754
755#define OLEUI_CSERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+0)
756#define OLEUI_CSERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1)
757#define OLEUI_CSERR_FROMNOTNULL (OLEUI_ERR_STANDARDMAX+2)
758#define OLEUI_CSERR_TONOTNULL (OLEUI_ERR_STANDARDMAX+3)
759#define OLEUI_CSERR_SOURCENULL (OLEUI_ERR_STANDARDMAX+4)
760#define OLEUI_CSERR_SOURCEINVALID (OLEUI_ERR_STANDARDMAX+5)
761#define OLEUI_CSERR_SOURCEPARSERROR (OLEUI_ERR_STANDARDMAX+6)
762#define OLEUI_CSERR_SOURCEPARSEERROR (OLEUI_ERR_STANDARDMAX+6)
763
764#undef INTERFACE
765#define INTERFACE IOleUIObjInfoW
766
767  DECLARE_INTERFACE_(IOleUIObjInfoW,IUnknown) {
768    STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
769    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
770    STDMETHOD_(ULONG,Release)(THIS) PURE;
771    STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject,DWORD *lpdwObjSize,LPWSTR *lplpszLabel,LPWSTR *lplpszType,LPWSTR *lplpszShortType,LPWSTR *lplpszLocation) PURE;
772    STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject,CLSID *lpClassID,WORD *lpwFormat,CLSID *lpConvertDefaultClassID,LPCLSID *lplpClsidExclude,UINT *lpcClsidExclude) PURE;
773    STDMETHOD(ConvertObject)(THIS_ DWORD dwObject,REFCLSID clsidNew) PURE;
774    STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject,HGLOBAL *phMetaPict,DWORD *pdvAspect,int *pnCurrentScale) PURE;
775    STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject,HGLOBAL hMetaPict,DWORD dvAspect,int nCurrentScale,WINBOOL bRelativeToOrig) PURE;
776  };
777
778  typedef IOleUIObjInfoW *LPOLEUIOBJINFOW;
779
780#undef INTERFACE
781#define INTERFACE IOleUIObjInfoA
782
783  DECLARE_INTERFACE_(IOleUIObjInfoA,IUnknown) {
784    STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
785    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
786    STDMETHOD_(ULONG,Release)(THIS) PURE;
787    STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject,DWORD *lpdwObjSize,LPSTR *lplpszLabel,LPSTR *lplpszType,LPSTR *lplpszShortType,LPSTR *lplpszLocation) PURE;
788    STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject,CLSID *lpClassID,WORD *lpwFormat,CLSID *lpConvertDefaultClassID,LPCLSID *lplpClsidExclude,UINT *lpcClsidExclude) PURE;
789    STDMETHOD(ConvertObject)(THIS_ DWORD dwObject,REFCLSID clsidNew) PURE;
790    STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject,HGLOBAL *phMetaPict,DWORD *pdvAspect,int *pnCurrentScale) PURE;
791    STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject,HGLOBAL hMetaPict,DWORD dvAspect,int nCurrentScale,WINBOOL bRelativeToOrig) PURE;
792  };
793
794  typedef IOleUIObjInfoA *LPOLEUIOBJINFOA;
795
796#define IOleUIObjInfo __MINGW_NAME_AW(IOleUIObjInfo)
797#define LPOLEUIOBJINFO __MINGW_NAME_AW(LPOLEUIOBJINFO)
798
799#define IOleUIObjInfoVtbl __MINGW_NAME_AW_EXT(IOleUIObjInfo,Vtbl)
800
801#undef INTERFACE
802#define INTERFACE IOleUILinkInfoW
803
804  DECLARE_INTERFACE_(IOleUILinkInfoW,IOleUILinkContainerW) {
805    STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
806    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
807    STDMETHOD_(ULONG,Release)(THIS) PURE;
808    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
809    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD dwUpdateOpt) PURE;
810    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD *lpdwUpdateOpt) PURE;
811    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink,LPWSTR lpszDisplayName,ULONG lenFileName,ULONG *pchEaten,WINBOOL fValidateSource) PURE;
812    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPWSTR *lplpszDisplayName,ULONG *lplenFileName,LPWSTR *lplpszFullLinkType,LPWSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
813    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
814    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
815    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
816    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,FILETIME *lpLastUpdate) PURE;
817  };
818
819  typedef IOleUILinkInfoW *LPOLEUILINKINFOW;
820
821#undef INTERFACE
822#define INTERFACE IOleUILinkInfoA
823
824  DECLARE_INTERFACE_(IOleUILinkInfoA,IOleUILinkContainerA) {
825    STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
826    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
827    STDMETHOD_(ULONG,Release)(THIS) PURE;
828    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
829    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD dwUpdateOpt) PURE;
830    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink,DWORD *lpdwUpdateOpt) PURE;
831    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink,LPSTR lpszDisplayName,ULONG lenFileName,ULONG *pchEaten,WINBOOL fValidateSource) PURE;
832    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPSTR *lplpszDisplayName,ULONG *lplenFileName,LPSTR *lplpszFullLinkType,LPSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
833    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
834    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
835    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
836    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,FILETIME *lpLastUpdate) PURE;
837  };
838
839  typedef IOleUILinkInfoA *LPOLEUILINKINFOA;
840
841#define IOleUILinkInfo __MINGW_NAME_AW(IOleUILinkInfo)
842#define LPOLEUILINKINFO __MINGW_NAME_AW(LPOLEUILINKINFO)
843
844#define IOleUILinkInfoVtbl __MINGW_NAME_AW_EXT(IOleUILinkInfo,Vtbl)
845
846  struct tagOLEUIOBJECTPROPSW;
847  struct tagOLEUIOBJECTPROPSA;
848
849  typedef struct tagOLEUIGNRLPROPSW {
850    DWORD cbStruct;
851    DWORD dwFlags;
852    DWORD dwReserved1[2];
853    LPFNOLEUIHOOK lpfnHook;
854    LPARAM lCustData;
855    DWORD dwReserved2[3];
856    struct tagOLEUIOBJECTPROPSW *lpOP;
857  } OLEUIGNRLPROPSW,*POLEUIGNRLPROPSW,*LPOLEUIGNRLPROPSW;
858
859  typedef struct tagOLEUIGNRLPROPSA {
860    DWORD cbStruct;
861    DWORD dwFlags;
862    DWORD dwReserved1[2];
863    LPFNOLEUIHOOK lpfnHook;
864    LPARAM lCustData;
865    DWORD dwReserved2[3];
866    struct tagOLEUIOBJECTPROPSA *lpOP;
867  } OLEUIGNRLPROPSA,*POLEUIGNRLPROPSA,*LPOLEUIGNRLPROPSA;
868
869#define tagOLEUIGNRLPROPS __MINGW_NAME_AW(tagOLEUIGNRLPROPS)
870
871#define OLEUIGNRLPROPS __MINGW_NAME_AW(OLEUIGNRLPROPS)
872#define POLEUIGNRLPROPS __MINGW_NAME_AW(POLEUIGNRLPROPS)
873#define LPOLEUIGNRLPROPS __MINGW_NAME_AW(LPOLEUIGNRLPROPS)
874
875  typedef struct tagOLEUIVIEWPROPSW {
876    DWORD cbStruct;
877    DWORD dwFlags;
878    DWORD dwReserved1[2];
879    LPFNOLEUIHOOK lpfnHook;
880    LPARAM lCustData;
881    DWORD dwReserved2[3];
882    struct tagOLEUIOBJECTPROPSW *lpOP;
883    int nScaleMin;
884    int nScaleMax;
885  } OLEUIVIEWPROPSW,*POLEUIVIEWPROPSW,*LPOLEUIVIEWPROPSW;
886
887  typedef struct tagOLEUIVIEWPROPSA {
888    DWORD cbStruct;
889    DWORD dwFlags;
890    DWORD dwReserved1[2];
891    LPFNOLEUIHOOK lpfnHook;
892    LPARAM lCustData;
893    DWORD dwReserved2[3];
894    struct tagOLEUIOBJECTPROPSA *lpOP;
895    int nScaleMin;
896    int nScaleMax;
897  } OLEUIVIEWPROPSA,*POLEUIVIEWPROPSA,*LPOLEUIVIEWPROPSA;
898
899#define tagOLEUIVIEWPROPS __MINGW_NAME_AW(tagOLEUIVIEWPROPS)
900
901#define OLEUIVIEWPROPS __MINGW_NAME_AW(OLEUIVIEWPROPS)
902#define POLEUIVIEWPROPS __MINGW_NAME_AW(POLEUIVIEWPROPS)
903#define LPOLEUIVIEWPROPS __MINGW_NAME_AW(LPOLEUIVIEWPROPS)
904
905#define VPF_SELECTRELATIVE __MSABI_LONG(0x00000001)
906#define VPF_DISABLERELATIVE __MSABI_LONG(0x00000002)
907#define VPF_DISABLESCALE __MSABI_LONG(0x00000004)
908
909  typedef struct tagOLEUILINKPROPSW {
910    DWORD cbStruct;
911    DWORD dwFlags;
912    DWORD dwReserved1[2];
913    LPFNOLEUIHOOK lpfnHook;
914    LPARAM lCustData;
915    DWORD dwReserved2[3];
916    struct tagOLEUIOBJECTPROPSW *lpOP;
917  } OLEUILINKPROPSW,*POLEUILINKPROPSW,*LPOLEUILINKPROPSW;
918
919  typedef struct tagOLEUILINKPROPSA {
920    DWORD cbStruct;
921    DWORD dwFlags;
922    DWORD dwReserved1[2];
923    LPFNOLEUIHOOK lpfnHook;
924    LPARAM lCustData;
925    DWORD dwReserved2[3];
926    struct tagOLEUIOBJECTPROPSA *lpOP;
927  } OLEUILINKPROPSA,*POLEUILINKPROPSA,*LPOLEUILINKPROPSA;
928
929#define tagOLEUILINKPROPS __MINGW_NAME_AW(tagOLEUILINKPROPS)
930
931#define OLEUILINKPROPS __MINGW_NAME_AW(OLEUILINKPROPS)
932#define POLEUILINKPROPS __MINGW_NAME_AW(POLEUILINKPROPS)
933#define LPOLEUILINKPROPS __MINGW_NAME_AW(LPOLEUILINKPROPS)
934
935#include <prsht.h>
936
937#ifndef PSM_SETFINISHTEXTA
938  typedef struct _PROPSHEETHEADER *LPPROPSHEETHEADERW;
939  typedef struct _PROPSHEETHEADER *LPPROPSHEETHEADERA;
940#else
941  typedef struct _PROPSHEETHEADERW *LPPROPSHEETHEADERW;
942  typedef struct _PROPSHEETHEADERA *LPPROPSHEETHEADERA;
943
944#define LPPROPSHEETHEADER __MINGW_NAME_AW(LPPROPSHEETHEADER)
945#endif
946
947  typedef struct tagOLEUIOBJECTPROPSW {
948    DWORD cbStruct;
949    DWORD dwFlags;
950    LPPROPSHEETHEADERW lpPS;
951    DWORD dwObject;
952    LPOLEUIOBJINFOW lpObjInfo;
953    DWORD dwLink;
954    LPOLEUILINKINFOW lpLinkInfo;
955    LPOLEUIGNRLPROPSW lpGP;
956    LPOLEUIVIEWPROPSW lpVP;
957    LPOLEUILINKPROPSW lpLP;
958  } OLEUIOBJECTPROPSW,*POLEUIOBJECTPROPSW,*LPOLEUIOBJECTPROPSW;
959
960  typedef struct tagOLEUIOBJECTPROPSA {
961    DWORD cbStruct;
962    DWORD dwFlags;
963    LPPROPSHEETHEADERA lpPS;
964    DWORD dwObject;
965    LPOLEUIOBJINFOA lpObjInfo;
966    DWORD dwLink;
967    LPOLEUILINKINFOA lpLinkInfo;
968
969    LPOLEUIGNRLPROPSA lpGP;
970    LPOLEUIVIEWPROPSA lpVP;
971    LPOLEUILINKPROPSA lpLP;
972  } OLEUIOBJECTPROPSA,*POLEUIOBJECTPROPSA,*LPOLEUIOBJECTPROPSA;
973
974  STDAPI_(UINT) OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW);
975  STDAPI_(UINT) OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA);
976
977#define tagOLEUIOBJECTPROPS __MINGW_NAME_AW(tagOLEUIOBJECTPROPS)
978
979#define OLEUIOBJECTPROPS __MINGW_NAME_AW(OLEUIOBJECTPROPS)
980#define POLEUIOBJECTPROPS __MINGW_NAME_AW(POLEUIOBJECTPROPS)
981#define LPOLEUIOBJECTPROPS __MINGW_NAME_AW(LPOLEUIOBJECTPROPS)
982
983#define OleUIObjectProperties __MINGW_NAME_AW(OleUIObjectProperties)
984
985#define OPF_OBJECTISLINK __MSABI_LONG(0x00000001)
986#define OPF_NOFILLDEFAULT __MSABI_LONG(0x00000002)
987#define OPF_SHOWHELP __MSABI_LONG(0x00000004)
988#define OPF_DISABLECONVERT __MSABI_LONG(0x00000008)
989
990#define OLEUI_OPERR_SUBPROPNULL (OLEUI_ERR_STANDARDMAX+0)
991#define OLEUI_OPERR_SUBPROPINVALID (OLEUI_ERR_STANDARDMAX+1)
992#define OLEUI_OPERR_PROPSHEETNULL (OLEUI_ERR_STANDARDMAX+2)
993#define OLEUI_OPERR_PROPSHEETINVALID (OLEUI_ERR_STANDARDMAX+3)
994#define OLEUI_OPERR_SUPPROP (OLEUI_ERR_STANDARDMAX+4)
995#define OLEUI_OPERR_PROPSINVALID (OLEUI_ERR_STANDARDMAX+5)
996#define OLEUI_OPERR_PAGESINCORRECT (OLEUI_ERR_STANDARDMAX+6)
997#define OLEUI_OPERR_INVALIDPAGES (OLEUI_ERR_STANDARDMAX+7)
998#define OLEUI_OPERR_NOTSUPPORTED (OLEUI_ERR_STANDARDMAX+8)
999#define OLEUI_OPERR_DLGPROCNOTNULL (OLEUI_ERR_STANDARDMAX+9)
1000#define OLEUI_OPERR_LPARAMNOTZERO (OLEUI_ERR_STANDARDMAX+10)
1001
1002#define OLEUI_GPERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+11)
1003#define OLEUI_GPERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+12)
1004#define OLEUI_GPERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+13)
1005#define OLEUI_GPERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+14)
1006#define OLEUI_VPERR_METAPICTINVALID (OLEUI_ERR_STANDARDMAX+15)
1007#define OLEUI_VPERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+16)
1008#define OLEUI_LPERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+17)
1009#define OLEUI_LPERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+18)
1010
1011#define OLEUI_OPERR_PROPERTYSHEET (OLEUI_ERR_STANDARDMAX+19)
1012#define OLEUI_OPERR_OBJINFOINVALID (OLEUI_ERR_STANDARDMAX+20)
1013#define OLEUI_OPERR_LINKINFOINVALID (OLEUI_ERR_STANDARDMAX+21)
1014
1015#define OLEUI_QUERY_GETCLASSID 0xFF00
1016#define OLEUI_QUERY_LINKBROKEN 0xFF01
1017
1018  int __cdecl OleUIPromptUserW(int nTemplate,HWND hwndParent,...);
1019  int __cdecl OleUIPromptUserA(int nTemplate,HWND hwndParent,...);
1020
1021#define OleUIPromptUser __MINGW_NAME_AW(OleUIPromptUser)
1022
1023  STDAPI_(WINBOOL) OleUIUpdateLinksW(LPOLEUILINKCONTAINERW lpOleUILinkCntr,HWND hwndParent,LPWSTR lpszTitle,int cLinks);
1024  STDAPI_(WINBOOL) OleUIUpdateLinksA(LPOLEUILINKCONTAINERA lpOleUILinkCntr,HWND hwndParent,LPSTR lpszTitle,int cLinks);
1025
1026#define OleUIUpdateLinks __MINGW_NAME_AW(OleUIUpdateLinks)
1027
1028#pragma pack(pop)
1029
1030#ifdef __cplusplus
1031}
1032#endif
1033#endif
1034#endif
1035