oledlg.h 38.6 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 25 26 27
#ifndef __WINESRC__
# include <windows.h>
#endif
#include <shellapi.h>
28 29
#include <commdlg.h>
#include <ole2.h>
30 31 32 33 34 35
#ifndef __WINESRC__
# include <string.h>
# include <tchar.h>
#endif
#include <dlgs.h>
#include <prsht.h>
Adrian Thurston's avatar
Adrian Thurston committed
36 37 38 39 40 41

#ifdef __cplusplus
extern "C" {
#endif


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

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

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

51 52 53 54 55 56 57 58 59 60
#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
61 62
#define OLEUI_FALSE   0
#define OLEUI_SUCCESS 1 /* Same as OLEUI_OK */
63
#define OLEUI_OK      1 /* OK button pressed */
Alexandre Julliard's avatar
Alexandre Julliard committed
64 65
#define OLEUI_CANCEL  2 /* Cancel button pressed */

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
#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

85
typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
Adrian Thurston's avatar
Adrian Thurston committed
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 139 140
/*****************************************************************************
 * 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
141 142 143 144 145
/*****************************************************************************
 * INSERT OBJECT DIALOG
 */
typedef struct tagOLEUIINSERTOBJECTA
{
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
    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
168 169 170 171
} OLEUIINSERTOBJECTA, *POLEUIINSERTOBJECTA, *LPOLEUIINSERTOBJECTA;

typedef struct tagOLEUIINSERTOBJECTW
{
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
    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
194 195 196 197 198 199
} OLEUIINSERTOBJECTW, *POLEUIINSERTOBJECTW, *LPOLEUIINSERTOBJECTW;

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

200 201 202 203 204 205 206 207 208 209 210 211 212 213
#define IOF_SHOWHELP                    0x00000001L
#define IOF_SELECTCREATENEW             0x00000002L
#define IOF_SELECTCREATEFROMFILE        0x00000004L
#define IOF_CHECKLINK                   0x00000008L
#define IOF_CHECKDISPLAYASICON          0x00000010L
#define IOF_CREATENEWOBJECT             0x00000020L
#define IOF_CREATEFILEOBJECT            0x00000040L
#define IOF_CREATELINKOBJECT            0x00000080L
#define IOF_DISABLELINK                 0x00000100L
#define IOF_VERIFYSERVERSEXIST          0x00000200L
#define IOF_DISABLEDISPLAYASICON        0x00000400L
#define IOF_HIDECHANGEICON              0x00000800L
#define IOF_SHOWINSERTCONTROL           0x00001000L
#define IOF_SELECTCREATECONTROL         0x00002000L
Adrian Thurston's avatar
Adrian Thurston committed
214 215 216 217 218 219

/*****************************************************************************
 * CONVERT DIALOG
 */
typedef struct tagOLEUICONVERTA
{
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
    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
235
    BOOL            fIsLinkedObject;
236 237 238 239 240 241
    HGLOBAL         hMetaPict;
    LPSTR           lpszUserType;
    BOOL            fObjectsIconChanged;
    LPSTR           lpszDefLabel;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
Adrian Thurston's avatar
Adrian Thurston committed
242 243 244 245
} OLEUICONVERTA, *POLEUICONVERTA, *LPOLEUICONVERTA;

typedef struct tagOLEUICONVERTW
{
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
    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
261
    BOOL            fIsLinkedObject;
262 263 264 265 266 267
    HGLOBAL         hMetaPict;
    LPWSTR          lpszUserType;
    BOOL            fObjectsIconChanged;
    LPWSTR          lpszDefLabel;
    UINT            cClsidExclude;
    LPCLSID         lpClsidExclude;
Adrian Thurston's avatar
Adrian Thurston committed
268 269 270 271 272 273
} OLEUICONVERTW, *POLEUICONVERTW, *LPOLEUICONVERTW;

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

274 275 276 277 278 279 280 281 282 283
#define CF_SHOWHELPBUTTON               0x00000001L
#define CF_SETCONVERTDEFAULT            0x00000002L
#define CF_SETACTIVATEDEFAULT           0x00000004L
#define CF_SELECTCONVERTTO              0x00000008L
#define CF_SELECTACTIVATEAS             0x00000010L
#define CF_DISABLEDISPLAYASICON         0x00000020L
#define CF_DISABLEACTIVATEAS            0x00000040L
#define CF_HIDECHANGEICON               0x00000080L
#define CF_CONVERTONLY                  0x00000100L

Adrian Thurston's avatar
Adrian Thurston committed
284 285 286 287 288
/*****************************************************************************
 * CHANGE ICON DIALOG
 */
typedef struct tagOLEUICHANGEICONA
{
289 290 291 292 293 294 295 296 297 298 299 300 301
    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
302 303 304 305
} OLEUICHANGEICONA, *POLEUICHANGEICONA, *LPOLEUICHANGEICONA;

typedef struct tagOLEUICHANGEICONW
{
306 307 308 309 310 311 312 313 314 315 316 317 318
    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
319 320 321 322 323 324 325
} OLEUICHANGEICONW, *POLEUICHANGEICONW, *LPOLEUICHANGEICONW;

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


326 327 328 329 330 331
#define CIF_SHOWHELP                    0x00000001L
#define CIF_SELECTCURRENT               0x00000002L
#define CIF_SELECTDEFAULT               0x00000004L
#define CIF_SELECTFROMFILE              0x00000008L
#define CIF_USEICONEXE                  0x00000010L

Adrian Thurston's avatar
Adrian Thurston committed
332 333 334 335 336 337
/*****************************************************************************
 * PASTE SPECIAL DIALOG
 */

typedef enum tagOLEUIPASTEFLAG
{
338
   OLEUIPASTE_ENABLEICON    = 2048,
Adrian Thurston's avatar
Adrian Thurston committed
339 340 341 342 343 344 345 346 347 348 349
   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
350
} OLEUIPASTEFLAG;
Adrian Thurston's avatar
Adrian Thurston committed
351 352 353

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

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

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

typedef struct tagOLEUIPASTESPECIALA
{
376 377 378 379 380 381 382 383 384 385
    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
386
    LPOLEUIPASTEENTRYA arrPasteEntries;
387 388 389 390 391 392 393 394 395
    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
396 397 398 399
} OLEUIPASTESPECIALA, *POLEUIPASTESPECIALA, *LPOLEUIPASTESPECIALA;

typedef struct tagOLEUIPASTESPECIALW
{
400 401 402 403 404 405 406 407 408 409
    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
410
    LPOLEUIPASTEENTRYW arrPasteEntries;
411 412 413 414 415 416 417 418 419
    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
420 421 422 423 424 425
} OLEUIPASTESPECIALW, *POLEUIPASTESPECIALW, *LPOLEUIPASTESPECIALW;

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

426 427
#define PS_MAXLINKTYPES                 8

Adrian Thurston's avatar
Adrian Thurston committed
428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443
#define PSF_SHOWHELP                    0x00000001L
#define PSF_SELECTPASTE                 0x00000002L
#define PSF_SELECTPASTELINK             0x00000004L

#define PSF_CHECKDISPLAYASICON          0x00000008L
#define PSF_DISABLEDISPLAYASICON        0x00000010L
#define PSF_HIDECHANGEICON              0x00000020L
#define PSF_STAYONCLIPBOARDCHANGE       0x00000040L
#define PSF_NOREFRESHDATAOBJECT         0x00000080L

#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)

444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464
/* 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
 */

465 466 467 468 469 470
#define ELF_SHOWHELP               0x00000001L
#define ELF_DISABLEUPDATENOW       0x00000002L
#define ELF_DISABLEOPENSOURCE      0x00000004L
#define ELF_DISABLECHANGESOURCE    0x00000008L
#define ELF_DISABLECANCELLINK      0x00000010L

Adrian Thurston's avatar
Adrian Thurston committed
471 472
typedef struct tagOLEUIEDITLINKSW
{
473 474 475 476 477 478 479 480 481 482
    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
483 484 485 486
} OLEUIEDITLINKSW, *POLEUIEDITLINKSW, *LPOLEUIEDITLINKSW;

typedef struct tagOLEUIEDITLINKSA
{
487 488 489 490 491 492 493 494 495 496
    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
497 498 499 500 501 502 503 504 505 506 507 508
} OLEUIEDITLINKSA, *POLEUIEDITLINKSA, *LPOLEUIEDITLINKSA;

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


/***********************************************************************************
 * BUSY DIALOG
 */
typedef struct tagOLEUIBUSYA
{
509 510 511 512 513 514 515 516 517 518 519
    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
520 521 522 523
} OLEUIBUSYA, *POLEUIBUSYA, *LPOLEUIBUSYA;

typedef struct tagOLEUIBUSYW
{
524 525 526 527 528 529 530 531 532 533 534
    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
535 536 537 538 539 540 541
} OLEUIBUSYW, *POLEUIBUSYW, *LPOLEUIBUSYW;

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


542 543 544 545 546 547 548 549 550
#define BZ_DISABLECANCELBUTTON          0x00000001L
#define BZ_DISABLESWITCHTOBUTTON        0x00000002L
#define BZ_DISABLERETRYBUTTON           0x00000004L
#define BZ_NOTRESPONDINGDIALOG          0x00000008L

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

Adrian Thurston's avatar
Adrian Thurston committed
551 552 553 554 555
struct tagOLEUIOBJECTPROPSW;
struct tagOLEUIOBJECTPROPSA;

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

} OLEUIGNRLPROPSA, *POLEUIGNRLPROPSA, *LPOLEUIGNRLPROPSA;

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

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

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

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

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


