master
   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