oledlg.h 39.2 KB
Newer Older
Alexandre Julliard's avatar
Alexandre Julliard committed
1
/*
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 * Declarations for OLEDLG
 *
 * Copyright (C) the Wine project
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * 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
Alexandre Julliard's avatar
Alexandre Julliard committed
19 20 21 22 23
 */

#ifndef __WINE_OLEDLG_H
#define __WINE_OLEDLG_H

24
#include <windows.h>
25
#include <shellapi.h>
26 27
#include <commdlg.h>
#include <ole2.h>
28 29 30 31 32 33
#ifndef __WINESRC__
# include <string.h>
# include <tchar.h>
#endif
#include <dlgs.h>
#include <prsht.h>
Adrian Thurston's avatar
Adrian Thurston committed
34 35 36 37 38 39

#ifdef __cplusplus
extern "C" {
#endif


40 41
typedef struct IOleUILinkContainerA *POLEUILINKCONTAINERA, *LPOLEUILINKCONTAINERA;
typedef struct IOleUILinkContainerW *POLEUILINKCONTAINERW, *LPOLEUILINKCONTAINERW;
Adrian Thurston's avatar
Adrian Thurston committed
42

43 44
typedef struct IOleUILinkInfoA *POLEUILINKINFOA, *LPOLEUILINKINFOA;
typedef struct IOleUILinkInfoW *POLEUILINKINFOW, *LPOLEUILINKINFOW;
Adrian Thurston's avatar
Adrian Thurston committed
45

46 47
typedef struct IOleUIObjInfoA *POLEUIOBJINFOA, *LPOLEUIOBJINFOA;
typedef struct IOleUIObjInfoW *POLEUIOBJINFOW, *LPOLEUIOBJINFOW;
Adrian Thurston's avatar
Adrian Thurston committed
48

49 50 51 52 53 54 55 56 57 58
#define IDC_OLEUIHELP                   99


#define OLEUI_ERR_STANDARDMAX           116

#define OLEUI_BZERR_HTASKINVALID        (OLEUI_ERR_STANDARDMAX+0)
#define OLEUI_BZ_SWITCHTOSELECTED       (OLEUI_ERR_STANDARDMAX+1)
#define OLEUI_BZ_RETRYSELECTED          (OLEUI_ERR_STANDARDMAX+2)
#define OLEUI_BZ_CALLUNBLOCKED          (OLEUI_ERR_STANDARDMAX+3)

Alexandre Julliard's avatar
Alexandre Julliard committed
59 60
#define OLEUI_FALSE   0
#define OLEUI_SUCCESS 1 /* Same as OLEUI_OK */
61
#define OLEUI_OK      1 /* OK button pressed */
Alexandre Julliard's avatar
Alexandre Julliard committed
62 63
#define OLEUI_CANCEL  2 /* Cancel button pressed */

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
#define OLEUI_ERR_STANDARDMIN           100
#define OLEUI_ERR_OLEMEMALLOC           100
#define OLEUI_ERR_STRUCTURENULL         101
#define OLEUI_ERR_STRUCTUREINVALID      102
#define OLEUI_ERR_CBSTRUCTINCORRECT     103
#define OLEUI_ERR_HWNDOWNERINVALID      104
#define OLEUI_ERR_LPSZCAPTIONINVALID    105
#define OLEUI_ERR_LPFNHOOKINVALID       106
#define OLEUI_ERR_HINSTANCEINVALID      107
#define OLEUI_ERR_LPSZTEMPLATEINVALID   108
#define OLEUI_ERR_HRESOURCEINVALID      109
#define OLEUI_ERR_FINDTEMPLATEFAILURE   110
#define OLEUI_ERR_LOADTEMPLATEFAILURE   111
#define OLEUI_ERR_DIALOGFAILURE         112
#define OLEUI_ERR_LOCALMEMALLOC         113
#define OLEUI_ERR_GLOBALMEMALLOC        114
#define OLEUI_ERR_LOADSTRING            115
#define OLEUI_ERR_STANDARDMAX           116

83
typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
Adrian Thurston's avatar
Adrian Thurston committed
84

85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
/*****************************************************************************
 * Registered Message Names
 */
#define SZOLEUI_MSG_HELPA              "OLEUI_MSG_HELP"
#define SZOLEUI_MSG_ENDDIALOGA         "OLEUI_MSG_ENDDIALOG"
#define SZOLEUI_MSG_BROWSEA            "OLEUI_MSG_BROWSE"
#define SZOLEUI_MSG_CHANGEICONA        "OLEUI_MSG_CHANGEICON"
#define SZOLEUI_MSG_CLOSEBUSYDIALOGA   "OLEUI_MSG_CLOSEBUSYDIALOG"
#define SZOLEUI_MSG_CONVERTA           "OLEUI_MSG_CONVERT"
#define SZOLEUI_MSG_CHANGESOURCEA      "OLEUI_MSG_CHANGESOURCE"
#define SZOLEUI_MSG_ADDCONTROLA        "OLEUI_MSG_ADDCONTROL"
#define SZOLEUI_MSG_BROWSE_OFNA        "OLEUI_MSG_BROWSE_OFN"
#if defined(__GNUC__)
# define SZOLEUI_MSG_HELPW             (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','H','E','L','P',0 }
# define SZOLEUI_MSG_ENDDIALOGW        (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','E','N','D','D','I','A','L','O','G',0 }
# define SZOLEUI_MSG_BROWSEW           (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E',0 }
# 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 }
# 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 }
# define SZOLEUI_MSG_CONVERTW          (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','O','N','V','E','R','T',0 }
# 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 }
# 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 }
# 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 }
#elif defined(_MSC_VER)
# define SZOLEUI_MSG_HELPW              L"OLEUI_MSG_HELP"
# define SZOLEUI_MSG_ENDDIALOGW         L"OLEUI_MSG_ENDDIALOG"
# define SZOLEUI_MSG_BROWSEW            L"OLEUI_MSG_BROWSE"
# define SZOLEUI_MSG_CHANGEICONW        L"OLEUI_MSG_CHANGEICON"
# define SZOLEUI_MSG_CLOSEBUSYDIALOGW   L"OLEUI_MSG_CLOSEBUSYDIALOG"
# define SZOLEUI_MSG_CONVERTW           L"OLEUI_MSG_CONVERT"
# define SZOLEUI_MSG_CHANGESOURCEW      L"OLEUI_MSG_CHANGESOURCE"
# define SZOLEUI_MSG_ADDCONTROLW        L"OLEUI_MSG_ADDCONTROL"
# define SZOLEUI_MSG_BROWSE_OFNW        L"OLEUI_MSG_BROWSE_OFN"
#else
static const WCHAR SZOLEUI_MSG_HELPW[]             = { 'O','L','E','U','I','_','M','S','G','_','H','E','L','P',0 };
static const WCHAR SZOLEUI_MSG_ENDDIALOGW[]        = { 'O','L','E','U','I','_','M','S','G','_','E','N','D','D','I','A','L','O','G',0 };
static const WCHAR SZOLEUI_MSG_BROWSEW[]           = { 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E',0 };
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 };
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 };
static const WCHAR SZOLEUI_MSG_CONVERTW[]          = { 'O','L','E','U','I','_','M','S','G','_','C','O','N','V','E','R','T',0 };
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 };
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 };
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 };
#endif
#define SZOLEUI_MSG_HELP             WINELIB_NAME_AW(SZOLEUI_MSG_HELP)
#define SZOLEUI_MSG_ENDDIALOG        WINELIB_NAME_AW(SZOLEUI_MSG_ENDDIALOG)
#define SZOLEUI_MSG_BROWSE           WINELIB_NAME_AW(SZOLEUI_MSG_BROWSE)
#define SZOLEUI_MSG_CHANGEICON       WINELIB_NAME_AW(SZOLEUI_MSG_CHANGEICON)
#define SZOLEUI_MSG_CLOSEBUSYDIALOG  WINELIB_NAME_AW(SZOLEUI_MSG_CLOSEBUSYDIALOG)
#define SZOLEUI_MSG_CONVERT          WINELIB_NAME_AW(SZOLEUI_MSG_CONVERT)
#define SZOLEUI_MSG_CHANGESOURCE     WINELIB_NAME_AW(SZOLEUI_MSG_CHANGESOURCE)
#define SZOLEUI_MSG_ADDCONTROL       WINELIB_NAME_AW(SZOLEUI_MSG_ADDCONTROL)
#define SZOLEUI_MSG_BROWSE_OFN       WINELIB_NAME_AW(SZOLEUI_MSG_BROWSE_OFN)


