1/* 2 * Copyright 2005 Jacek Caban 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19import "ocidl.idl"; 20import "objidl.idl"; 21import "oleidl.idl"; 22import "oaidl.idl"; 23import "docobj.idl"; 24 25cpp_quote("#define CONTEXT_MENU_DEFAULT 0") 26cpp_quote("#define CONTEXT_MENU_IMAGE 1") 27cpp_quote("#define CONTEXT_MENU_CONTROL 2") 28cpp_quote("#define CONTEXT_MENU_TABLE 3") 29cpp_quote("#define CONTEXT_MENU_TEXTSELECT 4") 30cpp_quote("#define CONTEXT_MENU_ANCHOR 5") 31cpp_quote("#define CONTEXT_MENU_UNKNOWN 6") 32cpp_quote("#define CONTEXT_MENU_IMGDYNSRC 7") 33cpp_quote("#define CONTEXT_MENU_IMGART 8") 34cpp_quote("#define CONTEXT_MENU_DEBUG 9") 35cpp_quote("#define CONTEXT_MENU_VSCROLL 10") 36cpp_quote("#define CONTEXT_MENU_HSCROLL 11") 37 38cpp_quote("#define MENUEXT_SHOWDIALOG 1") 39 40cpp_quote("#define DOCHOSTUIFLAG_BROWSER (DOCHOSTUIFLAG_DISABLE_HELP_MENU|DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE)") 41 42cpp_quote("#define HTMLDLG_NOUI 0x0010") 43cpp_quote("#define HTMLDLG_MODAL 0x0020") 44cpp_quote("#define HTMLDLG_MODELESS 0x0040") 45cpp_quote("#define HTMLDLG_PRINT_TEMPLATE 0x0080") 46cpp_quote("#define HTMLDLG_VERIFY 0x0100") 47 48cpp_quote("#define PRINT_DONTBOTHERUSER 0x0001") 49cpp_quote("#define PRINT_WAITFORCOMPLETION 0x0002") 50 51cpp_quote("DEFINE_GUID(CGID_MSHTML, 0xde4ba900,0x59ca,0x11cf,0x95,0x92,0x44,0x45,0x53,0x54,0x00,0x00);") 52cpp_quote("#define CMDSETID_Forms3 CGID_MSHTML") 53 54cpp_quote("#if defined(__GNUC__)") 55cpp_quote("#define SZ_HTML_CLIENTSITE_OBJECTPARAM (const WCHAR[]) {'{','d','4','d','b','6','8','5','0','-','5','3','8','5','-','1','1','d','0','-','8','9','e','9','-','0','0','a','0','c','9','0','a','9','0','a','c','}',0}") 56cpp_quote("#elif defined(_MSC_VER)") 57cpp_quote("#define SZ_HTML_CLIENTSITE_OBJECTPARAM L\"{d4db6850-5385-11d0-89e9-00a0c90a90ac}\"") 58cpp_quote("#else") 59cpp_quote("static const WCHAR SZ_HTML_CLIENTSITE_OBJECTPARAM[] = {'{','d','4','d','b','6','8','5','0','-','5','3','8','5','-','1','1','d','0','-','8','9','e','9','-','0','0','a','0','c','9','0','a','9','0','a','c','}',0};") 60cpp_quote("#endif") 61 62cpp_quote("#ifndef __IHTMLWindow2_FWD_DEFINED__") 63cpp_quote("#define __IHTMLWindow2_FWD_DEFINED__") 64cpp_quote("typedef interface IHTMLWindow2 IHTMLWindow2;") 65cpp_quote("#endif") 66 67/***************************************************************************** 68 * IHostDialogHelper interface 69 */ 70[ 71 object, 72 uuid(53DEC138-A51E-11d2-861E-00C04FA35C89), 73 pointer_default(unique), 74 local 75] 76interface IHostDialogHelper : IUnknown 77{ 78 HRESULT ShowHTMLDialog( 79 HWND hwndParent, 80 IMoniker *pMk, 81 VARIANT *pvarArgIn, 82 WCHAR *pchOptions, 83 VARIANT *pvarArgOut, 84 IUnknown *punkHost); 85} 86 87/***************************************************************************** 88 * HostDialogHelper coclass 89 */ 90[ 91 uuid(429AF92C-A51F-11d2-861E-00C04FA35C89) 92] 93coclass HostDialogHelper 94{ 95 [default] interface IHostDialogHelper; 96} 97 98/***************************************************************************** 99 * IDocHostUIHandler interface 100 */ 101 102typedef enum tagDOCHOSTUITYPE { 103 DOCHOSTUITYPE_BROWSE = 0, 104 DOCHOSTUITYPE_AUTHOR = 1 105} DOCHOSTUITYPE; 106 107typedef enum tagDOCHOSTUIDBLCLK 108{ 109 DOCHOSTUIDBLCLK_DEFAULT = 0, 110 DOCHOSTUIDBLCLK_SHOWPROPERTIES = 1, 111 DOCHOSTUIDBLCLK_SHOWCODE = 2 112} DOCHOSTUIDBLCLK; 113 114typedef enum tagDOCHOSTUIFLAG 115{ 116 DOCHOSTUIFLAG_DIALOG = 0x00000001, 117 DOCHOSTUIFLAG_DISABLE_HELP_MENU = 0x00000002, 118 DOCHOSTUIFLAG_NO3DBORDER = 0x00000004, 119 DOCHOSTUIFLAG_SCROLL_NO = 0x00000008, 120 DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = 0x00000010, 121 DOCHOSTUIFLAG_OPENNEWWIN = 0x00000020, 122 DOCHOSTUIFLAG_DISABLE_OFFSCREEN = 0x00000040, 123 DOCHOSTUIFLAG_FLAT_SCROLLBAR = 0x00000080, 124 DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = 0x00000100, 125 DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = 0x00000200, 126 DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = 0x00000400, 127 DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = 0x00000800, 128 DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = 0x00001000, 129 DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = 0x00002000, 130 DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = 0x00004000, 131 DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = 0x00010000, 132 DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = 0x00020000, 133 DOCHOSTUIFLAG_THEME = 0x00040000, 134 DOCHOSTUIFLAG_NOTHEME = 0x00080000, 135 DOCHOSTUIFLAG_NOPICS = 0x00100000, 136 DOCHOSTUIFLAG_NO3DOUTERBORDER = 0x00200000, 137 DOCHOSTUIFLAG_DISABLE_EDIT_NS_FIXUP = 0x00400000, 138 DOCHOSTUIFLAG_LOCAL_MACHINE_ACCESS_CHECK = 0x00800000, 139 DOCHOSTUIFLAG_DISABLE_UNTRUSTEDPROTOCOL = 0x01000000 140} DOCHOSTUIFLAG; 141 142[ 143 object, 144 uuid(BD3F23C0-D43E-11CF-893B-00AA00BDCE1A), 145 pointer_default(unique), 146 local 147] 148interface IDocHostUIHandler : IUnknown 149{ 150 typedef struct _DOCHOSTUIINFO 151 { 152 ULONG cbSize; 153 DWORD dwFlags; 154 DWORD dwDoubleClick; 155 OLECHAR *pchHostCss; 156 OLECHAR *pchHostNS; 157 } DOCHOSTUIINFO; 158 159 HRESULT ShowContextMenu( 160 [in] DWORD dwID, 161 [in] POINT *ppt, 162 [in] IUnknown *pcmdtReserved, 163 [in] IDispatch *pdispReserved); 164 165 HRESULT GetHostInfo([in, out] DOCHOSTUIINFO *pInfo); 166 167 HRESULT ShowUI( 168 [in] DWORD dwID, 169 [in] IOleInPlaceActiveObject *pActiveObject, 170 [in] IOleCommandTarget *pCommandTarget, 171 [in] IOleInPlaceFrame *pFrame, 172 [in] IOleInPlaceUIWindow *pDoc); 173 174 HRESULT HideUI(); 175 176 HRESULT UpdateUI(); 177 178 HRESULT EnableModeless([in] BOOL fEnable); 179 180 HRESULT OnDocWindowActivate([in] BOOL fActivate); 181 182 HRESULT OnFrameWindowActivate([in] BOOL fActivate); 183 184 HRESULT ResizeBorder( 185 [in] LPCRECT prcBorder, 186 [in] IOleInPlaceUIWindow *pUIWindow, 187 [in] BOOL fRameWindow); 188 189 HRESULT TranslateAccelerator( 190 [in] LPMSG lpMsg, 191 [in] const GUID *pguidCmdGroup, 192 [in] DWORD nCmdID); 193 194 HRESULT GetOptionKeyPath( 195 [out] LPOLESTR *pchKey, 196 [in] DWORD dw); 197 198 HRESULT GetDropTarget( 199 [in] IDropTarget *pDropTarget, 200 [out] IDropTarget **ppDropTarget); 201 202 HRESULT GetExternal([out] IDispatch **ppDispatch); 203 204 HRESULT TranslateUrl( 205 [in] DWORD dwTranslate, 206 [in] OLECHAR *pchURLIn, 207 [out] OLECHAR **ppchURLOut); 208 209 HRESULT FilterDataObject( 210 [in] IDataObject *pDO, 211 [out] IDataObject **ppDORet); 212} 213 214cpp_quote("DEFINE_GUID(CGID_DocHostCommandHandler,0xf38bc242,0xb950,0x11d1,0x89,0x18,0x00,0xc0,0x4f,0xc2,0xc8,0x36);") 215 216[ 217 object, 218 uuid(3050F6D0-98b5-11CF-BB82-00AA00BDCE0B), 219 pointer_default(unique), 220 local 221] 222interface IDocHostUIHandler2 : IDocHostUIHandler 223{ 224 HRESULT GetOverrideKeyPath( 225 [out] LPOLESTR *pchKey, 226 [in] DWORD dw); 227} 228 229/***************************************************************************** 230 * ICustomDoc interface 231 */ 232[ 233 object, 234 uuid(3050f3f0-98b5-11cf-bb82-00aa00bdce0b), 235 pointer_default(unique), 236 local 237] 238interface ICustomDoc : IUnknown 239{ 240 HRESULT SetUIHandler([in] IDocHostUIHandler *pUIHandler); 241} 242 243/***************************************************************************** 244 * IDocHostShowUI interface 245 */ 246[ 247 object, 248 uuid(c4d244b0-d43e-11cf-893b-00aa00bdce1a), 249 pointer_default(unique), 250 local 251] 252interface IDocHostShowUI : IUnknown 253{ 254 HRESULT ShowMessage( 255 [in] HWND hwnd, 256 [in] LPOLESTR lpstrText, 257 [in] LPOLESTR lpstrCaption, 258 [in] DWORD dwType, 259 [in] LPOLESTR lpstrHelpFile, 260 [in] DWORD dwHelpContext, 261 [out] LRESULT *plResult); 262 263 HRESULT ShowHelp( 264 [in] HWND hwnd, 265 [in] LPOLESTR pszHelpFile, 266 [in] UINT uCommand, 267 [in] DWORD dwData, 268 [in] POINT ptMouse, 269 [out] IDispatch *pDispatchObjectHit); 270} 271 272/***************************************************************************** 273 * IClassFactoryEx interface 274 */ 275 276cpp_quote("#define IClassFactory3 IClassFactoryEx") 277cpp_quote("#define IID_IClassFactory3 IID_IClassFactoryEx") 278 279[ 280 object, 281 uuid(342D1EA0-AE25-11D1-89C5-006008C3FBFC), 282 pointer_default(unique), 283 local 284] 285interface IClassFactoryEx : IClassFactory 286{ 287 HRESULT CreateInstanceWithContext( 288 IUnknown *punkContext, 289 IUnknown *punkOuter, 290 REFIID riid, 291 [out] void **ppv); 292} 293 294cpp_quote("typedef HRESULT WINAPI SHOWHTMLDIALOGFN(HWND,IMoniker*,VARIANT*,WCHAR*,VARIANT*);") 295cpp_quote("typedef HRESULT WINAPI SHOWHTMLDIALOGEXFN(HWND,IMoniker*,DWORD,VARIANT*,WCHAR*,VARIANT*);") 296cpp_quote("typedef HRESULT WINAPI SHOWMODELESSHTMLDIALOGFN(HWND,IMoniker*,VARIANT*,VARIANT*,IHTMLWindow2**);") 297 298cpp_quote("EXTERN_C HRESULT WINAPI ShowHTMLDialog(HWND,IMoniker*,VARIANT*,WCHAR*,VARIANT*);") 299cpp_quote("EXTERN_C HRESULT WINAPI ShowHTMLDialogEx(HWND,IMoniker*,DWORD,VARIANT*,WCHAR*,VARIANT*);") 300cpp_quote("EXTERN_C HRESULT WINAPI ShowModelessHTMLDialog(HWND,IMoniker*,VARIANT*,VARIANT*,IHTMLWindow2**);") 301cpp_quote("EXTERN_C HRESULT WINAPI RunHTMLApplication(HINSTANCE,HINSTANCE,LPSTR,int);") 302cpp_quote("EXTERN_C HRESULT WINAPI CreateHTMLPropertyPage(IMoniker*,IPropertyPage**);") 303