612 613 614
#define VPF_SELECTRELATIVE          0x00000001L
#define VPF_DISABLERELATIVE         0x00000002L
#define VPF_DISABLESCALE            0x00000004L
Adrian Thurston's avatar
Adrian Thurston committed
615 616 617

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

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

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

typedef struct tagOLEUIOBJECTPROPSA
{
644 645 646 647 648 649 650 651 652 653
    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
654 655 656 657
} OLEUIOBJECTPROPSA, *POLEUIOBJECTPROPSA, *LPOLEUIOBJECTPROPSA;

typedef struct tagOLEUIOBJECTPROPSW
{
658 659 660 661 662 663 664 665 666 667
    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
668 669 670 671 672 673
} OLEUIOBJECTPROPSW, *POLEUIOBJECTPROPSW, *LPOLEUIOBJECTPROPSW;

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

674 675 676 677 678 679
#define OPF_OBJECTISLINK                0x00000001L
#define OPF_NOFILLDEFAULT               0x00000002L
#define OPF_SHOWHELP                    0x00000004L
#define OPF_DISABLECONVERT              0x00000008L


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


typedef struct tagOLEUICHANGESOURCEW
{
687 688 689 690 691 692 693 694 695 696 697 698 699
    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
700
    LPWSTR          lpszDisplayName;
701 702 703
    ULONG           nFileLength;
    LPWSTR          lpszFrom;
    LPWSTR          lpszTo;
Adrian Thurston's avatar
Adrian Thurston committed
704 705 706 707 708
} OLEUICHANGESOURCEW, *POLEUICHANGESOURCEW, *LPOLEUICHANGESOURCEW;