Adrian Thurston's avatar
Adrian Thurston committed
139 140 141 142 143
/*****************************************************************************
 * INSERT OBJECT DIALOG
 */
typedef struct tagOLEUIINSERTOBJECTA
{
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCSTR          lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCSTR          lpszTemplate;
    HRSRC           hResource;
    CLSID           clsid;
    LPSTR           lpszFile;
    UINT            cchFile;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
    IID             iid;
    DWORD           oleRender;
    LPFORMATETC     lpFormatEtc;
    LPOLECLIENTSITE lpIOleClientSite;
    LPSTORAGE       lpIStorage;
    LPVOID          *ppvObj;
    SCODE           sc;
    HGLOBAL         hMetaPict;
Adrian Thurston's avatar
Adrian Thurston committed
166 167 168 169
} OLEUIINSERTOBJECTA, *POLEUIINSERTOBJECTA, *LPOLEUIINSERTOBJECTA;

typedef struct tagOLEUIINSERTOBJECTW
{
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCWSTR         lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCWSTR         lpszTemplate;
    HRSRC           hResource;
    CLSID           clsid;
    LPWSTR          lpszFile;
    UINT            cchFile;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
    IID             iid;
    DWORD           oleRender;
    LPFORMATETC     lpFormatEtc;
    LPOLECLIENTSITE lpIOleClientSite;
    LPSTORAGE       lpIStorage;
    LPVOID          *ppvObj;
    SCODE           sc;
    HGLOBAL         hMetaPict;
Adrian Thurston's avatar
Adrian Thurston committed
192 193 194 195 196 197
} OLEUIINSERTOBJECTW, *POLEUIINSERTOBJECTW, *LPOLEUIINSERTOBJECTW;

DECL_WINELIB_TYPE_AW(OLEUIINSERTOBJECT)
DECL_WINELIB_TYPE_AW(POLEUIINSERTOBJECT)
DECL_WINELIB_TYPE_AW(LPOLEUIINSERTOBJECT)

198 199 200 201 202 203 204 205 206 207 208 209 210 211
#define IOF_SHOWHELP                    __MSABI_LONG(0x00000001)
#define IOF_SELECTCREATENEW             __MSABI_LONG(0x00000002)
#define IOF_SELECTCREATEFROMFILE        __MSABI_LONG(0x00000004)
#define IOF_CHECKLINK                   __MSABI_LONG(0x00000008)
#define IOF_CHECKDISPLAYASICON          __MSABI_LONG(0x00000010)
#define IOF_CREATENEWOBJECT             __MSABI_LONG(0x00000020)
#define IOF_CREATEFILEOBJECT            __MSABI_LONG(0x00000040)
#define IOF_CREATELINKOBJECT            __MSABI_LONG(0x00000080)
#define IOF_DISABLELINK                 __MSABI_LONG(0x00000100)
#define IOF_VERIFYSERVERSEXIST          __MSABI_LONG(0x00000200)
#define IOF_DISABLEDISPLAYASICON        __MSABI_LONG(0x00000400)
#define IOF_HIDECHANGEICON              __MSABI_LONG(0x00000800)
#define IOF_SHOWINSERTCONTROL           __MSABI_LONG(0x00001000)
#define IOF_SELECTCREATECONTROL         __MSABI_LONG(0x00002000)
Adrian Thurston's avatar
Adrian Thurston committed
212 213 214 215 216 217

/*****************************************************************************
 * CONVERT DIALOG
 */
typedef struct tagOLEUICONVERTA
{
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCSTR          lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCSTR          lpszTemplate;
    HRSRC           hResource;
    CLSID           clsid;
    CLSID           clsidConvertDefault;
    CLSID           clsidActivateDefault;
    CLSID           clsidNew;
    DWORD           dvAspect;
    WORD            wFormat;
Adrian Thurston's avatar
Adrian Thurston committed
233
    BOOL            fIsLinkedObject;
234 235 236 237 238 239
    HGLOBAL         hMetaPict;
    LPSTR           lpszUserType;
    BOOL            fObjectsIconChanged;
    LPSTR           lpszDefLabel;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
Adrian Thurston's avatar
Adrian Thurston committed
240 241 242 243
} OLEUICONVERTA, *POLEUICONVERTA, *LPOLEUICONVERTA;

