Windows NT 4.0 source code leak
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

#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