mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
185 lines
5.7 KiB
185 lines
5.7 KiB
#ifndef _OCXITEM_H_
|
|
#define _OCXITEM_H_
|
|
//=============================================================================
|
|
// (c) Copyright Wang Laboratories, Inc. 1995 All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
// Project: Norway - Image Editor
|
|
//
|
|
// Component: COcxItem
|
|
//
|
|
// File Name: ocxitem.h
|
|
//-----------------------------------------------------------------------------
|
|
// Maintenance Log:
|
|
/*
|
|
$Header: S:\norway\iedit95\ocxitem.h_v 1.4 01 Dec 1995 14:44:12 LMACLENNAN $
|
|
$Log: S:\norway\iedit95\ocxitem.h_v $
|
|
*
|
|
* Rev 1.4 01 Dec 1995 14:44:12 LMACLENNAN
|
|
* back from VC++2.2
|
|
*
|
|
* Rev 1.4 01 Dec 1995 13:05:16 LMACLENNAN
|
|
* OnUpdateFrameTitle
|
|
*
|
|
* Rev 1.3 18 Oct 1995 10:42:00 GSAGER
|
|
* added a new member function to check if the dispatch pointers are NULL
|
|
*
|
|
* Rev 1.2 09 Oct 1995 11:31:46 LMACLENNAN
|
|
* VC++4.0
|
|
*
|
|
* Rev 1.1 15 Jun 1995 15:41:40 LMACLENNAN
|
|
* tracing to watch ole events
|
|
*
|
|
* Rev 1.0 31 May 1995 09:28:30 MMB
|
|
* Initial entry
|
|
*/
|
|
//=============================================================================
|
|
|
|
// ----------------------------> Includes <---------------------------
|
|
#include "ocxevent.h"
|
|
|
|
// ----------------------------> typedefs <---------------------------
|
|
|
|
// ----------------------------> externs <---------------------------
|
|
class CIeditDoc;
|
|
|
|
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> Class <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
class COcxItem : public CIEditCntrItem
|
|
{
|
|
DECLARE_SERIAL(COcxItem)
|
|
|
|
// Constructors
|
|
public:
|
|
COcxItem(CIEditDoc* pContainer = NULL);
|
|
// Note: pContainer is allowed to be NULL to enable IMPLEMENT_SERIALIZE.
|
|
|
|
// IMPLEMENT_SERIALIZE requires the class have a constructor with
|
|
// zero arguments. Normally, OLE items are constructed with a
|
|
// non-NULL document pointer.
|
|
|
|
// Attributes
|
|
public:
|
|
void InitItem(OCXTYPE, const char *, COleDispatchDriver*, COcxDispatchEvents*);
|
|
BOOL IsDispatchNull(UINT type);
|
|
COleDispatchDriver* GetDispatchDriver() { return m_lpDispatchDriver; }
|
|
BOOL CreateNewItem( CRect rcRect,OLERENDER render = OLERENDER_DRAW,
|
|
CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL);
|
|
BOOL GetEventsIID(IID *piid);
|
|
void SetRect(CRect rcRect) {m_rcRect = rcRect;}
|
|
void IPDebugDmp(const char*); // DEBUG IN-PLACE
|
|
|
|
// Implementation
|
|
public:
|
|
~COcxItem();
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid() const;
|
|
virtual void Dump(CDumpContext& dc) const;
|
|
#endif
|
|
virtual void Serialize(CArchive& ar);
|
|
|
|
// THESE TWO for OLE in-place
|
|
virtual void OnGetItemPosition(CRect& rPosition);
|
|
virtual void OnDeactivate();
|
|
virtual void OnDeactivateUI(BOOL bUndoable);
|
|
|
|
protected:
|
|
virtual void OnChange(OLE_NOTIFICATION wNotification, DWORD dwParam);
|
|
|
|
// THIS for OLE in-place
|
|
virtual BOOL OnChangeItemPosition(const CRect& rectPos);
|
|
|
|
// OLE overriding to gain control for cleanup forrced by ClientItem being
|
|
// killed by inner MFC COleDocument::DeleteContents action.
|
|
public:
|
|
virtual void Release(OLECLOSE dwCloseOption = OLECLOSE_NOSAVE);
|
|
// cleanup, detach (close if needed)
|
|
|
|
virtual BOOL DoVerb(LONG nVerb, CView* pView, LPMSG lpMsg = NULL);
|
|
// OLE end override
|
|
|
|
|
|
|
|
protected:
|
|
|
|
// 04/17/95 LDM MORE override for in-place visibility....
|
|
|
|
// ALREADY IN..
|
|
// virtual void OnGetItemPosition(CRect& rPosition);
|
|
// implement OnGetItemPosition if you support in-place activation
|
|
|
|
// Common overrides for in-place activation
|
|
virtual BOOL OnScrollBy(CSize sizeExtent);
|
|
|
|
protected:
|
|
// Common overrides for applications supporting undo
|
|
// ALREADY IN..
|
|
// virtual void OnDeactivateUI(BOOL bUndoable);
|
|
virtual void OnDiscardUndoState();
|
|
virtual void OnDeactivateAndUndo();
|
|
|
|
// Common overrides for applications supporting links to embeddings
|
|
virtual void OnShowItem();
|
|
|
|
// Advanced overrides for in-place activation
|
|
virtual void OnGetClipRect(CRect& rClipRect);
|
|
virtual BOOL CanActivate();
|
|
virtual void OnActivate();
|
|
virtual void OnActivateUI();
|
|
virtual BOOL OnGetWindowContext(CFrameWnd** ppMainFrame,
|
|
CFrameWnd** ppDocFrame, LPOLEINPLACEFRAMEINFO lpFrameInfo);
|
|
// virtual void OnDeactivate();
|
|
// ALREADY IN..
|
|
// virtual BOOL OnChangeItemPosition(const CRect& rectPos);
|
|
// default calls SetItemRects and caches the pos rect
|
|
|
|
public:
|
|
// Advanced overrides for menu/title handling (rarely overridden)
|
|
virtual void OnInsertMenus(CMenu* pMenuShared,
|
|
LPOLEMENUGROUPWIDTHS lpMenuWidths);
|
|
virtual void OnSetMenu(CMenu* pMenuShared, HOLEMENU holemenu,
|
|
HWND hwndActiveObject);
|
|
virtual void OnRemoveMenus(CMenu* pMenuShared);
|
|
|
|
#ifdef IMG_MFC_40
|
|
virtual BOOL OnUpdateFrameTitle();
|
|
#else
|
|
virtual void OnUpdateFrameTitle();
|
|
#endif
|
|
// Advanced override for control bar handling
|
|
virtual BOOL OnShowControlBars(CFrameWnd* pFrameWnd, BOOL bShow);
|
|
|
|
|
|
// 04/17/95 LDM end test override
|
|
|
|
|
|
|
|
|
|
// Implemented Interfaces
|
|
protected:
|
|
// Interface for Ambient Properties
|
|
BEGIN_INTERFACE_PART(AmbientProps, IDispatch)
|
|
STDMETHOD(GetTypeInfoCount)(unsigned int FAR*);
|
|
STDMETHOD(GetTypeInfo)(unsigned int, LCID, ITypeInfo FAR* FAR*);
|
|
STDMETHOD(GetIDsOfNames)(REFIID, OLECHAR FAR* FAR*, unsigned int, LCID, DISPID FAR*);
|
|
STDMETHOD(Invoke)(DISPID, REFIID, LCID, unsigned short, DISPPARAMS FAR*,
|
|
VARIANT FAR*, EXCEPINFO FAR*, unsigned int FAR*);
|
|
END_INTERFACE_PART(AmbientProps)
|
|
|
|
DECLARE_INTERFACE_MAP()
|
|
|
|
// data members
|
|
private :
|
|
COleDispatchDriver* m_lpDispatchDriver;
|
|
COcxDispatchEvents* m_lpDispatchEvents;
|
|
DWORD m_dwConnEvents;
|
|
|
|
CRect m_rcRect;
|
|
CString m_szItem;
|
|
OCXTYPE m_ocxtype;
|
|
//BOOL m_inDelete; // Controls Recursion for Release/DeleteItem
|
|
|
|
};
|
|
|
|
typedef COcxItem FAR* FAR* LPLPOCXITEM;
|
|
#define DISPATCH_DRIVER 1
|
|
#define DISPATCH_EVENTS 2
|
|
#endif
|