typedef struct tagOLEUICONVERTW
{
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCWSTR         lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCWSTR         lpszTemplate;
    HRSRC           hResource;
    CLSID           clsid;
    CLSID           clsidConvertDefault;
    CLSID           clsidActivateDefault;
    CLSID           clsidNew;
    DWORD           dvAspect;
    WORD            wFormat;
Adrian Thurston's avatar
Adrian Thurston committed
259
    BOOL            fIsLinkedObject;
260 261 262 263 264 265
    HGLOBAL         hMetaPict;
    LPWSTR          lpszUserType;
    BOOL            fObjectsIconChanged;
    LPWSTR          lpszDefLabel;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
Adrian Thurston's avatar
Adrian Thurston committed
266 267 268 269 270 271
} OLEUICONVERTW, *POLEUICONVERTW, *LPOLEUICONVERTW;

DECL_WINELIB_TYPE_AW(OLEUICONVERT)
DECL_WINELIB_TYPE_AW(POLEUICONVERT)
DECL_WINELIB_TYPE_AW(LPOLEUICONVERT)

272 273 274 275 276 277 278 279 280
#define CF_SHOWHELPBUTTON               __MSABI_LONG(0x00000001)
#define CF_SETCONVERTDEFAULT            __MSABI_LONG(0x00000002)
#define CF_SETACTIVATEDEFAULT           __MSABI_LONG(0x00000004)
#define CF_SELECTCONVERTTO              __MSABI_LONG(0x00000008)
#define CF_SELECTACTIVATEAS             __MSABI_LONG(0x00000010)
#define CF_DISABLEDISPLAYASICON         __MSABI_LONG(0x00000020)
#define CF_DISABLEACTIVATEAS            __MSABI_LONG(0x00000040)
#define CF_HIDECHANGEICON               __MSABI_LONG(0x00000080)
#define CF_CONVERTONLY                  __MSABI_LONG(0x00000100)
281

Adrian Thurston's avatar
Adrian Thurston committed
282 283 284 285 286
/*****************************************************************************
 * CHANGE ICON DIALOG
 */
typedef struct tagOLEUICHANGEICONA
{
287 288 289 290 291 292 293 294 295 296 297 298 299
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCSTR          lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCSTR          lpszTemplate;
    HRSRC           hResource;
    HGLOBAL         hMetaPict;
    CLSID           clsid;
    CHAR            szIconExe[MAX_PATH];
    INT             cchIconExe;
Adrian Thurston's avatar
Adrian Thurston committed
300 301 302 303
} OLEUICHANGEICONA, *POLEUICHANGEICONA, *LPOLEUICHANGEICONA;

typedef struct tagOLEUICHANGEICONW
{
304 305 306 307 308 309 310 311 312 313 314 315 316
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCWSTR         lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCWSTR         lpszTemplate;
    HRSRC           hResource;
    HGLOBAL         hMetaPict;
    CLSID           clsid;
    WCHAR           szIconExe[MAX_PATH];
    INT             cchIconExe;
Adrian Thurston's avatar
Adrian Thurston committed
317 318 319 320 321 322 323
} OLEUICHANGEICONW, *POLEUICHANGEICONW, *LPOLEUICHANGEICONW;

DECL_WINELIB_TYPE_AW(OLEUICHANGEICON)
DECL_WINELIB_TYPE_AW(POLEUICHANGEICON)
DECL_WINELIB_TYPE_AW(LPOLEUICHANGEICON)


324 325 326 327 328
#define CIF_SHOWHELP                    __MSABI_LONG(0x00000001)
#define CIF_SELECTCURRENT               __MSABI_LONG(0x00000002)
#define CIF_SELECTDEFAULT               __MSABI_LONG(0x00000004)
#define CIF_SELECTFROMFILE              __MSABI_LONG(0x00000008)
#define CIF_USEICONEXE                  __MSABI_LONG(0x00000010)
329

Adrian Thurston's avatar
Adrian Thurston committed
330 331 332 333 334 335
/*****************************************************************************
 * PASTE SPECIAL DIALOG
 */

typedef enum tagOLEUIPASTEFLAG
{
336
   OLEUIPASTE_ENABLEICON    = 2048,
Adrian Thurston's avatar
Adrian Thurston committed
337 338 339 340 341 342 343 344 345 346 347
   OLEUIPASTE_PASTEONLY     = 0,
   OLEUIPASTE_PASTE         = 512,
   OLEUIPASTE_LINKANYTYPE   = 1024,
   OLEUIPASTE_LINKTYPE1     = 1,
   OLEUIPASTE_LINKTYPE2     = 2,
   OLEUIPASTE_LINKTYPE3     = 4,
   OLEUIPASTE_LINKTYPE4     = 8,
   OLEUIPASTE_LINKTYPE5     = 16,
   OLEUIPASTE_LINKTYPE6     = 32,
   OLEUIPASTE_LINKTYPE7     = 64,
   OLEUIPASTE_LINKTYPE8     = 128
348
} OLEUIPASTEFLAG;
Adrian Thurston's avatar
Adrian Thurston committed
349 350 351

typedef struct tagOLEUIPASTEENTRYA
{
352
   FORMATETC        fmtetc;
Adrian Thurston's avatar
Adrian Thurston committed
353 354
   LPCSTR           lpstrFormatName;
   LPCSTR           lpstrResultText;
355 356
   DWORD            dwFlags;
   DWORD            dwScratchSpace;
Adrian Thurston's avatar
Adrian Thurston committed
357 358 359 360
} OLEUIPASTEENTRYA, *POLEUIPASTEENTRYA, *LPOLEUIPASTEENTRYA;

typedef struct tagOLEUIPASTEENTRYW
{
361
   FORMATETC        fmtetc;
Adrian Thurston's avatar
Adrian Thurston committed
362 363
   LPCWSTR          lpstrFormatName;
   LPCWSTR          lpstrResultText;
364 365
   DWORD            dwFlags;
   DWORD            dwScratchSpace;
Adrian Thurston's avatar
Adrian Thurston committed
366 367 368 369 370 371 372 373
} OLEUIPASTEENTRYW, *POLEUIPASTEENTRYW, *LPOLEUIPASTEENTRYW;

DECL_WINELIB_TYPE_AW(OLEUIPASTEENTRY)
DECL_WINELIB_TYPE_AW(POLEUIPASTEENTRY)
DECL_WINELIB_TYPE_AW(LPOLEUIPASTEENTRY)

typedef struct tagOLEUIPASTESPECIALA
{
374 375 376 377 378 379 380 381 382 383
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCSTR          lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCSTR          lpszTemplate;
    HRSRC           hResource;
    LPDATAOBJECT    lpSrcDataObj;
Adrian Thurston's avatar
Adrian Thurston committed
384
    LPOLEUIPASTEENTRYA arrPasteEntries;
385 386 387 388 389 390 391 392 393
    INT             cPasteEntries;
    UINT*           arrLinkTypes;
    INT             cLinkTypes;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
    INT             nSelectedIndex;
    BOOL            fLink;
    HGLOBAL         hMetaPict;
    SIZEL           sizel;
Adrian Thurston's avatar
Adrian Thurston committed
394 395 396 397
} OLEUIPASTESPECIALA, *POLEUIPASTESPECIALA, *LPOLEUIPASTESPECIALA;

