TCITEM.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:10k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // CTestContainer98Item.h : interface of the CTestContainer98Item class
  2. //
  3. #if !defined(AFX_CTESTCONTAINER98ITEM_H__1981850D_B837_11D0_8DF1_00C04FB68D60__INCLUDED_)
  4. #define AFX_CTESTCONTAINER98ITEM_H__1981850D_B837_11D0_8DF1_00C04FB68D60__INCLUDED_
  5. #if _MSC_VER >= 1000
  6. #pragma once
  7. #endif // _MSC_VER >= 1000
  8. #define IMPLTYPE_MASK (IMPLTYPEFLAG_FDEFAULT|IMPLTYPEFLAG_FSOURCE|
  9.    IMPLTYPEFLAG_FRESTRICTED)
  10. #define IMPLTYPE_DEFAULTSOURCE (IMPLTYPEFLAG_FDEFAULT|IMPLTYPEFLAG_FSOURCE)
  11. #define IMPLTYPE_DEFAULTINTERFACE (IMPLTYPEFLAG_FDEFAULT)
  12. const int MARGIN_PIXELS = 5;
  13. class CTestContainer98Doc;
  14. class CTestContainer98View;
  15. class CTestContainer98Item : public COleClientItem
  16. {
  17.    DECLARE_SERIAL( CTestContainer98Item )
  18. // Constructors
  19. public:
  20.    CTestContainer98Item( CTestContainer98Doc* pContainer = NULL );
  21.   // Note: pContainer is allowed to be NULL to enable IMPLEMENT_SERIALIZE.
  22.   //  IMPLEMENT_SERIALIZE requires the class have a constructor with
  23.   //  zero arguments.  Normally, OLE items are constructed with a
  24.   //  non-NULL document pointer.
  25. // Attributes
  26. public:
  27.    CTestContainer98Doc* GetDocument()
  28.    {
  29.   return( (CTestContainer98Doc*)COleClientItem::GetDocument() );
  30.    }
  31.    CTestContainer98View* GetActiveView()
  32.    {
  33.   return( (CTestContainer98View*)COleClientItem::GetActiveView() );
  34.    }
  35.    CString GetDisplayName();
  36.    BOOL IsInsideOut() const;
  37.    // ClassWizard generated virtual function overrides
  38.    //{{AFX_VIRTUAL(CTestContainer98Item)
  39.    public:
  40.    virtual void OnChange(OLE_NOTIFICATION wNotification, DWORD dwParam);
  41.    virtual void OnActivate();
  42.    protected:
  43.    virtual void OnGetItemPosition(CRect& rPosition);
  44.    virtual void OnGetClipRect(CRect& rPosition);
  45.    virtual void OnDeactivateUI(BOOL bUndoable);
  46.    virtual BOOL OnChangeItemPosition(const CRect& rectPos);
  47.    //}}AFX_VIRTUAL
  48. // Implementation
  49. public:
  50.    void CopyToClipboard( CArchive& ar, IStorage* pStorage );
  51.    BOOL Create( REFCLSID clsid, LPCTSTR pszName = NULL );
  52.    BOOL CreateOrLoad( REFCLSID clsid, LPCTSTR pszName,
  53.   REFIID iidPersistanceMedium, IUnknown* pPeristanceMedium );
  54. //   BOOL CreateFromClipboard();
  55.    BOOL CreateFromClipboard( CArchive& ar, IStorage* pStorage );
  56. //   BOOL CreateFromData( COleDataObject* pData );
  57.    BOOL QuickActivate();
  58.    CInterfaceInfo* GetEventInfo();
  59.    CInterfaceInfo* GetMethodInfo();
  60.    BOOL GetPropertyPageCLSIDs( CArray< CLSID, CLSID& >& aclsidPages );
  61.    DWORD HitTest( CPoint point );
  62.    void DisplayAsDefault( BOOL tDefault );
  63.    BOOL Draw( CDC* pDC, LPCRECT prectBounds, DVASPECT nDrawAspect = DVASPECT(
  64.   -1 ) );
  65.    BOOL DrawBackToFront( CDC* pDC, LPCRECT prectBounds );
  66.    BOOL DrawFrontToBack( CDC* pDC, LPCRECT prectBounds );
  67.    void FreezeEvents( BOOL tFreeze );
  68.    DWORD GetActivationPolicy() const;
  69.    void OnDeselect();
  70.    void OnSelect();
  71.    BOOL OnWindowlessDragEnter( COleDataObject* pDataObject, DWORD dwKeyState,
  72.   CPoint point, DWORD* pdwDropEffect );
  73.    void OnWindowlessDragOver( DWORD dwKeyState, CPoint point,
  74.   DWORD* pdwDropEffect );
  75.    void OnWindowlessDragLeave();
  76.    void OnWindowlessDrop( COleDataObject* pDataObject, DWORD dwKeyState,
  77.   CPoint point, DWORD* pdwDropEffect );
  78.    DWORD OnPointerInactiveMove( CPoint point, DWORD dwKeyState );
  79.    DWORD OnPointerInactiveSetCursor( CPoint point, DWORD dwMouseMessage,
  80.   BOOL* ptHandled );
  81.    void Prepare();
  82.    BOOL ActsLikeButton() const;
  83.    BOOL ShouldActivateWhenVisible();
  84.    void UpdateStatusBar();
  85.    BOOL OnWindowMessage( const MSG* pMessage );
  86.    BOOL HasUIActiveState() const;
  87.    BOOL IsWindowless() const;
  88.    BOOL SupportsIPointerInactive() const;
  89.    HRESULT SaveToStorage( IStorage* pStorage );
  90.    HRESULT SaveToStream( IStream* pStream );
  91.    HRESULT SaveToPropertyBag( IPropertyBag* pPropertyBag );
  92.    COleDataSource* OnGetClipboardData( BOOL tIncludeLink, LPPOINT pptOffset,
  93.   LPSIZE pSize );
  94.    BOOL m_tDisplayAsDefault;
  95.    BOOL m_tExtendedControl;
  96.    BOOL m_tWindowless;
  97.    DWORD m_dwAspectPass2;
  98.    DISPID m_dispidEvent;
  99.    DISPPARAMS m_dpLastParams;
  100.    IConnectionPointPtr m_pEventCP;
  101.    DWORD m_dwEventCookie;
  102.    IConnectionPointPtr m_pPropertyCP;
  103.    DWORD m_dwPropertyCookie;
  104.    CRect m_rect;
  105.    IDispatchPtr m_pCtlDispatch;
  106.    ITCExtendedControlPtr m_pExtendedControl;
  107.    IOleControlPtr m_pOleControl;
  108.    IOleInPlaceObjectWindowlessPtr m_pOleInPlaceObjectWindowless;
  109.    IViewObjectExPtr m_pViewObjectEx;
  110.    IPointerInactivePtr m_pPointerInactive;
  111.    IDropTargetPtr m_pDropTarget;
  112.    DWORD m_dwMiscStatus;
  113.    DWORD m_dwViewStatus;
  114.    CInterfaceInfo m_infoEvents;
  115.    CInterfaceInfo m_infoMethods;
  116.    IUnknown* GetInterfaceHook( const void* pv );
  117.    void InvalidateItem();
  118.    void InvokeMethods();
  119.    void SetLoggingOptions();
  120.    BOOL IsInPlaceActive() const;
  121.    BOOL IsInvisibleAtRuntime() const;
  122.    BOOL IsUIActive() const;
  123.    void Move( const CRect& rect );
  124.    void OnAmbientPropertyChange( DISPID dispid );
  125.    void OnActivateUI();
  126.    void OnDeactivate();
  127.    void OnDeactivate( BOOL tNoRedraw );
  128.    virtual void OnEvent( DISPID dispid, DISPPARAMS* pdpParams );
  129.    void ReadItem( CArchive& ar );
  130.    void WriteItem( CArchive& ar );
  131.    void CommitItem( BOOL bSuccess );
  132.    void UpdateFromServerExtent();
  133.    ~CTestContainer98Item();
  134. protected:
  135.    CONTROLINFO m_infoControl;
  136.    CString m_strDisplayName;
  137.    BOOL m_tInsideOut;
  138.    CRectTracker m_tracker;
  139.    CDC* m_pDC;
  140.    IBindHostPtr m_pBindHost;
  141.    void CleanupParams();
  142.    void CopyParams( DISPPARAMS* pdpParams );
  143.    HRESULT GetControlInfo();
  144.    BOOL FinishCreate( HRESULT hr );
  145.    HRESULT InitControlInfo();
  146.    void OnFocus( BOOL tGotFocus );
  147.    void Release( OLECLOSE dwCloseOption = OLECLOSE_NOSAVE );
  148.    IBindHost* GetBindHost();
  149.    BEGIN_INTERFACE_PART( ServiceProvider, IServiceProvider )
  150.   STDMETHOD( QueryService )( REFGUID guidService, REFIID iid,
  151.  void** ppService );
  152.    END_INTERFACE_PART( ServiceProvider )
  153.    BEGIN_INTERFACE_PART( EventHandler, IDispatch )
  154.   STDMETHOD( GetIDsOfNames )( REFIID iid, LPOLESTR* ppszNames, UINT nNames,
  155.  LCID lcid, DISPID* pDispIDs );
  156.   STDMETHOD( GetTypeInfo )( UINT iTypeInfo, LCID lcid,
  157.  ITypeInfo** ppTypeInfo );
  158.   STDMETHOD( GetTypeInfoCount )( UINT* pnInfoCount );
  159.   STDMETHOD( Invoke )( DISPID dispidMember, REFIID iid, LCID lcid,
  160.  WORD wFlags, DISPPARAMS* pdpParams, VARIANT* pvarResult,
  161.  EXCEPINFO* pExceptionInfo, UINT* piArgError );
  162.    END_INTERFACE_PART( EventHandler )
  163.    BEGIN_INTERFACE_PART( PropertyNotifySink, IPropertyNotifySink )
  164.   STDMETHOD( OnChanged )( DISPID dispid );
  165.   STDMETHOD( OnRequestEdit )( DISPID dispid );
  166.    END_INTERFACE_PART( PropertyNotifySink )
  167.    BEGIN_INTERFACE_PART( AmbientProperties, IDispatch )
  168.   STDMETHOD( GetIDsOfNames )( REFIID iid, LPOLESTR* ppszNames, UINT nNames,
  169.  LCID lcid, DISPID* pDispIDs );
  170.   STDMETHOD( GetTypeInfo )( UINT iTypeInfo, LCID lcid,
  171.  ITypeInfo** ppTypeInfo );
  172.   STDMETHOD( GetTypeInfoCount )( UINT* pnInfoCount );
  173.   STDMETHOD( Invoke )( DISPID dispidMember, REFIID iid, LCID lcid,
  174.  WORD wFlags, DISPPARAMS* pdpParams, VARIANT* pvarResult,
  175.  EXCEPINFO* pExceptionInfo, UINT* piArgError );
  176.    END_INTERFACE_PART( AmbientProperties )
  177.    BEGIN_INTERFACE_PART( AdviseSinkEx, IAdviseSinkEx )
  178.   STDMETHOD_( void, OnClose )();
  179.   STDMETHOD_( void, OnDataChange )( FORMATETC* pFormatEtc,
  180.  STGMEDIUM* pStgMedium );
  181.   STDMETHOD_( void, OnRename )( IMoniker* pMoniker );
  182.   STDMETHOD_( void, OnSave )();
  183.   STDMETHOD_( void, OnViewChange )( DWORD dwAspect, LONG lindex );
  184.   STDMETHOD_( void, OnViewStatusChange )( DWORD dwViewStatus );
  185.    END_INTERFACE_PART( AdviseSinkEx )
  186.    BEGIN_INTERFACE_PART( OleControlSite, IOleControlSite )
  187.   STDMETHOD( GetExtendedControl )( IDispatch** ppExtendedControl );
  188.   STDMETHOD( LockInPlaceActive )( BOOL tLock );
  189.   STDMETHOD( OnControlInfoChanged )();
  190.   STDMETHOD( OnFocus )( BOOL tGotFocus );
  191.   STDMETHOD( ShowPropertyFrame )();
  192.   STDMETHOD( TransformCoords )( POINTL* pptHiMetric, POINTF* pptContainer,
  193.  DWORD dwFlags );
  194.   STDMETHOD( TranslateAccelerator )( LPMSG pMessage, DWORD dwModifiers );
  195.    END_INTERFACE_PART( OleControlSite )
  196.    BEGIN_INTERFACE_PART( OleInPlaceSiteWindowless, IOleInPlaceSiteWindowless )
  197.   STDMETHOD( ContextSensitiveHelp )( BOOL tEnterMode );
  198.   STDMETHOD( GetWindow )( HWND* phWnd );
  199.   STDMETHOD( CanInPlaceActivate )();
  200.   STDMETHOD( DeactivateAndUndo )();
  201.   STDMETHOD( DiscardUndoState )();
  202.   STDMETHOD( GetWindowContext )( IOleInPlaceFrame** ppFrame,
  203.  IOleInPlaceUIWindow** ppDoc, LPRECT prectPos, LPRECT prectClip,
  204.  LPOLEINPLACEFRAMEINFO pFrameInfo );
  205.   STDMETHOD( OnInPlaceActivate )();
  206.   STDMETHOD( OnInPlaceDeactivate )();
  207.   STDMETHOD( OnPosRectChange )( LPCRECT prectPos );
  208.   STDMETHOD( OnUIActivate )();
  209.   STDMETHOD( OnUIDeactivate )( BOOL tUndoable );
  210.   STDMETHOD( Scroll )( SIZE sizeExtent );
  211.   STDMETHOD( OnInPlaceActivateEx )( BOOL* ptNoRedraw, DWORD dwFlags );
  212.   STDMETHOD( OnInPlaceDeactivateEx )( BOOL tNoRedraw );
  213.   STDMETHOD( RequestUIActivate )();
  214.   STDMETHOD( AdjustRect )( LPRECT prect );
  215.   STDMETHOD( CanWindowlessActivate )();
  216.   STDMETHOD( GetCapture )();
  217.   STDMETHOD( GetDC )( LPCRECT prect, DWORD dwFlags, HDC* phDC );
  218.   STDMETHOD( GetFocus )();
  219.   STDMETHOD( InvalidateRect )( LPCRECT prect, BOOL tErase );
  220.   STDMETHOD( InvalidateRgn )( HRGN hRgn, BOOL tErase );
  221.   STDMETHOD( OnDefWindowMessage )( UINT nMessage, WPARAM wParam,
  222.  LPARAM lParam, LRESULT* plResult );
  223.   STDMETHOD( ReleaseDC )( HDC hDC );
  224.   STDMETHOD( ScrollRect )( int dx, int dy, LPCRECT prectScroll,
  225.  LPCRECT prectClip );
  226.   STDMETHOD( SetCapture )( BOOL tCapture );
  227.   STDMETHOD( SetFocus )( BOOL tFocus );
  228.    END_INTERFACE_PART( OleInPlaceSiteWindowless );
  229.    DECLARE_INTERFACE_MAP()
  230. #ifdef _DEBUG
  231.    virtual void AssertValid() const;
  232.    virtual void Dump(CDumpContext& dc) const;
  233. #endif
  234.    virtual void Serialize(CArchive& ar);
  235. };
  236. /////////////////////////////////////////////////////////////////////////////
  237. //{{AFX_INSERT_LOCATION}}
  238. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  239. #endif // !defined(AFX_CTESTCONTAINER98ITEM_H__1981850D_B837_11D0_8DF1_00C04FB68D60__INCLUDED_)