mshtmhst.idl 9.78 KB
Newer Older
Jacek Caban's avatar
Jacek Caban committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * 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
16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Jacek Caban's avatar
Jacek Caban committed
17 18 19 20 21 22 23 24
 */

import "ocidl.idl";
import "objidl.idl";
import "oleidl.idl";
import "oaidl.idl";
import "docobj.idl";

Jacek Caban's avatar
Jacek Caban committed
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
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")

51 52 53 54 55 56 57 58 59 60 61
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")

62 63 64 65 66
cpp_quote("#ifndef __IHTMLWindow2_FWD_DEFINED__")
cpp_quote("#define __IHTMLWindow2_FWD_DEFINED__")
cpp_quote("typedef interface IHTMLWindow2 IHTMLWindow2;")
cpp_quote("#endif")

Jacek Caban's avatar
Jacek Caban committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
/*****************************************************************************
 *    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;
96
}
Jacek Caban's avatar
Jacek Caban committed
97

Jacek Caban's avatar
Jacek Caban committed
98 99 100
/*****************************************************************************
 *    IDocHostUIHandler interface
 */
Jacek Caban's avatar
Jacek Caban committed
101

102 103 104 105 106
typedef enum tagDOCHOSTUITYPE {
    DOCHOSTUITYPE_BROWSE = 0,
    DOCHOSTUITYPE_AUTHOR = 1
} DOCHOSTUITYPE;

107 108 109 110 111 112 113
typedef enum tagDOCHOSTUIDBLCLK
{
    DOCHOSTUIDBLCLK_DEFAULT         = 0,
    DOCHOSTUIDBLCLK_SHOWPROPERTIES  = 1,
    DOCHOSTUIDBLCLK_SHOWCODE        = 2
} DOCHOSTUIDBLCLK;

Jacek Caban's avatar
Jacek Caban committed
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 141
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;

Jacek Caban's avatar
Jacek Caban committed
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
[
    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(
Jacek Caban's avatar
Jacek Caban committed
210 211 212 213
        [in] IDataObject *pDO,
        [out] IDataObject **ppDORet);
}

214 215
cpp_quote("DEFINE_GUID(CGID_DocHostCommandHandler,0xf38bc242,0xb950,0x11d1,0x89,0x18,0x00,0xc0,0x4f,0xc2,0xc8,0x36);")

Jacek Caban's avatar
Jacek Caban committed
216 217 218 219 220 221 222 223 224 225 226
[
    object,
    uuid(3050F6D0-98b5-11CF-BB82-00AA00BDCE0B),
    pointer_default(unique),
    local
]
interface IDocHostUIHandler2 : IDocHostUIHandler
{
    HRESULT GetOverrideKeyPath(
        [out] LPOLESTR *pchKey,
        [in] DWORD dw);
Jacek Caban's avatar
Jacek Caban committed
227
}
Jacek Caban's avatar
Jacek Caban committed
228

Jacek Caban's avatar
Jacek Caban committed
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291
/*****************************************************************************
 *    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);
292
}
Jacek Caban's avatar
Jacek Caban committed
293

294 295 296 297 298 299 300 301 302
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**);")