typedef struct tagOLEUIPASTESPECIALW
{
398 399 400 401 402 403 404 405 406 407
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCWSTR         lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCWSTR         lpszTemplate;
    HRSRC           hResource;
    LPDATAOBJECT    lpSrcDataObj;
Adrian Thurston's avatar
Adrian Thurston committed
408
    LPOLEUIPASTEENTRYW arrPasteEntries;
409 410 411 412 413 414 415 416 417
    INT             cPasteEntries;
    UINT*           arrLinkTypes;
    INT             cLinkTypes;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
    INT             nSelectedIndex;
    BOOL            fLink;
    HGLOBAL         hMetaPict;
    SIZEL           sizel;
Adrian Thurston's avatar
Adrian Thurston committed
418 419 420 421 422 423
} OLEUIPASTESPECIALW, *POLEUIPASTESPECIALW, *LPOLEUIPASTESPECIALW;

DECL_WINELIB_TYPE_AW(OLEUIPASTESPECIAL)
DECL_WINELIB_TYPE_AW(POLEUIPASTESPECIAL)
DECL_WINELIB_TYPE_AW(LPOLEUIPASTESPECIAL)

424 425
#define PS_MAXLINKTYPES                 8

426 427 428
#define PSF_SHOWHELP                    __MSABI_LONG(0x00000001)
#define PSF_SELECTPASTE                 __MSABI_LONG(0x00000002)
#define PSF_SELECTPASTELINK             __MSABI_LONG(0x00000004)
Adrian Thurston's avatar
Adrian Thurston committed
429

430 431 432 433 434
#define PSF_CHECKDISPLAYASICON          __MSABI_LONG(0x00000008)
#define PSF_DISABLEDISPLAYASICON        __MSABI_LONG(0x00000010)
#define PSF_HIDECHANGEICON              __MSABI_LONG(0x00000020)
#define PSF_STAYONCLIPBOARDCHANGE       __MSABI_LONG(0x00000040)
#define PSF_NOREFRESHDATAOBJECT         __MSABI_LONG(0x00000080)
Adrian Thurston's avatar
Adrian Thurston committed
435 436 437 438 439 440 441

#define OLEUI_IOERR_SRCDATAOBJECTINVALID    (OLEUI_ERR_STANDARDMAX+0)
#define OLEUI_IOERR_ARRPASTEENTRIESINVALID  (OLEUI_ERR_STANDARDMAX+1)
#define OLEUI_IOERR_ARRLINKTYPESINVALID     (OLEUI_ERR_STANDARDMAX+2)
#define OLEUI_PSERR_CLIPBOARDCHANGED        (OLEUI_ERR_STANDARDMAX+3)
#define OLEUI_PSERR_GETCLIPBOARDFAILED      (OLEUI_ERR_STANDARDMAX+4)

442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462
/* Paste Special dialog resource ids */
#define IDD_PASTESPECIAL       1003
#define IDD_PASTESPECIAL4      1108

/* Paste Special dialog control ids */
#define IDC_PS_PASTE           500
#define IDC_PS_PASTELINK       501
#define IDC_PS_SOURCETEXT      502
#define IDC_PS_PASTELIST       503
#define IDC_PS_PASTELINKLIST   504
#define IDC_PS_DISPLAYLIST     505
#define IDC_PS_DISPLAYASICON   506
#define IDC_PS_ICONDISPLAY     507
#define IDC_PS_CHANGEICON      508
#define IDC_PS_RESULTIMAGE     509
#define IDC_PS_RESULTTEXT      510

/*****************************************************************************
 * EDIT LINKS DIALOG
 */

463 464 465 466 467
#define ELF_SHOWHELP               __MSABI_LONG(0x00000001)
#define ELF_DISABLEUPDATENOW       __MSABI_LONG(0x00000002)
#define ELF_DISABLEOPENSOURCE      __MSABI_LONG(0x00000004)
#define ELF_DISABLECHANGESOURCE    __MSABI_LONG(0x00000008)
#define ELF_DISABLECANCELLINK      __MSABI_LONG(0x00000010)
468

Adrian Thurston's avatar
Adrian Thurston committed
469 470
typedef struct tagOLEUIEDITLINKSW
{
471 472 473 474 475 476 477 478 479 480
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCWSTR         lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCWSTR         lpszTemplate;
    HRSRC           hResource;
    LPOLEUILINKCONTAINERW lpOleUILinkContainer;
Adrian Thurston's avatar
Adrian Thurston committed
481 482 483 484
} OLEUIEDITLINKSW, *POLEUIEDITLINKSW, *LPOLEUIEDITLINKSW;

typedef struct tagOLEUIEDITLINKSA
{
485 486 487 488 489 490 491 492 493 494
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCSTR          lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCSTR          lpszTemplate;
    HRSRC           hResource;
    LPOLEUILINKCONTAINERA lpOleUILinkContainer;
Adrian Thurston's avatar
Adrian Thurston committed
495 496 497 498 499 500 501 502 503 504 505 506
} OLEUIEDITLINKSA, *POLEUIEDITLINKSA, *LPOLEUIEDITLINKSA;

DECL_WINELIB_TYPE_AW(OLEUIEDITLINKS)
DECL_WINELIB_TYPE_AW(POLEUIEDITLINKS)
DECL_WINELIB_TYPE_AW(LPOLEUIEDITLINKS)


/***********************************************************************************
 * BUSY DIALOG
 */
typedef struct tagOLEUIBUSYA
{
507 508 509 510 511 512 513 514 515 516 517
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCSTR          lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCSTR          lpszTemplate;
    HRSRC           hResource;
    HTASK           hTask;
    HWND*           lphWndDialog;
Adrian Thurston's avatar
Adrian Thurston committed
518 519 520 521
} OLEUIBUSYA, *POLEUIBUSYA, *LPOLEUIBUSYA;

typedef struct tagOLEUIBUSYW
{
522 523 524 525 526 527 528 529 530 531 532
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCWSTR         lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCWSTR         lpszTemplate;
    HRSRC           hResource;
    HTASK           hTask;
    HWND*           lphWndDialog;
Adrian Thurston's avatar
Adrian Thurston committed
533 534 535 536 537 538 539
} OLEUIBUSYW, *POLEUIBUSYW, *LPOLEUIBUSYW;

