2005-03-31 10:08:02 +00:00
|
|
|
/*
|
|
|
|
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*/
|
|
|
|
|
2005-04-11 16:11:52 +00:00
|
|
|
typedef struct {
|
2005-06-28 10:53:42 +00:00
|
|
|
const IHTMLDocument2Vtbl *lpHTMLDocument2Vtbl;
|
|
|
|
const IPersistMonikerVtbl *lpPersistMonikerVtbl;
|
|
|
|
const IPersistFileVtbl *lpPersistFileVtbl;
|
|
|
|
const IMonikerPropVtbl *lpMonikerPropVtbl;
|
|
|
|
const IOleObjectVtbl *lpOleObjectVtbl;
|
|
|
|
const IOleDocumentVtbl *lpOleDocumentVtbl;
|
|
|
|
const IOleDocumentViewVtbl *lpOleDocumentViewVtbl;
|
|
|
|
const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl;
|
|
|
|
const IViewObject2Vtbl *lpViewObject2Vtbl;
|
|
|
|
const IOleInPlaceObjectWindowlessVtbl *lpOleInPlaceObjectWindowlessVtbl;
|
2005-07-03 11:22:23 +00:00
|
|
|
const IServiceProviderVtbl *lpServiceProviderVtbl;
|
2005-07-12 17:00:58 +00:00
|
|
|
const IOleCommandTargetVtbl *lpOleCommandTargetVtbl;
|
2005-04-11 16:11:52 +00:00
|
|
|
|
2005-07-06 10:33:10 +00:00
|
|
|
LONG ref;
|
2005-04-12 11:57:51 +00:00
|
|
|
|
|
|
|
IOleClientSite *client;
|
2005-07-12 17:00:58 +00:00
|
|
|
IDocHostUIHandler *hostui;
|
2005-04-13 14:41:19 +00:00
|
|
|
IOleInPlaceSite *ipsite;
|
2005-04-15 16:12:45 +00:00
|
|
|
IOleInPlaceFrame *frame;
|
2005-04-14 11:30:50 +00:00
|
|
|
|
|
|
|
HWND hwnd;
|
2005-04-11 16:11:52 +00:00
|
|
|
} HTMLDocument;
|
|
|
|
|
2005-06-28 10:53:42 +00:00
|
|
|
#define HTMLDOC(x) ((IHTMLDocument2*) &(x)->lpHTMLDocument2Vtbl)
|
|
|
|
#define PERSIST(x) ((IPersist*) &(x)->lpPersistFileVtbl)
|
|
|
|
#define PERSISTMON(x) ((IPersistMoniker*) &(x)->lpPersistMonikerVtbl)
|
|
|
|
#define PERSISTFILE(x) ((IPersistFile*) &(x)->lpPersistFileVtbl)
|
|
|
|
#define MONPROP(x) ((IMonikerProp*) &(x)->lpMonikerPropVtbl)
|
|
|
|
#define OLEOBJ(x) ((IOleObject*) &(x)->lpOleObjectVtbl)
|
|
|
|
#define OLEDOC(x) ((IOleDocument*) &(x)->lpOleDocumentVtbl)
|
|
|
|
#define DOCVIEW(x) ((IOleDocumentView*) &(x)->lpOleDocumentViewVtbl)
|
|
|
|
#define OLEWIN(x) ((IOleWindow*) &(x)->lpOleInPlaceActiveObjectVtbl)
|
|
|
|
#define ACTOBJ(x) ((IOleInPlaceActiveObject*) &(x)->lpOleInPlaceActiveObjectVtbl)
|
|
|
|
#define VIEWOBJ(x) ((IViewObject*) &(x)->lpViewObject2Vtbl)
|
|
|
|
#define VIEWOBJ2(x) ((IViewObject2*) &(x)->lpViewObject2Vtbl)
|
|
|
|
#define INPLACEOBJ(x) ((IOleInPlaceObject*) &(x)->lpOleInPlaceObjectWindowlessVtbl)
|
|
|
|
#define INPLACEWIN(x) ((IOleInPlaceObjectWindowless*) &(x)->lpOleInPlaceObjectWindowlessVtbl)
|
2005-07-03 11:22:23 +00:00
|
|
|
#define SERVPROV(x) ((IServiceProvider*) &(x)->lpServiceProviderVtbl)
|
2005-07-12 17:00:58 +00:00
|
|
|
#define CMDTARGET(x) ((IOleCommandTarget*) &(x)->lpOleCommandTargetVtbl)
|
2005-06-28 10:53:42 +00:00
|
|
|
|
2005-07-13 11:29:53 +00:00
|
|
|
#define DEFINE_THIS(cls,ifc,iface) ((cls*)((BYTE*)(iface)-offsetof(cls,lp ## ifc ## Vtbl)))
|
2005-04-11 16:11:52 +00:00
|
|
|
|
2005-03-31 10:08:02 +00:00
|
|
|
HRESULT HTMLDocument_Create(IUnknown*,REFIID,void**);
|
2005-04-11 16:11:52 +00:00
|
|
|
|
|
|
|
void HTMLDocument_Persist_Init(HTMLDocument*);
|
2005-04-12 11:57:51 +00:00
|
|
|
void HTMLDocument_OleObj_Init(HTMLDocument*);
|
2005-04-13 14:41:19 +00:00
|
|
|
void HTMLDocument_View_Init(HTMLDocument*);
|
2005-06-28 10:53:42 +00:00
|
|
|
void HTMLDocument_Window_Init(HTMLDocument*);
|
2005-07-03 11:22:23 +00:00
|
|
|
void HTMLDocument_Service_Init(HTMLDocument*);
|
2005-04-14 11:30:50 +00:00
|
|
|
|
2005-06-27 09:50:56 +00:00
|
|
|
HRESULT ProtocolFactory_Create(REFCLSID,REFIID,void**);
|
|
|
|
|
|
|
|
DEFINE_GUID(CLSID_AboutProtocol, 0x3050F406, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
|
|
|
|
DEFINE_GUID(CLSID_JSProtocol, 0x3050F3B2, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
|
|
|
|
DEFINE_GUID(CLSID_MailtoProtocol, 0x3050F3DA, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
|
|
|
|
DEFINE_GUID(CLSID_ResProtocol, 0x3050F3BC, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
|
|
|
|
DEFINE_GUID(CLSID_SysimageProtocol, 0x76E67A63, 0x06E9, 0x11D2, 0xA8,0x40, 0x00,0x60,0x08,0x05,0x93,0x82);
|
|
|
|
|
2005-04-14 11:30:50 +00:00
|
|
|
extern HINSTANCE hInst;
|