|  | /* | 
|  | * Copyright 2005 Jacek Caban | 
|  | * | 
|  | * 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 | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | import "ocidl.idl"; | 
|  | import "objidl.idl"; | 
|  | import "oleidl.idl"; | 
|  | import "oaidl.idl"; | 
|  | import "docobj.idl"; | 
|  |  | 
|  | cpp_quote("#define CONTEXT_MENU_DEFAULT     0") | 
|  | cpp_quote("#define CONTEXT_MENU_IMAGE       1") | 
|  | cpp_quote("#define CONTEXT_MENU_CONTROL     2") | 
|  | cpp_quote("#define CONTEXT_MENU_TABLE       3") | 
|  | cpp_quote("#define CONTEXT_MENU_TEXTSELECT  4") | 
|  | cpp_quote("#define CONTEXT_MENU_ANCHOR      5") | 
|  | cpp_quote("#define CONTEXT_MENU_UNKNOWN     6") | 
|  | cpp_quote("#define CONTEXT_MENU_IMGDYNSRC   7") | 
|  | cpp_quote("#define CONTEXT_MENU_IMGART      8") | 
|  | cpp_quote("#define CONTEXT_MENU_DEBUG       9") | 
|  | cpp_quote("#define CONTEXT_MENU_VSCROLL    10") | 
|  | cpp_quote("#define CONTEXT_MENU_HSCROLL    11") | 
|  |  | 
|  | cpp_quote("#define MENUEXT_SHOWDIALOG 1") | 
|  |  | 
|  | cpp_quote("#define DOCHOSTUIFLAG_BROWSER (DOCHOSTUIFLAG_DISABLE_HELP_MENU|DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE)") | 
|  |  | 
|  | cpp_quote("#define HTMLDLG_NOUI            0x0010") | 
|  | cpp_quote("#define HTMLDLG_MODAL           0x0020") | 
|  | cpp_quote("#define HTMLDLG_MODELESS        0x0040") | 
|  | cpp_quote("#define HTMLDLG_PRINT_TEMPLATE  0x0080") | 
|  | cpp_quote("#define HTMLDLG_VERIFY          0x0100") | 
|  |  | 
|  | cpp_quote("#define PRINT_DONTBOTHERUSER     0x0001") | 
|  | cpp_quote("#define PRINT_WAITFORCOMPLETION  0x0002") | 
|  |  | 
|  | cpp_quote("DEFINE_GUID(CGID_MSHTML, 0xde4ba900,0x59ca,0x11cf,0x95,0x92,0x44,0x45,0x53,0x54,0x00,0x00);") | 
|  | cpp_quote("#define CMDSETID_Forms3 CGID_MSHTML") | 
|  |  | 
|  | cpp_quote("#if defined(__GNUC__)") | 
|  | cpp_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}") | 
|  | cpp_quote("#elif defined(_MSC_VER)") | 
|  | cpp_quote("#define SZ_HTML_CLIENTSITE_OBJECTPARAM L\"{d4db6850-5385-11d0-89e9-00a0c90a90ac}\"") | 
|  | cpp_quote("#else") | 
|  | cpp_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};") | 
|  | cpp_quote("#endif") | 
|  |  | 
|  | cpp_quote("#ifndef __IHTMLWindow2_FWD_DEFINED__") | 
|  | cpp_quote("#define __IHTMLWindow2_FWD_DEFINED__") | 
|  | cpp_quote("typedef interface IHTMLWindow2 IHTMLWindow2;") | 
|  | cpp_quote("#endif") | 
|  |  | 
|  | /***************************************************************************** | 
|  | *    IHostDialogHelper interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(53DEC138-A51E-11d2-861E-00C04FA35C89), | 
|  | pointer_default(unique), | 
|  | local | 
|  | ] | 
|  | interface IHostDialogHelper : IUnknown | 
|  | { | 
|  | HRESULT ShowHTMLDialog( | 
|  | HWND hwndParent, | 
|  | IMoniker *pMk, | 
|  | VARIANT *pvarArgIn, | 
|  | WCHAR *pchOptions, | 
|  | VARIANT *pvarArgOut, | 
|  | IUnknown *punkHost); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | *    HostDialogHelper coclass | 
|  | */ | 
|  | [ | 
|  | uuid(429AF92C-A51F-11d2-861E-00C04FA35C89) | 
|  | ] | 
|  | coclass HostDialogHelper | 
|  | { | 
|  | [default] interface IHostDialogHelper; | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | *    IDocHostUIHandler interface | 
|  | */ | 
|  |  | 
|  | typedef enum tagDOCHOSTUITYPE { | 
|  | DOCHOSTUITYPE_BROWSE = 0, | 
|  | DOCHOSTUITYPE_AUTHOR = 1 | 
|  | } DOCHOSTUITYPE; | 
|  |  | 
|  | typedef enum tagDOCHOSTUIDBLCLK | 
|  | { | 
|  | DOCHOSTUIDBLCLK_DEFAULT         = 0, | 
|  | DOCHOSTUIDBLCLK_SHOWPROPERTIES  = 1, | 
|  | DOCHOSTUIDBLCLK_SHOWCODE        = 2 | 
|  | } DOCHOSTUIDBLCLK; | 
|  |  | 
|  | typedef enum tagDOCHOSTUIFLAG | 
|  | { | 
|  | DOCHOSTUIFLAG_DIALOG                      = 0x00000001, | 
|  | DOCHOSTUIFLAG_DISABLE_HELP_MENU           = 0x00000002, | 
|  | DOCHOSTUIFLAG_NO3DBORDER                  = 0x00000004, | 
|  | DOCHOSTUIFLAG_SCROLL_NO                   = 0x00000008, | 
|  | DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE     = 0x00000010, | 
|  | DOCHOSTUIFLAG_OPENNEWWIN                  = 0x00000020, | 
|  | DOCHOSTUIFLAG_DISABLE_OFFSCREEN           = 0x00000040, | 
|  | DOCHOSTUIFLAG_FLAT_SCROLLBAR              = 0x00000080, | 
|  | DOCHOSTUIFLAG_DIV_BLOCKDEFAULT            = 0x00000100, | 
|  | DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY     = 0x00000200, | 
|  | DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY     = 0x00000400, | 
|  | DOCHOSTUIFLAG_CODEPAGELINKEDFONTS         = 0x00000800, | 
|  | DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8   = 0x00001000, | 
|  | DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8    = 0x00002000, | 
|  | DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE   = 0x00004000, | 
|  | DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION   = 0x00010000, | 
|  | DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION     = 0x00020000, | 
|  | DOCHOSTUIFLAG_THEME                       = 0x00040000, | 
|  | DOCHOSTUIFLAG_NOTHEME                     = 0x00080000, | 
|  | DOCHOSTUIFLAG_NOPICS                      = 0x00100000, | 
|  | DOCHOSTUIFLAG_NO3DOUTERBORDER             = 0x00200000, | 
|  | DOCHOSTUIFLAG_DISABLE_EDIT_NS_FIXUP       = 0x00400000, | 
|  | DOCHOSTUIFLAG_LOCAL_MACHINE_ACCESS_CHECK  = 0x00800000, | 
|  | DOCHOSTUIFLAG_DISABLE_UNTRUSTEDPROTOCOL   = 0x01000000 | 
|  | } DOCHOSTUIFLAG; | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(BD3F23C0-D43E-11CF-893B-00AA00BDCE1A), | 
|  | pointer_default(unique), | 
|  | local | 
|  | ] | 
|  | interface IDocHostUIHandler : IUnknown | 
|  | { | 
|  | typedef struct _DOCHOSTUIINFO | 
|  | { | 
|  | ULONG cbSize; | 
|  | DWORD dwFlags; | 
|  | DWORD dwDoubleClick; | 
|  | OLECHAR *pchHostCss; | 
|  | OLECHAR *pchHostNS; | 
|  | } DOCHOSTUIINFO; | 
|  |  | 
|  | HRESULT ShowContextMenu( | 
|  | [in] DWORD dwID, | 
|  | [in] POINT *ppt, | 
|  | [in] IUnknown *pcmdtReserved, | 
|  | [in] IDispatch *pdispReserved); | 
|  |  | 
|  | HRESULT GetHostInfo([in, out] DOCHOSTUIINFO *pInfo); | 
|  |  | 
|  | HRESULT ShowUI( | 
|  | [in] DWORD dwID, | 
|  | [in] IOleInPlaceActiveObject *pActiveObject, | 
|  | [in] IOleCommandTarget *pCommandTarget, | 
|  | [in] IOleInPlaceFrame *pFrame, | 
|  | [in] IOleInPlaceUIWindow *pDoc); | 
|  |  | 
|  | HRESULT HideUI(); | 
|  |  | 
|  | HRESULT UpdateUI(); | 
|  |  | 
|  | HRESULT EnableModeless([in] BOOL fEnable); | 
|  |  | 
|  | HRESULT OnDocWindowActivate([in] BOOL fActivate); | 
|  |  | 
|  | HRESULT OnFrameWindowActivate([in] BOOL fActivate); | 
|  |  | 
|  | HRESULT ResizeBorder( | 
|  | [in] LPCRECT prcBorder, | 
|  | [in] IOleInPlaceUIWindow *pUIWindow, | 
|  | [in] BOOL fRameWindow); | 
|  |  | 
|  | HRESULT TranslateAccelerator( | 
|  | [in] LPMSG lpMsg, | 
|  | [in] const GUID *pguidCmdGroup, | 
|  | [in] DWORD nCmdID); | 
|  |  | 
|  | HRESULT GetOptionKeyPath( | 
|  | [out] LPOLESTR *pchKey, | 
|  | [in] DWORD dw); | 
|  |  | 
|  | HRESULT GetDropTarget( | 
|  | [in] IDropTarget *pDropTarget, | 
|  | [out] IDropTarget **ppDropTarget); | 
|  |  | 
|  | HRESULT GetExternal([out] IDispatch **ppDispatch); | 
|  |  | 
|  | HRESULT TranslateUrl( | 
|  | [in] DWORD dwTranslate, | 
|  | [in] OLECHAR *pchURLIn, | 
|  | [out] OLECHAR **ppchURLOut); | 
|  |  | 
|  | HRESULT FilterDataObject( | 
|  | [in] IDataObject *pDO, | 
|  | [out] IDataObject **ppDORet); | 
|  | } | 
|  |  | 
|  | cpp_quote("DEFINE_GUID(CGID_DocHostCommandHandler,0xf38bc242,0xb950,0x11d1,0x89,0x18,0x00,0xc0,0x4f,0xc2,0xc8,0x36);") | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(3050F6D0-98b5-11CF-BB82-00AA00BDCE0B), | 
|  | pointer_default(unique), | 
|  | local | 
|  | ] | 
|  | interface IDocHostUIHandler2 : IDocHostUIHandler | 
|  | { | 
|  | HRESULT GetOverrideKeyPath( | 
|  | [out] LPOLESTR *pchKey, | 
|  | [in] DWORD dw); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | *    ICustomDoc interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(3050f3f0-98b5-11cf-bb82-00aa00bdce0b), | 
|  | pointer_default(unique), | 
|  | local | 
|  | ] | 
|  | interface ICustomDoc : IUnknown | 
|  | { | 
|  | HRESULT SetUIHandler([in] IDocHostUIHandler *pUIHandler); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | *    IDocHostShowUI interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(c4d244b0-d43e-11cf-893b-00aa00bdce1a), | 
|  | pointer_default(unique), | 
|  | local | 
|  | ] | 
|  | interface IDocHostShowUI : IUnknown | 
|  | { | 
|  | HRESULT ShowMessage( | 
|  | [in] HWND hwnd, | 
|  | [in] LPOLESTR lpstrText, | 
|  | [in] LPOLESTR lpstrCaption, | 
|  | [in] DWORD dwType, | 
|  | [in] LPOLESTR lpstrHelpFile, | 
|  | [in] DWORD dwHelpContext, | 
|  | [out] LRESULT *plResult); | 
|  |  | 
|  | HRESULT ShowHelp( | 
|  | [in] HWND hwnd, | 
|  | [in] LPOLESTR pszHelpFile, | 
|  | [in] UINT uCommand, | 
|  | [in] DWORD dwData, | 
|  | [in] POINT ptMouse, | 
|  | [out] IDispatch *pDispatchObjectHit); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | *    IClassFactoryEx interface | 
|  | */ | 
|  |  | 
|  | cpp_quote("#define IClassFactory3 IClassFactoryEx") | 
|  | cpp_quote("#define IID_IClassFactory3 IID_IClassFactoryEx") | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(342D1EA0-AE25-11D1-89C5-006008C3FBFC), | 
|  | pointer_default(unique), | 
|  | local | 
|  | ] | 
|  | interface IClassFactoryEx : IClassFactory | 
|  | { | 
|  | HRESULT CreateInstanceWithContext( | 
|  | IUnknown *punkContext, | 
|  | IUnknown *punkOuter, | 
|  | REFIID riid, | 
|  | [out] void **ppv); | 
|  | } | 
|  |  | 
|  | cpp_quote("typedef HRESULT WINAPI SHOWHTMLDIALOGFN(HWND,IMoniker*,VARIANT*,WCHAR*,VARIANT*);") | 
|  | cpp_quote("typedef HRESULT WINAPI SHOWHTMLDIALOGEXFN(HWND,IMoniker*,DWORD,VARIANT*,WCHAR*,VARIANT*);") | 
|  | cpp_quote("typedef HRESULT WINAPI SHOWMODELESSHTMLDIALOGFN(HWND,IMoniker*,VARIANT*,VARIANT*,IHTMLWindow2**);") | 
|  |  | 
|  | cpp_quote("EXTERN_C HRESULT WINAPI ShowHTMLDialog(HWND,IMoniker*,VARIANT*,WCHAR*,VARIANT*);") | 
|  | cpp_quote("EXTERN_C HRESULT WINAPI ShowHTMLDialogEx(HWND,IMoniker*,DWORD,VARIANT*,WCHAR*,VARIANT*);") | 
|  | cpp_quote("EXTERN_C HRESULT WINAPI ShowModelessHTMLDialog(HWND,IMoniker*,VARIANT*,VARIANT*,IHTMLWindow2**);") | 
|  | cpp_quote("EXTERN_C HRESULT WINAPI RunHTMLApplication(HINSTANCE,HINSTANCE,LPSTR,int);") | 
|  | cpp_quote("EXTERN_C HRESULT WINAPI CreateHTMLPropertyPage(IMoniker*,IPropertyPage**);") |