DECL_WINELIB_TYPE_AW(OLEUIBUSY)
DECL_WINELIB_TYPE_AW(POLEUIBUSY)
DECL_WINELIB_TYPE_AW(LPOLEUIBUSY)


540 541 542 543
#define BZ_DISABLECANCELBUTTON          __MSABI_LONG(0x00000001)
#define BZ_DISABLESWITCHTOBUTTON        __MSABI_LONG(0x00000002)
#define BZ_DISABLERETRYBUTTON           __MSABI_LONG(0x00000004)
#define BZ_NOTRESPONDINGDIALOG          __MSABI_LONG(0x00000008)
544 545 546 547 548

/***********************************************************************************
 * OBJECT PROPERTIES DIALOG
 */

Adrian Thurston's avatar
Adrian Thurston committed
549 550 551 552 553
struct tagOLEUIOBJECTPROPSW;
struct tagOLEUIOBJECTPROPSA;

typedef struct tagOLEUIGNRLPROPSA
{
554 555
    DWORD           cbStruct;
    DWORD           dwFlags;
Adrian Thurston's avatar
Adrian Thurston committed
556
    DWORD           dwReserved1[2];
557 558
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
Adrian Thurston's avatar
Adrian Thurston committed
559
    DWORD           dwReserved2[3];
560
    struct tagOLEUIOBJECTPROPSA* lpOP;
Adrian Thurston's avatar
Adrian Thurston committed
561 562 563 564 565

} OLEUIGNRLPROPSA, *POLEUIGNRLPROPSA, *LPOLEUIGNRLPROPSA;

typedef struct tagOLEUIGNRLPROPSW
{
566 567
    DWORD           cbStruct;
    DWORD           dwFlags;
Adrian Thurston's avatar
Adrian Thurston committed
568
    DWORD           dwReserved1[2];
569 570
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
Adrian Thurston's avatar
Adrian Thurston committed
571
    DWORD           dwReserved2[3];
572
    struct tagOLEUIOBJECTPROPSW* lpOP;
Adrian Thurston's avatar
Adrian Thurston committed
573 574 575 576 577 578 579 580
} OLEUIGNRLPROPSW, *POLEUIGNRLPROPSW, *LPOLEUIGNRLPROPSW;

DECL_WINELIB_TYPE_AW(OLEUIGNRLPROPS)
DECL_WINELIB_TYPE_AW(POLEUIGNRLPROPS)
DECL_WINELIB_TYPE_AW(LPOLEUIGNRLPROPS)

typedef struct tagOLEUIVIEWPROPSA
{
581 582
    DWORD           cbStruct;
    DWORD           dwFlags;
Adrian Thurston's avatar
Adrian Thurston committed
583
    DWORD           dwReserved1[2];
584 585
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
Adrian Thurston's avatar
Adrian Thurston committed
586
    DWORD           dwReserved2[3];
587 588
    struct tagOLEUIOBJECTPROPSA* lpOP;
    INT             nScaleMin;
Adrian Thurston's avatar
Adrian Thurston committed
589 590 591 592 593
    INT             nScaleMax;
} OLEUIVIEWPROPSA, *POLEUIVIEWPROPSA, *LPOLEUIVIEWPROPSA;

typedef struct tagOLEUIVIEWPROPSW
{
594 595
    DWORD           cbStruct;
    DWORD           dwFlags;
Adrian Thurston's avatar
Adrian Thurston committed
596
    DWORD           dwReserved1[2];
597 598
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
Adrian Thurston's avatar
Adrian Thurston committed
599
    DWORD           dwReserved2[3];
600 601
    struct tagOLEUIOBJECTPROPSW* lpOP;
    INT             nScaleMin;
Adrian Thurston's avatar
Adrian Thurston committed
602 603 604 605 606 607 608 609
    INT             nScaleMax;
} OLEUIVIEWPROPSW, *POLEUIVIEWPROPSW, *LPOLEUIVIEWPROPSW;

DECL_WINELIB_TYPE_AW(OLEUIVIEWPROPS)
DECL_WINELIB_TYPE_AW(POLEUIVIEWPROPS)
DECL_WINELIB_TYPE_AW(LPOLEUIVIEWPROPS)


610 611 612
#define VPF_SELECTRELATIVE          __MSABI_LONG(0x00000001)
#define VPF_DISABLERELATIVE         __MSABI_LONG(0x00000002)
#define VPF_DISABLESCALE            __MSABI_LONG(0x00000004)
Adrian Thurston's avatar
Adrian Thurston committed
613 614 615

typedef struct tagOLEUILINKPROPSA
{
616 617
    DWORD           cbStruct;
    DWORD           dwFlags;
Adrian Thurston's avatar
Adrian Thurston committed
618
    DWORD           dwReserved1[2];
619 620
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
Adrian Thurston's avatar
Adrian Thurston committed
621
    DWORD           dwReserved2[3];
622
    struct tagOLEUIOBJECTPROPSA* lpOP;
Adrian Thurston's avatar
Adrian Thurston committed
623 624 625 626
} OLEUILINKPROPSA, *POLEUILINKPROPSA, *LPOLEUILINKPROPSA;

typedef struct tagOLEUILINKPROPSW
{
627 628
    DWORD           cbStruct;
    DWORD           dwFlags;
Adrian Thurston's avatar
Adrian Thurston committed
629
    DWORD           dwReserved1[2];
630 631
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
Adrian Thurston's avatar
Adrian Thurston committed
632
    DWORD           dwReserved2[3];
633
    struct tagOLEUIOBJECTPROPSW* lpOP;
Adrian Thurston's avatar
Adrian Thurston committed
634 635 636 637 638 639 640 641
} OLEUILINKPROPSW, *POLEUILINKPROPSW, *LPOLEUILINKPROPSW;

DECL_WINELIB_TYPE_AW(OLEUILINKPROPS)
DECL_WINELIB_TYPE_AW(POLEUILINKPROPS)
DECL_WINELIB_TYPE_AW(LPOLEUILINKPROPS)

typedef struct tagOLEUIOBJECTPROPSA
{
642 643 644 645 646 647 648 649 650 651
    DWORD                cbStruct;
    DWORD                dwFlags;
    LPPROPSHEETHEADERA   lpPS;
    DWORD                dwObject;
    LPOLEUIOBJINFOA      lpObjInfo;
    DWORD                dwLink;
    LPOLEUILINKINFOA     lpLinkInfo;
    LPOLEUIGNRLPROPSA    lpGP;
    LPOLEUIVIEWPROPSA    lpVP;
    LPOLEUILINKPROPSA    lpLP;
Adrian Thurston's avatar
Adrian Thurston committed
652 653 654 655
} OLEUIOBJECTPROPSA, *POLEUIOBJECTPROPSA, *LPOLEUIOBJECTPROPSA;

