Add mingw-w64 header set as initial set.
git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@3 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/oledlg.h b/mingw-w64-headers/include/oledlg.h
new file mode 100755
index 0000000..8d8b9a8
--- /dev/null
+++ b/mingw-w64-headers/include/oledlg.h
@@ -0,0 +1,1151 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _OLEDLG_H_
+#define _OLEDLG_H_
+
+#ifndef RC_INVOKED
+#ifndef __cplusplus
+#define NONAMELESSUNION
+#endif
+
+#if defined(_UNICODE) && !defined(UNICODE)
+#define UNICODE
+#endif
+#if defined(UNICODE) && !defined(_UNICODE)
+#define _UNICODE
+#endif
+
+#ifndef _WINDOWS_
+#include <windows.h>
+#endif
+#ifndef _INC_SHELLAPI
+#include <shellapi.h>
+#endif
+#ifndef _INC_COMMDLG
+#include <commdlg.h>
+#endif
+#ifndef _OLE2_H_
+#include <ole2.h>
+#endif
+#include <string.h>
+#include <tchar.h>
+#endif
+
+#include <dlgs.h>
+
+#define IDC_OLEUIHELP 99
+
+#define IDC_IO_CREATENEW 2100
+#define IDC_IO_CREATEFROMFILE 2101
+#define IDC_IO_LINKFILE 2102
+#define IDC_IO_OBJECTTYPELIST 2103
+#define IDC_IO_DISPLAYASICON 2104
+#define IDC_IO_CHANGEICON 2105
+#define IDC_IO_FILE 2106
+#define IDC_IO_FILEDISPLAY 2107
+#define IDC_IO_RESULTIMAGE 2108
+#define IDC_IO_RESULTTEXT 2109
+#define IDC_IO_ICONDISPLAY 2110
+#define IDC_IO_OBJECTTYPETEXT 2111
+#define IDC_IO_FILETEXT 2112
+#define IDC_IO_FILETYPE 2113
+#define IDC_IO_INSERTCONTROL 2114
+#define IDC_IO_ADDCONTROL 2115
+#define IDC_IO_CONTROLTYPELIST 2116
+
+#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
+
+#define IDC_CI_GROUP 120
+#define IDC_CI_CURRENT 121
+#define IDC_CI_CURRENTICON 122
+#define IDC_CI_DEFAULT 123
+#define IDC_CI_DEFAULTICON 124
+#define IDC_CI_FROMFILE 125
+#define IDC_CI_FROMFILEEDIT 126
+#define IDC_CI_ICONLIST 127
+#define IDC_CI_LABEL 128
+#define IDC_CI_LABELEDIT 129
+#define IDC_CI_BROWSE 130
+#define IDC_CI_ICONDISPLAY 131
+
+#define IDC_CV_OBJECTTYPE 150
+#define IDC_CV_DISPLAYASICON 152
+#define IDC_CV_CHANGEICON 153
+#define IDC_CV_ACTIVATELIST 154
+#define IDC_CV_CONVERTTO 155
+#define IDC_CV_ACTIVATEAS 156
+#define IDC_CV_RESULTTEXT 157
+#define IDC_CV_CONVERTLIST 158
+#define IDC_CV_ICONDISPLAY 165
+
+#define IDC_EL_CHANGESOURCE 201
+#define IDC_EL_AUTOMATIC 202
+#define IDC_EL_CANCELLINK 209
+#define IDC_EL_UPDATENOW 210
+#define IDC_EL_OPENSOURCE 211
+#define IDC_EL_MANUAL 212
+#define IDC_EL_LINKSOURCE 216
+#define IDC_EL_LINKTYPE 217
+#define IDC_EL_LINKSLISTBOX 206
+#define IDC_EL_COL1 220
+#define IDC_EL_COL2 221
+#define IDC_EL_COL3 222
+
+#define IDC_BZ_RETRY 600
+#define IDC_BZ_ICON 601
+#define IDC_BZ_MESSAGE1 602
+#define IDC_BZ_SWITCHTO 604
+
+#define IDC_UL_METER 1029
+#define IDC_UL_STOP 1030
+#define IDC_UL_PERCENT 1031
+#define IDC_UL_PROGRESS 1032
+
+#define IDC_PU_LINKS 900
+#define IDC_PU_TEXT 901
+#define IDC_PU_CONVERT 902
+#define IDC_PU_ICON 908
+
+#define IDC_GP_OBJECTNAME 1009
+#define IDC_GP_OBJECTTYPE 1010
+#define IDC_GP_OBJECTSIZE 1011
+#define IDC_GP_CONVERT 1013
+#define IDC_GP_OBJECTICON 1014
+#define IDC_GP_OBJECTLOCATION 1022
+
+#define IDC_VP_PERCENT 1000
+#define IDC_VP_CHANGEICON 1001
+#define IDC_VP_EDITABLE 1002
+#define IDC_VP_ASICON 1003
+#define IDC_VP_RELATIVE 1005
+#define IDC_VP_SPIN 1006
+#define IDC_VP_SCALETXT 1034
+#define IDC_VP_ICONDISPLAY 1021
+#define IDC_VP_RESULTIMAGE 1033
+
+#define IDC_LP_OPENSOURCE 1006
+#define IDC_LP_UPDATENOW 1007
+#define IDC_LP_BREAKLINK 1008
+#define IDC_LP_LINKSOURCE 1012
+#define IDC_LP_CHANGESOURCE 1015
+#define IDC_LP_AUTOMATIC 1016
+#define IDC_LP_MANUAL 1017
+#define IDC_LP_DATE 1018
+#define IDC_LP_TIME 1019
+
+#define IDD_INSERTOBJECT 1000
+#define IDD_CHANGEICON 1001
+#define IDD_CONVERT 1002
+#define IDD_PASTESPECIAL 1003
+#define IDD_EDITLINKS 1004
+#define IDD_BUSY 1006
+#define IDD_UPDATELINKS 1007
+#define IDD_CHANGESOURCE 1009
+#define IDD_INSERTFILEBROWSE 1010
+#define IDD_CHANGEICONBROWSE 1011
+#define IDD_CONVERTONLY 1012
+#define IDD_CHANGESOURCE4 1013
+#define IDD_GNRLPROPS 1100
+#define IDD_VIEWPROPS 1101
+#define IDD_LINKPROPS 1102
+#define IDD_CONVERT4 1103
+#define IDD_CONVERTONLY4 1104
+#define IDD_EDITLINKS4 1105
+#define IDD_GNRLPROPS4 1106
+#define IDD_LINKPROPS4 1107
+#define IDD_PASTESPECIAL4 1108
+
+#define IDD_CANNOTUPDATELINK 1008
+#define IDD_LINKSOURCEUNAVAILABLE 1020
+#define IDD_SERVERNOTFOUND 1023
+#define IDD_OUTOFMEMORY 1024
+#define IDD_SERVERNOTREGW 1021
+#define IDD_LINKTYPECHANGEDW 1022
+#define IDD_SERVERNOTREGA 1025
+#define IDD_LINKTYPECHANGEDA 1026
+#ifdef UNICODE
+#define IDD_SERVERNOTREG IDD_SERVERNOTREGW
+#define IDD_LINKTYPECHANGED IDD_LINKTYPECHANGEDW
+#else
+#define IDD_SERVERNOTREG IDD_SERVERNOTREGA
+#define IDD_LINKTYPECHANGED IDD_LINKTYPECHANGEDA
+#endif
+
+#ifndef RC_INVOKED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,8)
+
+#define OLESTDDELIM TEXT("\\")
+
+ typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND,UINT,WPARAM,LPARAM);
+
+#define SZOLEUI_MSG_HELP TEXT("OLEUI_MSG_HELP")
+#define SZOLEUI_MSG_ENDDIALOG TEXT("OLEUI_MSG_ENDDIALOG")
+#define SZOLEUI_MSG_BROWSE TEXT("OLEUI_MSG_BROWSE")
+#define SZOLEUI_MSG_CHANGEICON TEXT("OLEUI_MSG_CHANGEICON")
+#define SZOLEUI_MSG_CLOSEBUSYDIALOG TEXT("OLEUI_MSG_CLOSEBUSYDIALOG")
+#define SZOLEUI_MSG_CONVERT TEXT("OLEUI_MSG_CONVERT")
+#define SZOLEUI_MSG_CHANGESOURCE TEXT("OLEUI_MSG_CHANGESOURCE")
+#define SZOLEUI_MSG_ADDCONTROL TEXT("OLEUI_MSG_ADDCONTROL")
+#define SZOLEUI_MSG_BROWSE_OFN TEXT("OLEUI_MSG_BROWSE_OFN")
+
+#define ID_BROWSE_CHANGEICON 1
+#define ID_BROWSE_INSERTFILE 2
+#define ID_BROWSE_ADDCONTROL 3
+#define ID_BROWSE_CHANGESOURCE 4
+
+#define OLEUI_FALSE 0
+#define OLEUI_SUCCESS 1
+#define OLEUI_OK 1
+#define OLEUI_CANCEL 2
+
+#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
+
+ STDAPI_(WINBOOL) OleUIAddVerbMenuW(LPOLEOBJECT lpOleObj,LPCWSTR lpszShortType,HMENU hMenu,UINT uPos,UINT uIDVerbMin,UINT uIDVerbMax,WINBOOL bAddConvert,UINT idConvert,HMENU *lphMenu);
+ STDAPI_(WINBOOL) OleUIAddVerbMenuA(LPOLEOBJECT lpOleObj,LPCSTR lpszShortType,HMENU hMenu,UINT uPos,UINT uIDVerbMin,UINT uIDVerbMax,WINBOOL bAddConvert,UINT idConvert,HMENU *lphMenu);
+#ifdef UNICODE
+#define OleUIAddVerbMenu OleUIAddVerbMenuW
+#else
+#define OleUIAddVerbMenu OleUIAddVerbMenuA
+#endif
+
+ typedef struct tagOLEUIINSERTOBJECTW {
+ 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;
+ } OLEUIINSERTOBJECTW,*POLEUIINSERTOBJECTW,*LPOLEUIINSERTOBJECTW;
+
+ typedef struct tagOLEUIINSERTOBJECTA {
+ 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;
+ } OLEUIINSERTOBJECTA,*POLEUIINSERTOBJECTA,*LPOLEUIINSERTOBJECTA;
+
+ STDAPI_(UINT) OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
+ STDAPI_(UINT) OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
+
+#ifdef UNICODE
+#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTW
+#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTW
+#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTW
+#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTW
+#define OleUIInsertObject OleUIInsertObjectW
+#else
+#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTA
+#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTA
+#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTA
+#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTA
+#define OleUIInsertObject OleUIInsertObjectA
+#endif
+
+#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
+
+#define OLEUI_IOERR_LPSZFILEINVALID (OLEUI_ERR_STANDARDMAX+0)
+#define OLEUI_IOERR_LPSZLABELINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_IOERR_HICONINVALID (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_IOERR_LPFORMATETCINVALID (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_IOERR_PPVOBJINVALID (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_IOERR_LPIOLECLIENTSITEINVALID (OLEUI_ERR_STANDARDMAX+5)
+#define OLEUI_IOERR_LPISTORAGEINVALID (OLEUI_ERR_STANDARDMAX+6)
+#define OLEUI_IOERR_SCODEHASERROR (OLEUI_ERR_STANDARDMAX+7)
+#define OLEUI_IOERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+8)
+#define OLEUI_IOERR_CCHFILEINVALID (OLEUI_ERR_STANDARDMAX+9)
+
+ typedef enum tagOLEUIPASTEFLAG {
+ OLEUIPASTE_ENABLEICON = 2048,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
+ } OLEUIPASTEFLAG;
+
+ typedef struct tagOLEUIPASTEENTRYW {
+ FORMATETC fmtetc;
+ LPCWSTR lpstrFormatName;
+ LPCWSTR lpstrResultText;
+ DWORD dwFlags;
+ DWORD dwScratchSpace;
+ } OLEUIPASTEENTRYW,*POLEUIPASTEENTRYW,*LPOLEUIPASTEENTRYW;
+
+ typedef struct tagOLEUIPASTEENTRYA {
+ FORMATETC fmtetc;
+ LPCSTR lpstrFormatName;
+ LPCSTR lpstrResultText;
+ DWORD dwFlags;
+ DWORD dwScratchSpace;
+ } OLEUIPASTEENTRYA,*POLEUIPASTEENTRYA,*LPOLEUIPASTEENTRYA;
+
+#ifdef UNICODE
+#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYW
+#define OLEUIPASTEENTRY OLEUIPASTEENTRYW
+#define POLEUIPASTEENTRY POLEUIPASTEENTRYW
+#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYW
+#else
+#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYA
+#define OLEUIPASTEENTRY OLEUIPASTEENTRYA
+#define POLEUIPASTEENTRY POLEUIPASTEENTRYA
+#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYA
+#endif
+
+#define PS_MAXLINKTYPES 8
+
+ typedef struct tagOLEUIPASTESPECIALW {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ HWND hWndOwner;
+ LPCWSTR lpszCaption;
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ HINSTANCE hInstance;
+ LPCWSTR lpszTemplate;
+ HRSRC hResource;
+ LPDATAOBJECT lpSrcDataObj;
+ LPOLEUIPASTEENTRYW arrPasteEntries;
+ int cPasteEntries;
+ UINT *arrLinkTypes;
+ int cLinkTypes;
+ UINT cClsidExclude;
+ LPCLSID lpClsidExclude;
+ int nSelectedIndex;
+ WINBOOL fLink;
+ HGLOBAL hMetaPict;
+ SIZEL sizel;
+ } OLEUIPASTESPECIALW,*POLEUIPASTESPECIALW,*LPOLEUIPASTESPECIALW;
+
+ typedef struct tagOLEUIPASTESPECIALA {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ HWND hWndOwner;
+ LPCSTR lpszCaption;
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ HINSTANCE hInstance;
+ LPCSTR lpszTemplate;
+ HRSRC hResource;
+ LPDATAOBJECT lpSrcDataObj;
+ LPOLEUIPASTEENTRYA arrPasteEntries;
+ int cPasteEntries;
+ UINT *arrLinkTypes;
+ int cLinkTypes;
+ UINT cClsidExclude;
+ LPCLSID lpClsidExclude;
+ int nSelectedIndex;
+ WINBOOL fLink;
+ HGLOBAL hMetaPict;
+ SIZEL sizel;
+ } OLEUIPASTESPECIALA,*POLEUIPASTESPECIALA,*LPOLEUIPASTESPECIALA;
+
+#ifdef UNICODE
+#define tagOLEUIPASTESPECIAL tagOLEUIPASTESPECIALW
+#define OLEUIPASTESPECIAL OLEUIPASTESPECIALW
+#define POLEUIPASTESPECIAL POLEUIPASTESPECIALW
+#define LPOLEUIPASTESPECIAL LPOLEUIPASTESPECIALW
+#else
+#define tagOLEUIPASTESPECIAL tagOLEUIPASTESPECIALA
+#define OLEUIPASTESPECIAL OLEUIPASTESPECIALA
+#define POLEUIPASTESPECIAL POLEUIPASTESPECIALA
+#define LPOLEUIPASTESPECIAL LPOLEUIPASTESPECIALA
+#endif
+
+ STDAPI_(UINT) OleUIPasteSpecialW(LPOLEUIPASTESPECIALW);
+ STDAPI_(UINT) OleUIPasteSpecialA(LPOLEUIPASTESPECIALA);
+#ifdef UNICODE
+#define OleUIPasteSpecial OleUIPasteSpecialW
+#else
+#define OleUIPasteSpecial OleUIPasteSpecialA
+#endif
+
+#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)
+
+#undef INTERFACE
+#define INTERFACE IOleUILinkContainerW
+
+ DECLARE_INTERFACE_(IOleUILinkContainerW,IUnknown) {
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ 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,WINBOOL fValidateSource) PURE;
+ STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPWSTR *lplpszDisplayName,ULONG *lplenFileName,LPWSTR *lplpszFullLinkType,LPWSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
+ STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
+ STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
+ STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
+ };
+
+ typedef IOleUILinkContainerW *LPOLEUILINKCONTAINERW;
+
+#undef INTERFACE
+#define INTERFACE IOleUILinkContainerA
+
+ DECLARE_INTERFACE_(IOleUILinkContainerA,IUnknown) {
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ 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,WINBOOL fValidateSource) PURE;
+ STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPSTR *lplpszDisplayName,ULONG *lplenFileName,LPSTR *lplpszFullLinkType,LPSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
+ STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
+ STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
+ STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
+ };
+
+ typedef IOleUILinkContainerA *LPOLEUILINKCONTAINERA;
+
+#ifdef UNICODE
+#define IOleUILinkContainer IOleUILinkContainerW
+#define IOleUILinkContainerVtbl IOleUILinkContainerWVtbl
+#define LPOLEUILINKCONTAINER LPOLEUILINKCONTAINERW
+#else
+#define IOleUILinkContainer IOleUILinkContainerA
+#define IOleUILinkContainerVtbl IOleUILinkContainerAVtbl
+#define LPOLEUILINKCONTAINER LPOLEUILINKCONTAINERA
+#endif
+
+ typedef struct tagOLEUIEDITLINKSW {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ HWND hWndOwner;
+ LPCWSTR lpszCaption;
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ HINSTANCE hInstance;
+ LPCWSTR lpszTemplate;
+ HRSRC hResource;
+ LPOLEUILINKCONTAINERW lpOleUILinkContainer;
+ } OLEUIEDITLINKSW,*POLEUIEDITLINKSW,*LPOLEUIEDITLINKSW;
+
+ typedef struct tagOLEUIEDITLINKSA {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ HWND hWndOwner;
+ LPCSTR lpszCaption;
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ HINSTANCE hInstance;
+ LPCSTR lpszTemplate;
+ HRSRC hResource;
+ LPOLEUILINKCONTAINERA lpOleUILinkContainer;
+ } OLEUIEDITLINKSA,*POLEUIEDITLINKSA,*LPOLEUIEDITLINKSA;
+
+#ifdef UNICODE
+#define tagOLEUIEDITLINKS tagOLEUIEDITLINKSW
+#define OLEUIEDITLINKS OLEUIEDITLINKSW
+#define POLEUIEDITLINKS POLEUIEDITLINKSW
+#define LPOLEUIEDITLINKS LPOLEUIEDITLINKSW
+#else
+#define tagOLEUIEDITLINKS tagOLEUIEDITLINKSA
+#define OLEUIEDITLINKS OLEUIEDITLINKSA
+#define POLEUIEDITLINKS POLEUIEDITLINKSA
+#define LPOLEUIEDITLINKS LPOLEUIEDITLINKSA
+#endif
+
+#define OLEUI_ELERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+0)
+#define OLEUI_ELERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1)
+
+ STDAPI_(UINT) OleUIEditLinksW(LPOLEUIEDITLINKSW);
+ STDAPI_(UINT) OleUIEditLinksA(LPOLEUIEDITLINKSA);
+
+#ifdef UNICODE
+#define OleUIEditLinks OleUIEditLinksW
+#else
+#define OleUIEditLinks OleUIEditLinksA
+#endif
+
+#define ELF_SHOWHELP 0x00000001L
+#define ELF_DISABLEUPDATENOW 0x00000002L
+#define ELF_DISABLEOPENSOURCE 0x00000004L
+#define ELF_DISABLECHANGESOURCE 0x00000008L
+#define ELF_DISABLECANCELLINK 0x00000010L
+
+ typedef struct tagOLEUICHANGEICONW {
+ 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;
+ } OLEUICHANGEICONW,*POLEUICHANGEICONW,*LPOLEUICHANGEICONW;
+
+ typedef struct tagOLEUICHANGEICONA {
+ 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;
+ } OLEUICHANGEICONA,*POLEUICHANGEICONA,*LPOLEUICHANGEICONA;
+
+ STDAPI_(UINT) OleUIChangeIconW(LPOLEUICHANGEICONW);
+ STDAPI_(UINT) OleUIChangeIconA(LPOLEUICHANGEICONA);
+
+#ifdef UNICODE
+#define tagOLEUICHANGEICON tagOLEUICHANGEICONW
+#define OLEUICHANGEICON OLEUICHANGEICONW
+#define POLEUICHANGEICON POLEUICHANGEICONW
+#define LPOLEUICHANGEICON LPOLEUICHANGEICONW
+#define OleUIChangeIcon OleUIChangeIconW
+#else
+#define tagOLEUICHANGEICON tagOLEUICHANGEICONA
+#define OLEUICHANGEICON OLEUICHANGEICONA
+#define POLEUICHANGEICON POLEUICHANGEICONA
+#define LPOLEUICHANGEICON LPOLEUICHANGEICONA
+#define OleUIChangeIcon OleUIChangeIconA
+#endif
+
+#define CIF_SHOWHELP 0x00000001L
+#define CIF_SELECTCURRENT 0x00000002L
+#define CIF_SELECTDEFAULT 0x00000004L
+#define CIF_SELECTFROMFILE 0x00000008L
+#define CIF_USEICONEXE 0x00000010L
+
+#define OLEUI_CIERR_MUSTHAVECLSID (OLEUI_ERR_STANDARDMAX+0)
+#define OLEUI_CIERR_MUSTHAVECURRENTMETAFILE (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_CIERR_SZICONEXEINVALID (OLEUI_ERR_STANDARDMAX+2)
+
+#define PROP_HWND_CHGICONDLG TEXT("HWND_CIDLG")
+
+ typedef struct tagOLEUICONVERTW {
+ 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;
+ WINBOOL fIsLinkedObject;
+ HGLOBAL hMetaPict;
+ LPWSTR lpszUserType;
+ WINBOOL fObjectsIconChanged;
+ LPWSTR lpszDefLabel;
+ UINT cClsidExclude;
+ LPCLSID lpClsidExclude;
+ } OLEUICONVERTW,*POLEUICONVERTW,*LPOLEUICONVERTW;
+
+ typedef struct tagOLEUICONVERTA {
+ 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;
+ WINBOOL fIsLinkedObject;
+ HGLOBAL hMetaPict;
+ LPSTR lpszUserType;
+ WINBOOL fObjectsIconChanged;
+ LPSTR lpszDefLabel;
+ UINT cClsidExclude;
+ LPCLSID lpClsidExclude;
+ } OLEUICONVERTA,*POLEUICONVERTA,*LPOLEUICONVERTA;
+
+ STDAPI_(UINT) OleUIConvertW(LPOLEUICONVERTW);
+ STDAPI_(UINT) OleUIConvertA(LPOLEUICONVERTA);
+
+#ifdef UNICODE
+#define tagOLEUICONVERT tagOLEUICONVERTW
+#define OLEUICONVERT OLEUICONVERTW
+#define POLEUICONVERT POLEUICONVERTW
+#define LPOLEUICONVERT LPOLEUICONVERTW
+#define OleUIConvert OleUIConvertW
+#else
+#define tagOLEUICONVERT tagOLEUICONVERTA
+#define OLEUICONVERT OLEUICONVERTA
+#define POLEUICONVERT POLEUICONVERTA
+#define LPOLEUICONVERT LPOLEUICONVERTA
+#define OleUIConvert OleUIConvertA
+#endif
+
+ STDAPI_(WINBOOL) OleUICanConvertOrActivateAs(REFCLSID rClsid,WINBOOL fIsLinkedObject,WORD wFormat);
+
+#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
+
+#define OLEUI_CTERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_CTERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_CTERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_CTERR_HMETAPICTINVALID (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_CTERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+5)
+
+ typedef struct tagOLEUIBUSYW {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ HWND hWndOwner;
+ LPCWSTR lpszCaption;
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ HINSTANCE hInstance;
+ LPCWSTR lpszTemplate;
+ HRSRC hResource;
+ HTASK hTask;
+ HWND *lphWndDialog;
+ } OLEUIBUSYW,*POLEUIBUSYW,*LPOLEUIBUSYW;
+
+ typedef struct tagOLEUIBUSYA {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ HWND hWndOwner;
+ LPCSTR lpszCaption;
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ HINSTANCE hInstance;
+ LPCSTR lpszTemplate;
+ HRSRC hResource;
+ HTASK hTask;
+ HWND *lphWndDialog;
+ } OLEUIBUSYA,*POLEUIBUSYA,*LPOLEUIBUSYA;
+
+ STDAPI_(UINT) OleUIBusyW(LPOLEUIBUSYW);
+ STDAPI_(UINT) OleUIBusyA(LPOLEUIBUSYA);
+
+#ifdef UNICODE
+#define tagOLEUIBUSY tagOLEUIBUSYW
+#define OLEUIBUSY OLEUIBUSYW
+#define POLEUIBUSY POLEUIBUSYW
+#define LPOLEUIBUSY LPOLEUIBUSYW
+#define OleUIBusy OleUIBusyW
+#else
+#define tagOLEUIBUSY tagOLEUIBUSYA
+#define OLEUIBUSY OLEUIBUSYA
+#define POLEUIBUSY POLEUIBUSYA
+#define LPOLEUIBUSY LPOLEUIBUSYA
+#define OleUIBusy OleUIBusyA
+#endif
+
+#define BZ_DISABLECANCELBUTTON 0x00000001L
+#define BZ_DISABLESWITCHTOBUTTON 0x00000002L
+#define BZ_DISABLERETRYBUTTON 0x00000004L
+
+#define BZ_NOTRESPONDINGDIALOG 0x00000008L
+
+#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)
+
+ typedef struct tagOLEUICHANGESOURCEW {
+ 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;
+ LPWSTR lpszDisplayName;
+ ULONG nFileLength;
+ LPWSTR lpszFrom;
+ LPWSTR lpszTo;
+ } OLEUICHANGESOURCEW,*POLEUICHANGESOURCEW,*LPOLEUICHANGESOURCEW;
+
+ typedef struct tagOLEUICHANGESOURCEA {
+ 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;
+ LPSTR lpszDisplayName;
+ ULONG nFileLength;
+ LPSTR lpszFrom;
+ LPSTR lpszTo;
+ } OLEUICHANGESOURCEA,*POLEUICHANGESOURCEA,*LPOLEUICHANGESOURCEA;
+
+ STDAPI_(UINT) OleUIChangeSourceW(LPOLEUICHANGESOURCEW);
+ STDAPI_(UINT) OleUIChangeSourceA(LPOLEUICHANGESOURCEA);
+
+#ifdef UNICODE
+#define tagOLEUICHANGESOURCE tagOLEUICHANGESOURCEW
+#define OLEUICHANGESOURCE OLEUICHANGESOURCEW
+#define POLEUICHANGESOURCE POLEUICHANGESOURCEW
+#define LPOLEUICHANGESOURCE LPOLEUICHANGESOURCEW
+#define OleUIChangeSource OleUIChangeSourceW
+#else
+#define tagOLEUICHANGESOURCE tagOLEUICHANGESOURCEA
+#define OLEUICHANGESOURCE OLEUICHANGESOURCEA
+#define POLEUICHANGESOURCE POLEUICHANGESOURCEA
+#define LPOLEUICHANGESOURCE LPOLEUICHANGESOURCEA
+#define OleUIChangeSource OleUIChangeSourceA
+#endif
+
+#define CSF_SHOWHELP 0x00000001L
+#define CSF_VALIDSOURCE 0x00000002L
+#define CSF_ONLYGETSOURCE 0x00000004L
+#define CSF_EXPLORER 0x00000008L
+
+#define OLEUI_CSERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+0)
+#define OLEUI_CSERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_CSERR_FROMNOTNULL (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_CSERR_TONOTNULL (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_CSERR_SOURCENULL (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_CSERR_SOURCEINVALID (OLEUI_ERR_STANDARDMAX+5)
+#define OLEUI_CSERR_SOURCEPARSERROR (OLEUI_ERR_STANDARDMAX+6)
+#define OLEUI_CSERR_SOURCEPARSEERROR (OLEUI_ERR_STANDARDMAX+6)
+
+#undef INTERFACE
+#define INTERFACE IOleUIObjInfoW
+
+ DECLARE_INTERFACE_(IOleUIObjInfoW,IUnknown) {
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ 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,int nCurrentScale,WINBOOL bRelativeToOrig) PURE;
+ };
+
+ typedef IOleUIObjInfoW *LPOLEUIOBJINFOW;
+
+#undef INTERFACE
+#define INTERFACE IOleUIObjInfoA
+
+ DECLARE_INTERFACE_(IOleUIObjInfoA,IUnknown) {
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ 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,int nCurrentScale,WINBOOL bRelativeToOrig) PURE;
+ };
+
+ typedef IOleUIObjInfoA *LPOLEUIOBJINFOA;
+
+#ifdef UNICODE
+#define IOleUIObjInfo IOleUIObjInfoW
+#define IOleUIObjInfoVtbl IOleUIObjInfoWVtbl
+#define LPOLEUIOBJINFO LPOLEUIOBJINFOW
+#else
+#define IOleUIObjInfo IOleUIObjInfoA
+#define IOleUIObjInfoVtbl IOleUIObjInfoAVtbl
+#define LPOLEUIOBJINFO LPOLEUIOBJINFOA
+#endif
+
+#undef INTERFACE
+#define INTERFACE IOleUILinkInfoW
+
+ DECLARE_INTERFACE_(IOleUILinkInfoW,IOleUILinkContainerW) {
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ 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,WINBOOL fValidateSource) PURE;
+ STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPWSTR *lplpszDisplayName,ULONG *lplenFileName,LPWSTR *lplpszFullLinkType,LPWSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
+ STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
+ STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
+ STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
+ STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,FILETIME *lpLastUpdate) PURE;
+ };
+
+ typedef IOleUILinkInfoW *LPOLEUILINKINFOW;
+
+#undef INTERFACE
+#define INTERFACE IOleUILinkInfoA
+
+ DECLARE_INTERFACE_(IOleUILinkInfoA,IOleUILinkContainerA) {
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ 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,WINBOOL fValidateSource) PURE;
+ STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink,LPSTR *lplpszDisplayName,ULONG *lplenFileName,LPSTR *lplpszFullLinkType,LPSTR *lplpszShortLinkType,WINBOOL *lpfSourceAvailable,WINBOOL *lpfIsSelected) PURE;
+ STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE;
+ STDMETHOD(UpdateLink)(THIS_ DWORD dwLink,WINBOOL fErrorMessage,WINBOOL fReserved) PURE;
+ STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
+ STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,FILETIME *lpLastUpdate) PURE;
+ };
+
+ typedef IOleUILinkInfoA *LPOLEUILINKINFOA;
+
+#ifdef UNICODE
+#define IOleUILinkInfo IOleUILinkInfoW
+#define IOleUILinkInfoVtbl IOleUILinkInfoWVtbl
+#define LPOLEUILINKINFO LPOLEUILINKINFOW
+#else
+#define IOleUILinkInfo IOleUILinkInfoA
+#define IOleUILinkInfoVtbl IOleUILinkInfoAVtbl
+#define LPOLEUILINKINFO LPOLEUILINKINFOA
+#endif
+
+ struct tagOLEUIOBJECTPROPSW;
+ struct tagOLEUIOBJECTPROPSA;
+
+ typedef struct tagOLEUIGNRLPROPSW {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ DWORD dwReserved1[2];
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ DWORD dwReserved2[3];
+ struct tagOLEUIOBJECTPROPSW *lpOP;
+ } OLEUIGNRLPROPSW,*POLEUIGNRLPROPSW,*LPOLEUIGNRLPROPSW;
+
+ typedef struct tagOLEUIGNRLPROPSA {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ DWORD dwReserved1[2];
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ DWORD dwReserved2[3];
+ struct tagOLEUIOBJECTPROPSA *lpOP;
+ } OLEUIGNRLPROPSA,*POLEUIGNRLPROPSA,*LPOLEUIGNRLPROPSA;
+
+#ifdef UNICODE
+#define tagOLEUIGNRLPROPS tagOLEUIGNRLPROPSW
+#define OLEUIGNRLPROPS OLEUIGNRLPROPSW
+#define POLEUIGNRLPROPS POLEUIGNRLPROPSW
+#define LPOLEUIGNRLPROPS LPOLEUIGNRLPROPSW
+#else
+#define tagOLEUIGNRLPROPS tagOLEUIGNRLPROPSA
+#define OLEUIGNRLPROPS OLEUIGNRLPROPSA
+#define POLEUIGNRLPROPS POLEUIGNRLPROPSA
+#define LPOLEUIGNRLPROPS LPOLEUIGNRLPROPSA
+#endif
+
+ typedef struct tagOLEUIVIEWPROPSW {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ DWORD dwReserved1[2];
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ DWORD dwReserved2[3];
+ struct tagOLEUIOBJECTPROPSW *lpOP;
+ int nScaleMin;
+ int nScaleMax;
+ } OLEUIVIEWPROPSW,*POLEUIVIEWPROPSW,*LPOLEUIVIEWPROPSW;
+
+ typedef struct tagOLEUIVIEWPROPSA {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ DWORD dwReserved1[2];
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ DWORD dwReserved2[3];
+ struct tagOLEUIOBJECTPROPSA *lpOP;
+ int nScaleMin;
+ int nScaleMax;
+ } OLEUIVIEWPROPSA,*POLEUIVIEWPROPSA,*LPOLEUIVIEWPROPSA;
+
+#ifdef UNICODE
+#define tagOLEUIVIEWPROPS tagOLEUIVIEWPROPSW
+#define OLEUIVIEWPROPS OLEUIVIEWPROPSW
+#define POLEUIVIEWPROPS POLEUIVIEWPROPSW
+#define LPOLEUIVIEWPROPS LPOLEUIVIEWPROPSW
+#else
+#define tagOLEUIVIEWPROPS tagOLEUIVIEWPROPSA
+#define OLEUIVIEWPROPS OLEUIVIEWPROPSA
+#define POLEUIVIEWPROPS POLEUIVIEWPROPSA
+#define LPOLEUIVIEWPROPS LPOLEUIVIEWPROPSA
+#endif
+
+#define VPF_SELECTRELATIVE 0x00000001L
+#define VPF_DISABLERELATIVE 0x00000002L
+#define VPF_DISABLESCALE 0x00000004L
+
+ typedef struct tagOLEUILINKPROPSW {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ DWORD dwReserved1[2];
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ DWORD dwReserved2[3];
+ struct tagOLEUIOBJECTPROPSW *lpOP;
+ } OLEUILINKPROPSW,*POLEUILINKPROPSW,*LPOLEUILINKPROPSW;
+
+ typedef struct tagOLEUILINKPROPSA {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ DWORD dwReserved1[2];
+ LPFNOLEUIHOOK lpfnHook;
+ LPARAM lCustData;
+ DWORD dwReserved2[3];
+ struct tagOLEUIOBJECTPROPSA *lpOP;
+ } OLEUILINKPROPSA,*POLEUILINKPROPSA,*LPOLEUILINKPROPSA;
+
+#ifdef UNICODE
+#define tagOLEUILINKPROPS tagOLEUILINKPROPSW
+#define OLEUILINKPROPS OLEUILINKPROPSW
+#define POLEUILINKPROPS POLEUILINKPROPSW
+#define LPOLEUILINKPROPS LPOLEUILINKPROPSW
+#else
+#define tagOLEUILINKPROPS tagOLEUILINKPROPSA
+#define OLEUILINKPROPS OLEUILINKPROPSA
+#define POLEUILINKPROPS POLEUILINKPROPSA
+#define LPOLEUILINKPROPS LPOLEUILINKPROPSA
+#endif
+
+#include <prsht.h>
+
+#ifndef PSM_SETFINISHTEXTA
+ typedef struct _PROPSHEETHEADER *LPPROPSHEETHEADERW;
+ typedef struct _PROPSHEETHEADER *LPPROPSHEETHEADERA;
+#else
+ typedef struct _PROPSHEETHEADERW *LPPROPSHEETHEADERW;
+ typedef struct _PROPSHEETHEADERA *LPPROPSHEETHEADERA;
+#ifdef UNICODE
+#define LPPROPSHEETHEADER LPPROPSHEETHEADERW
+#else
+#define LPPROPSHEETHEADER LPPROPSHEETHEADERA
+#endif
+#endif
+
+ typedef struct tagOLEUIOBJECTPROPSW {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ LPPROPSHEETHEADERW lpPS;
+ DWORD dwObject;
+ LPOLEUIOBJINFOW lpObjInfo;
+ DWORD dwLink;
+ LPOLEUILINKINFOW lpLinkInfo;
+ LPOLEUIGNRLPROPSW lpGP;
+ LPOLEUIVIEWPROPSW lpVP;
+ LPOLEUILINKPROPSW lpLP;
+ } OLEUIOBJECTPROPSW,*POLEUIOBJECTPROPSW,*LPOLEUIOBJECTPROPSW;
+
+ typedef struct tagOLEUIOBJECTPROPSA {
+ DWORD cbStruct;
+ DWORD dwFlags;
+ LPPROPSHEETHEADERA lpPS;
+ DWORD dwObject;
+ LPOLEUIOBJINFOA lpObjInfo;
+ DWORD dwLink;
+ LPOLEUILINKINFOA lpLinkInfo;
+
+ LPOLEUIGNRLPROPSA lpGP;
+ LPOLEUIVIEWPROPSA lpVP;
+ LPOLEUILINKPROPSA lpLP;
+ } OLEUIOBJECTPROPSA,*POLEUIOBJECTPROPSA,*LPOLEUIOBJECTPROPSA;
+
+ STDAPI_(UINT) OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW);
+ STDAPI_(UINT) OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA);
+
+#ifdef UNICODE
+#define tagOLEUIOBJECTPROPS tagOLEUIOBJECTPROPSW
+#define OLEUIOBJECTPROPS OLEUIOBJECTPROPSW
+#define POLEUIOBJECTPROPS POLEUIOBJECTPROPSW
+#define LPOLEUIOBJECTPROPS LPOLEUIOBJECTPROPSW
+#define OleUIObjectProperties OleUIObjectPropertiesW
+#else
+#define tagOLEUIOBJECTPROPS tagOLEUIOBJECTPROPSA
+#define OLEUIOBJECTPROPS OLEUIOBJECTPROPSA
+#define POLEUIOBJECTPROPS POLEUIOBJECTPROPSA
+#define LPOLEUIOBJECTPROPS LPOLEUIOBJECTPROPSA
+#define OleUIObjectProperties OleUIObjectPropertiesA
+#endif
+
+#define OPF_OBJECTISLINK 0x00000001L
+#define OPF_NOFILLDEFAULT 0x00000002L
+#define OPF_SHOWHELP 0x00000004L
+#define OPF_DISABLECONVERT 0x00000008L
+
+#define OLEUI_OPERR_SUBPROPNULL (OLEUI_ERR_STANDARDMAX+0)
+#define OLEUI_OPERR_SUBPROPINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_OPERR_PROPSHEETNULL (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_OPERR_PROPSHEETINVALID (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_OPERR_SUPPROP (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_OPERR_PROPSINVALID (OLEUI_ERR_STANDARDMAX+5)
+#define OLEUI_OPERR_PAGESINCORRECT (OLEUI_ERR_STANDARDMAX+6)
+#define OLEUI_OPERR_INVALIDPAGES (OLEUI_ERR_STANDARDMAX+7)
+#define OLEUI_OPERR_NOTSUPPORTED (OLEUI_ERR_STANDARDMAX+8)
+#define OLEUI_OPERR_DLGPROCNOTNULL (OLEUI_ERR_STANDARDMAX+9)
+#define OLEUI_OPERR_LPARAMNOTZERO (OLEUI_ERR_STANDARDMAX+10)
+
+#define OLEUI_GPERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+11)
+#define OLEUI_GPERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+12)
+#define OLEUI_GPERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+13)
+#define OLEUI_GPERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+14)
+#define OLEUI_VPERR_METAPICTINVALID (OLEUI_ERR_STANDARDMAX+15)
+#define OLEUI_VPERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+16)
+#define OLEUI_LPERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+17)
+#define OLEUI_LPERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+18)
+
+#define OLEUI_OPERR_PROPERTYSHEET (OLEUI_ERR_STANDARDMAX+19)
+#define OLEUI_OPERR_OBJINFOINVALID (OLEUI_ERR_STANDARDMAX+20)
+#define OLEUI_OPERR_LINKINFOINVALID (OLEUI_ERR_STANDARDMAX+21)
+
+#define OLEUI_QUERY_GETCLASSID 0xFF00
+#define OLEUI_QUERY_LINKBROKEN 0xFF01
+
+ int __cdecl OleUIPromptUserW(int nTemplate,HWND hwndParent,...);
+ int __cdecl OleUIPromptUserA(int nTemplate,HWND hwndParent,...);
+
+#ifdef UNICODE
+#define OleUIPromptUser OleUIPromptUserW
+#else
+#define OleUIPromptUser OleUIPromptUserA
+#endif
+
+ STDAPI_(WINBOOL) OleUIUpdateLinksW(LPOLEUILINKCONTAINERW lpOleUILinkCntr,HWND hwndParent,LPWSTR lpszTitle,int cLinks);
+ STDAPI_(WINBOOL) OleUIUpdateLinksA(LPOLEUILINKCONTAINERA lpOleUILinkCntr,HWND hwndParent,LPSTR lpszTitle,int cLinks);
+
+#ifdef UNICODE
+#define OleUIUpdateLinks OleUIUpdateLinksW
+#else
+#define OleUIUpdateLinks OleUIUpdateLinksA
+#endif
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+#endif