// // Class CSite. Implementation of Site object for Internet Explorer // #ifndef __CSITE_HPP__ #define __CSITE_HPP__ #include "iocs.hpp" #include "ioctls.hpp" #include "ias.hpp" #include "ioips.hpp" #include "tchar.h" #include "xobj.hpp" #include "script1.h" #include "ambient.hpp" #ifdef __cplusplus // class definition should be invisible to C sources... // extern CContainer g_Container; // Global container object. class CSite : public IUnknown { // Friend classes. Implementations of required container interfaces friend COleClientSite; friend COleControlSite; friend CAdviseSink; public: DWORD _dwRef; // Our container interfaces public: LPCOLECLIENTSITE _pIOleClientSite; LPCOLECONTROLSITE _pIOleControlSite; LPCADVISESINK _pIAdviseSink; LPCOLEINPLACESITE _pIOleInPlaceSite; LPCXOBJECT _pXObject; LPCAMBIENTDISPATCH _pIOleDispatchAmbientProps; // Intregation interface pointer LPSCRIPTINTEGRATION _pIntegrator; public: HWND _docWnd; LISTPOSITION _SiteCookie; CSite(HText *); virtual ~CSite(); STDMETHODIMP QueryInterface(REFIID, LPVOID *); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); // Public methods HRESULT Destroy(); HRESULT CreateEmbedding(CLSID clsid); HRESULT ConnectEvents(const char *sink, const char *progid); HRESULT InitializeSite(const char*); }; typedef CSite * LPCSITE; DECLARE_STANDARD_TYPES(CSite); #endif //__cplusplus #ifdef __cplusplus extern "C" { #endif // Helper functions HRESULT CloseSite(void * ptr); HRESULT SetEmbeddedObjectRect(BOOL, struct Mwin *, struct _element *); HRESULT FormatEmbeddedObject(struct _element*, int *, BOOL *, int, struct _line *, int*, int*, int); HRESULT ShowAllEmbeddings(struct _www *w3doc, struct Mwin *tw, int nCmdShow); #ifdef __cplusplus } #endif #endif // __CSITE_HPP__