typedef struct tagOLEUIOBJECTPROPSW
{
656 657 658 659 660 661 662 663 664 665
    DWORD                cbStruct;
    DWORD                dwFlags;
    LPPROPSHEETHEADERW   lpPS;
    DWORD                dwObject;
    LPOLEUIOBJINFOW      lpObjInfo;
    DWORD                dwLink;
    LPOLEUILINKINFOW     lpLinkInfo;
    LPOLEUIGNRLPROPSW    lpGP;
    LPOLEUIVIEWPROPSW    lpVP;
    LPOLEUILINKPROPSW    lpLP;
Adrian Thurston's avatar
Adrian Thurston committed
666 667 668 669 670 671
} OLEUIOBJECTPROPSW, *POLEUIOBJECTPROPSW, *LPOLEUIOBJECTPROPSW;

DECL_WINELIB_TYPE_AW(OLEUIOBJECTPROPS)
DECL_WINELIB_TYPE_AW(POLEUIOBJECTPROPS)
DECL_WINELIB_TYPE_AW(LPOLEUIOBJECTPROPS)

672 673 674 675
#define OPF_OBJECTISLINK                __MSABI_LONG(0x00000001)
#define OPF_NOFILLDEFAULT               __MSABI_LONG(0x00000002)
#define OPF_SHOWHELP                    __MSABI_LONG(0x00000004)
#define OPF_DISABLECONVERT              __MSABI_LONG(0x00000008)
676 677


Adrian Thurston's avatar
Adrian Thurston committed
678 679 680 681 682 683 684
/************************************************************************************
 * CHANGE SOURCE DIALOG
 */


typedef struct tagOLEUICHANGESOURCEW
{
685 686 687 688 689 690 691 692 693 694 695 696 697
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCWSTR         lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCWSTR         lpszTemplate;
    HRSRC           hResource;
    OPENFILENAMEW*lpOFN;
    DWORD           dwReserved1[4];
    LPOLEUILINKCONTAINERW lpOleUILinkContainer;
    DWORD           dwLink;
Adrian Thurston's avatar
Adrian Thurston committed
698
    LPWSTR          lpszDisplayName;
699 700 701
    ULONG           nFileLength;
    LPWSTR          lpszFrom;
    LPWSTR          lpszTo;
Adrian Thurston's avatar
Adrian Thurston committed
702 703 704 705 706
} OLEUICHANGESOURCEW, *POLEUICHANGESOURCEW, *LPOLEUICHANGESOURCEW;


typedef struct tagOLEUICHANGESOURCEA
{
707 708 709 710 711 712 713 714 715 716 717 718 719
    DWORD           cbStruct;
    DWORD           dwFlags;
    HWND            hWndOwner;
    LPCSTR          lpszCaption;
    LPFNOLEUIHOOK   lpfnHook;
    LPARAM          lCustData;
    HINSTANCE       hInstance;
    LPCSTR          lpszTemplate;
    HRSRC           hResource;
    OPENFILENAMEA*  lpOFN;
    DWORD           dwReserved1[4];
    LPOLEUILINKCONTAINERA lpOleUILinkContainer;
    DWORD           dwLink;
Adrian Thurston's avatar
Adrian Thurston committed
720
    LPSTR           lpszDisplayName;
721 722 723
    ULONG           nFileLength;
    LPSTR           lpszFrom;
    LPSTR           lpszTo;
Adrian Thurston's avatar
Adrian Thurston committed
724 725 726 727 728 729 730
} OLEUICHANGESOURCEA, *POLEUICHANGESOURCEA, *LPOLEUICHANGESOURCEA;


DECL_WINELIB_TYPE_AW(OLEUICHANGESOURCE)
DECL_WINELIB_TYPE_AW(POLEUICHANGESOURCE)
DECL_WINELIB_TYPE_AW(LPOLEUICHANGESOURCE)

731
/* Change Source Dialog flags */
732 733 734 735
#define CSF_SHOWHELP                    __MSABI_LONG(0x00000001)
#define CSF_VALIDSOURCE                 __MSABI_LONG(0x00000002)
#define CSF_ONLYGETSOURCE               __MSABI_LONG(0x00000004)
#define CSF_EXPLORER                    __MSABI_LONG(0x00000008)
736

Adrian Thurston's avatar
Adrian Thurston committed
737 738 739 740

/*****************************************************************************
 * IOleUILinkContainer interface
 */
741
#define INTERFACE   IOleUILinkContainerA
742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758
DECLARE_INTERFACE_(IOleUILinkContainerA,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleUILinkContainerA methods ***/
    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE;
    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD *lpdwUpdateOpt) PURE;
    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink, LPSTR lpszDisplayName,
                ULONG lenFileName, ULONG *pchEaten, BOOL fValidateSource) PURE;
    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPSTR *lplpszDisplayName, ULONG *lplenFileName,
                LPSTR *lplpszFullLinkType,  LPSTR *lplpszShortLinkType,
                BOOL *lpfSourceAvailable,  BOOL *lpfIsSelected) PURE;
    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
759
    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
760
};
761
#undef INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
762

763
#define INTERFACE   IOleUILinkContainerW
764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780
DECLARE_INTERFACE_(IOleUILinkContainerW,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleUILinkContainerW methods ***/
    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink,  DWORD dwUpdateOpt) PURE;
    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink,  DWORD *lpdwUpdateOpt) PURE;
    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink,  LPWSTR lpszDisplayName,
                ULONG lenFileName,  ULONG *pchEaten,  BOOL fValidateSource) PURE;
    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPWSTR *lplpszDisplayName, ULONG *lplenFileName,
                LPWSTR *lplpszFullLinkType,  LPWSTR *lplpszShortLinkType,
                BOOL *lpfSourceAvailable,  BOOL *lpfIsSelected) PURE;
    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
781
    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
782
};
783
#undef INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
784 785 786 787 788

DECL_WINELIB_TYPE_AW(IOleUILinkContainer)
DECL_WINELIB_TYPE_AW(POLEUILINKCONTAINER)
DECL_WINELIB_TYPE_AW(LPOLEUILINKCONTAINER)

