File:  [WindowsNT SDKs] / mstools / mfc / samples / oclient / itemwnd.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 18:21:00 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: ntsdk-oct-1992, ntsdk-jun-1992, ntsdk-jul-1993, HEAD
Microsoft Windows NT Build 297 06-28-1992

// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and Microsoft
// QuickHelp documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

// class CItemWnd - the window containing an embedded OLE object

#ifndef __AFXOLE_H__
#include <afxole.h>
#endif

class CItemWnd;

// A special COleClientItem that points to the UI for it
class CEmbeddedItem : public COleClientItem
	// embedded or linked
{
	CItemWnd*   m_pView;        // view on this item

public:
	CEmbeddedItem(COleClientDoc* pContainer, CItemWnd* pView)
		: COleClientItem(pContainer)
		{ m_pView = pView; }

// Operations
	void    SetNames();

// Callbacks
protected:
	virtual void OnChange(OLE_NOTIFICATION wNotification);
	virtual void WaitForServer();   // special hourglass
};


// Special class for tieing an OLEOBJECT and a WINDOW
class CItemWnd : public CWnd
{
public:
	CItemWnd(CMainWnd* pContainer);

	BOOL    CreateItemWindow(BOOL fShow);
	BOOL    RestoreItemWindow(const RECT& rect);

// Attributes
	BOOL IsComplete()       // BLANK objects are incomplete 
			{ return m_fVisible; }
	BOOL CanChangeBounds()
			{ return (!m_fVisible || m_fTrackSize); }
	CEmbeddedItem*  GetEmbedded()
				{ return &m_embedded; }


// Operations
	void Dirty()
			{ m_pContainer->Dirty(); }

	void DoVerb(UINT nVerb);
	void SetInitialBounds(const CRect& rect);
	void Select(BOOL bOn);

// Callbacks - for Window part
protected:
	afx_msg void OnPaint();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	virtual void PostNcDestroy();     // for cleanup

// Implementation
public:
	virtual void Serialize(CArchive& ar);       // from CObject
#ifdef _DEBUG
	virtual void AssertValid() const;
#endif

protected:
	CMainWnd* m_pContainer;     // our parent window/container
	BOOL    m_fVisible;       // is item to be displayed ?
	BOOL    m_fTrackSize;     // is item's size autoupdate ?

	// Capture/dragging support
	BOOL    m_fCaptured;
	static CRect dragRect;
	static CPoint dragPt;

// Item bound to item window
	CEmbeddedItem   m_embedded;
	void OnCommonChange(BOOL fDestroyOnError);

	DECLARE_MESSAGE_MAP()

	friend class CEmbeddedItem;
};



unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.