typedef struct tagOLEUICHANGESOURCEA
{
709 710 711 712 713 714 715 716 717 718 719 720 721
    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
722
    LPSTR           lpszDisplayName;
723 724 725
    ULONG           nFileLength;
    LPSTR           lpszFrom;
    LPSTR           lpszTo;
Adrian Thurston's avatar
Adrian Thurston committed
726 727 728 729 730 731 732
} OLEUICHANGESOURCEA, *POLEUICHANGESOURCEA, *LPOLEUICHANGESOURCEA;


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

733 734 735 736 737 738
/* Change Source Dialog flags */
#define CSF_SHOWHELP                    0x00000001L
#define CSF_VALIDSOURCE                 0x00000002L
#define CSF_ONLYGETSOURCE               0x00000004L
#define CSF_EXPLORER                    0x00000008L

Adrian Thurston's avatar
Adrian Thurston committed
739 740 741 742

/*****************************************************************************
 * IOleUILinkContainer interface
 */
743
#define INTERFACE   IOleUILinkContainerA
744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760
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;
761
    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
762
};
763
#undef INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
764

765
#define INTERFACE   IOleUILinkContainerW
766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782
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;
783
    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
784
};
785
#undef INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
786 787 788 789 790

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

791
#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurston's avatar
Adrian Thurston committed
792
/*** IUnknown methods ***/
793 794 795
#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
796
/*** IOleUILinkContainer methods ***/
797 798 799 800 801 802 803 804
#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
805 806 807 808 809 810
#endif