789
#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurston's avatar
Adrian Thurston committed
790
/*** IUnknown methods ***/
791 792 793
#define IOleUILinkContainer_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleUILinkContainer_AddRef(p)                      (p)->lpVtbl->AddRef(p)
#define IOleUILinkContainer_Release(p)                     (p)->lpVtbl->Release(p)
Adrian Thurston's avatar
Adrian Thurston committed
794
/*** IOleUILinkContainer methods ***/
795 796 797 798 799 800 801 802
#define IOleUILinkContainer_GetNextLink(p,a)               (p)->lpVtbl->GetNextLink(p,a)
#define IOleUILinkContainer_SetLinkUpdateOptions(p,a,b)    (p)->lpVtbl->SetLinkUpdateOptions(p,a,b)
#define IOleUILinkContainer_GetLinkUpdateOptions(p,a,b)    (p)->lpVtbl->GetLinkUpdateOptions(p,a,b)
#define IOleUILinkContainer_SetLinkSource(p,a,b,c,d,e)     (p)->lpVtbl->SetLinkSource(p,a,b,c,d,e)
#define IOleUILinkContainer_GetLinkSource(p,a,b,c,d,e,f,g) (p)->lpVtbl->GetLinkSource(p,a,b,c,d,e,f,g)
#define IOleUILinkContainer_OpenLinkSource(p,a)            (p)->lpVtbl->OpenLinkSource(p,a)
#define IOleUILinkContainer_UpdateLink(p,a,b,c)            (p)->lpVtbl->UpdateLink(p,a,b,c)
#define IOleUILinkContainer_CancelLink(p,a)                (p)->lpVtbl->CancelLink(p,a)
Adrian Thurston's avatar
Adrian Thurston committed
803 804 805 806 807 808
#endif


/*****************************************************************************
 * IOleUILinkInfo interface
 */
809
#define INTERFACE   IOleUILinkInfoA
810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828
DECLARE_INTERFACE_(IOleUILinkInfoA,IOleUILinkContainerA)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleUILinkContainerA methods ***/
    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE;
    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD *lpdwUpdateOpt) PURE;
    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink, LPSTR lpszDisplayName,
                ULONG lenFileName, ULONG *pchEaten, BOOL fValidateSource) PURE;
    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPSTR *lplpszDisplayName, ULONG *lplenFileName,
                LPSTR *lplpszFullLinkType,  LPSTR *lplpszShortLinkType,
                BOOL *lpfSourceAvailable,  BOOL *lpfIsSelected) PURE;
    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
    /*** IOleUILinkInfoA methods ***/
829
    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,  FILETIME *lpLastUpdate) PURE;
830
};
831
#undef INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
832

833
#define INTERFACE   IOleUILinkInfoW
834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852
DECLARE_INTERFACE_(IOleUILinkInfoW,IOleUILinkContainerW)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleUILinkContainerW methods ***/
    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink,  DWORD dwUpdateOpt) PURE;
    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink,  DWORD *lpdwUpdateOpt) PURE;
    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink,  LPWSTR lpszDisplayName,
                ULONG lenFileName,  ULONG *pchEaten,  BOOL fValidateSource) PURE;
    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPWSTR *lplpszDisplayName, ULONG *lplenFileName,
                LPWSTR *lplpszFullLinkType,  LPWSTR *lplpszShortLinkType,
                BOOL *lpfSourceAvailable,  BOOL *lpfIsSelected) PURE;
    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE;
    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
    /*** IOleUILinkInfoW methods ***/
853
    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,  FILETIME *lpLastUpdate) PURE;
854
};
855
#undef  INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
856 857 858 859 860

DECL_WINELIB_TYPE_AW(IOleUILinkInfo)
DECL_WINELIB_TYPE_AW(POLEUILINKINFO)
DECL_WINELIB_TYPE_AW(LPOLEUILINKINFO)

861
#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurston's avatar
Adrian Thurston committed
862
/*** IUnknown methods ***/
863 864 865
#define IOleUILinkInfo_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleUILinkInfo_AddRef(p)                      (p)->lpVtbl->AddRef(p)
#define IOleUILinkInfo_Release(p)                     (p)->lpVtbl->Release(p)
Adrian Thurston's avatar
Adrian Thurston committed
866
/*** IOleUILinkContainer methods ***/
867 868 869 870 871 872 873 874
#define IOleUILinkInfo_GetNextLink(p,a)               (p)->lpVtbl->GetNextLink(p,a)
#define IOleUILinkInfo_SetLinkUpdateOptions(p,a,b)    (p)->lpVtbl->SetLinkUpdateOptions(p,a,b)
#define IOleUILinkInfo_GetLinkUpdateOptions(p,a,b)    (p)->lpVtbl->GetLinkUpdateOptions(p,a,b)
#define IOleUILinkInfo_SetLinkSource(p,a,b,c,d,e)     (p)->lpVtbl->SetLinkSource(p,a,b,c,d,e)
#define IOleUILinkInfo_GetLinkSource(p,a,b,c,d,e,f,g) (p)->lpVtbl->GetLinkSource(p,a,b,c,d,e,f,g)
#define IOleUILinkInfo_OpenLinkSource(p,a)            (p)->lpVtbl->OpenLinkSource(p,a)
#define IOleUILinkInfo_UpdateLink(p,a,b,c)            (p)->lpVtbl->UpdateLink(p,a,b,c)
#define IOleUILinkInfo_CancelLink(p,a)                (p)->lpVtbl->CancelLink(p,a)
875
/*** IOleUILinkInfo methods ***/
876 877
#define IOleUILinkInfo_GetLastUpdate(p,a,b)           (p)->lpVtbl->GetLastUpdate(p,a,b)
#endif
Adrian Thurston's avatar
Adrian Thurston committed
878 879 880 881 882


/*****************************************************************************
 * IOleUIObjInfo interface
 */
883
#define INTERFACE   IOleUIObjInfoA
884 885 886 887 888 889 890 891 892 893 894 895 896 897
DECLARE_INTERFACE_(IOleUIObjInfoA,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleUIObjInfoA methods ***/
    STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject, DWORD *lpdwObjSize, LPSTR *lplpszLabel,
                LPSTR *lplpszType, LPSTR *lplpszShortType, LPSTR *lplpszLocation) PURE;
    STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject, CLSID *lpClassID, WORD *lpwFormat,
                CLSID *lpConvertDefaultClassID, LPCLSID *lplpClsidExclude, UINT *lpcClsidExclude) PURE;
    STDMETHOD(ConvertObject)(THIS_ DWORD dwObject,  REFCLSID clsidNew) PURE;
    STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject, HGLOBAL *phMetaPict, DWORD *pdvAspect, INT *pnCurrentScale) PURE;
    STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject, HGLOBAL hMetaPict, DWORD dvAspect,
898
                INT nCurrentScale, BOOL bRelativeToOrig) PURE;
899
};
900
#undef INTERFACE
Alexandre Julliard's avatar
Alexandre Julliard committed
901

902
#define INTERFACE   IOleUIObjInfoW
903 904 905 906 907 908 909 910 911 912 913 914 915 916
DECLARE_INTERFACE_(IOleUIObjInfoW,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleUIObjInfoW methods ***/
    STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject, DWORD *lpdwObjSize, LPWSTR *lplpszLabel,
                LPWSTR *lplpszType,  LPWSTR *lplpszShortType,  LPWSTR *lplpszLocation) PURE;
    STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject, CLSID *lpClassID, WORD *lpwFormat,
                CLSID *lpConvertDefaultClassID, LPCLSID *lplpClsidExclude, UINT *lpcClsidExclude) PURE;
    STDMETHOD(ConvertObject)(THIS_ DWORD dwObject,  REFCLSID clsidNew) PURE;
    STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject, HGLOBAL *phMetaPict, DWORD *pdvAspect, INT *pnCurrentScale) PURE;
    STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject, HGLOBAL hMetaPict, DWORD dvAspect,
917
                INT nCurrentScale, BOOL bRelativeToOrig) PURE;
918
};
919
#undef INTERFACE
Alexandre Julliard's avatar
Alexandre Julliard committed
920

Adrian Thurston's avatar
Adrian Thurston committed
921 922 923
DECL_WINELIB_TYPE_AW(IOleUIObjInfo)
DECL_WINELIB_TYPE_AW(POLEUIOBJINFO)
DECL_WINELIB_TYPE_AW(LPOLEUIOBJINFO)
Alexandre Julliard's avatar
Alexandre Julliard committed
924

925
#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurston's avatar
Adrian Thurston committed
926
/*** IUnknown methods ***/
927 928 929
#define IOleUIObjInfo_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleUIObjInfo_AddRef(p)                        (p)->lpVtbl->AddRef(p)
#define IOleUIObjInfo_Release(p)                       (p)->lpVtbl->Release(p)
Adrian Thurston's avatar
Adrian Thurston committed
930
/*** IOleUIObjInfo methods ***/
931 932 933 934 935 936
#define IOleUIObjInfo_GetObjectInfo(p,a,b,c,d,e,f)     (p)->lpVtbl->GetObjectInfo(p,a,b,c,d,e,f)
#define IOleUIObjInfo_GetConvertInfo(p,a,b,c,d,e,f)    (p)->lpVtbl->GetConvertInfo(p,a,b,c,d,e,f)
#define IOleUIObjInfo_ConvertObject(p,a,b)             (p)->lpVtbl->ConvertObject(p,a,b)
#define IOleUIObjInfo_GetViewInfo(p,a,b,c,d)           (p)->lpVtbl->GetViewInfo(p,a,b,c,d)
#define IOleUIObjInfo_SetViewInfo(p,a,b,c,d,e)         (p)->lpVtbl->SetViewInfo(p,a,b,c,d,e)
#endif
Alexandre Julliard's avatar
Alexandre Julliard committed
937

Adrian Thurston's avatar
Adrian Thurston committed
938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968
UINT WINAPI  OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
UINT WINAPI  OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
#define      OleUIInsertObject WINELIB_NAME_AW(OleUIInsertObject)
UINT WINAPI  OleUIConvertA(LPOLEUICONVERTA);
UINT WINAPI  OleUIConvertW(LPOLEUICONVERTW);
#define      OleUIConvert WINELIB_NAME_AW(OleUIConvert)
UINT WINAPI  OleUIChangeIconA(LPOLEUICHANGEICONA);
UINT WINAPI  OleUIChangeIconW(LPOLEUICHANGEICONW);
#define      OleUIChangeIcon WINELIB_NAME_AW(OleUIChangeIcon)
UINT WINAPI  OleUIBusyA(LPOLEUIBUSYA);
UINT WINAPI  OleUIBusyW(LPOLEUIBUSYW);
#define      OleUIBusy WINELIB_NAME_AW(OleUIBusy)
UINT WINAPI  OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA);
UINT WINAPI  OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW);
#define      OleUIObjectProperties WINELIB_NAME_AW(OleUIObjectProperties)
UINT WINAPI  OleUIChangeSourceW(LPOLEUICHANGESOURCEW);
UINT WINAPI  OleUIChangeSourceA(LPOLEUICHANGESOURCEA);
#define      OleUIChangeSource WINELIB_NAME_AW(OleUIChangeSource)
UINT WINAPI  OleUIEditLinksA(LPOLEUIEDITLINKSA lpOleUIEditLinks);
UINT WINAPI  OleUIEditLinksW(LPOLEUIEDITLINKSW lpOleUIEditLinks);
#define      OleUIEditLinks WINELIB_NAME_AW(OleUIEditLinks)
BOOL WINAPI  OleUIUpdateLinksA(LPOLEUILINKCONTAINERA lpOleUILinkCntr, HWND hwndParent, LPSTR lpszTitle, INT cLinks);
BOOL WINAPI  OleUIUpdateLinksW(LPOLEUILINKCONTAINERW lpOleUILinkCntr, HWND hwndParent, LPWSTR lpszTitle, INT cLinks);
#define      OleUIUpdateLinks WINELIB_NAME_AW(OleUIUpdateLinks)
BOOL WINAPI  OleUIAddVerbMenuA(LPOLEOBJECT lpOleObj, LPCSTR lpszShortType, HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
  BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
BOOL WINAPI  OleUIAddVerbMenuW(LPOLEOBJECT lpOleObj, LPCWSTR lpszShortType, HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
  BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
#define      OleUIAddVerbMenu WINELIB_NAME_AW(OleUIAddVerbMenu)
UINT WINAPI  OleUIPasteSpecialA(LPOLEUIPASTESPECIALA lpOleUIPasteSpecial);
UINT WINAPI  OleUIPasteSpecialW(LPOLEUIPASTESPECIALW lpOleUIPasteSpecial);
969
#define      OleUIPasteSpecial WINELIB_NAME_AW(OleUIPasteSpecial)
970 971 972
INT  __cdecl OleUIPromptUserA(INT,HWND, ...);
INT  __cdecl OleUIPromptUserW(INT,HWND, ...);
#define      OleUIPromptUser WINELIB_NAME_AW(OleUIPromptUser)
Alexandre Julliard's avatar
Alexandre Julliard committed
973

Adrian Thurston's avatar
Adrian Thurston committed
974 975 976
#ifdef __cplusplus
} /* Extern "C" */
#endif
Alexandre Julliard's avatar
Alexandre Julliard committed
977 978 979


#endif  /* __WINE_OLEDLG_H */