/*****************************************************************************
 * IOleUILinkInfo interface
 */
811
#define INTERFACE   IOleUILinkInfoA
812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830
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 ***/
831
    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,  FILETIME *lpLastUpdate) PURE;
832
};
833
#undef INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
834

835
#define INTERFACE   IOleUILinkInfoW
836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854
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 ***/
855
    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,  FILETIME *lpLastUpdate) PURE;
856
};
857
#undef  INTERFACE
Adrian Thurston's avatar
Adrian Thurston committed
858 859 860 861 862

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

863
#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurston's avatar
Adrian Thurston committed
864
/*** IUnknown methods ***/
865 866 867
#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
868
/*** IOleUILinkContainer methods ***/
869 870 871 872 873 874 875 876
#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)
877
/*** IOleUILinkInfo methods ***/
878 879
#define IOleUILinkInfo_GetLastUpdate(p,a,b)           (p)->lpVtbl->GetLastUpdate(p,a,b)
#endif
Adrian Thurston's avatar
Adrian Thurston committed
880 881 882 883 884


/*****************************************************************************
 * IOleUIObjInfo interface
 */
885
#define INTERFACE   IOleUIObjInfoA
886 887 888 889 890 891 892 893 894 895 896 897 898 899
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,
900
                INT nCurrentScale, BOOL bRelativeToOrig) PURE;
901
};
902
#undef INTERFACE
Alexandre Julliard's avatar
Alexandre Julliard committed
903

904
#define INTERFACE   IOleUIObjInfoW
905 906 907 908 909 910 911 912 913 914 915 916 917 918
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,
919
                INT nCurrentScale, BOOL bRelativeToOrig) PURE;
920
};
921
#undef INTERFACE
Alexandre Julliard's avatar
Alexandre Julliard committed
922

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

927
#if !defined(__cplusplus) || defined(CINTERFACE)
Adrian Thurston's avatar
Adrian Thurston committed
928
/*** IUnknown methods ***/
929 930 931
#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
932
/*** IOleUIObjInfo methods ***/
933 934 935 936 937 938
#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
939

Adrian Thurston's avatar
Adrian Thurston committed
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 969 970
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);
971
#define      OleUIPasteSpecial WINELIB_NAME_AW(OleUIPasteSpecial)
972 973 974
INT  __cdecl OleUIPromptUserA(INT,HWND, ...);
INT  __cdecl OleUIPromptUserW(INT,HWND, ...);
#define      OleUIPromptUser WINELIB_NAME_AW(OleUIPromptUser)
Alexandre Julliard's avatar
Alexandre Julliard committed
975

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


#endif  /* __WINE_OLEDLG_H */