home *** CD-ROM | disk | FTP | other *** search
- // AccsCtl.h : Declaration of the CAccessPictCtrl OLE control class.
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
-
-
- /////////////////////////////////////////////////////////////////////////////
- // struct OLEOBJECTHEADER : Access Object Header Structure
-
- struct OLEOBJECTHEADER
- {
- WORD typ; // Type signature (0x1C15)
- WORD cbHdr; // sizeof(struct OLEOBJECTHEADER) + cchName + cchClass
- LONG lobjType; // OLE Object Type Code (OT_STATIC, OT_LINKED, OT_EMBEDDED)
- WORD cchName; // Count of characters in object Name (CchSz(szName) + 1))
- WORD cchClass; // Count of characters in class Name (CchSz(szClss) + 1))
- WORD ibName; // Offset of object name in structure (sizeof(OLEOBJECTHEADER)
- WORD ibClass; // Offset of class name in structure (ibName + cchName)
- POINTS ptSize; // Original size of Object (MM_HIMETRIC)
- };
-
-
- /////////////////////////////////////////////////////////////////////////////
- // struct OLE1STREAM : OLESTREAM struct w/ knowledge of the Access data
-
- typedef struct
- {
- LPOLESTREAMVTBL pvt; // OLESTREAMVTBL pointer
- LPBYTE lpData; // Link to Data in .MDB file
- DWORD dwSize; // OLESTREAM length (relative to position)
- } OLE1STREAM, FAR* LPOLE1STREAM;
-
-
- /////////////////////////////////////////////////////////////////////////////
- // OLESTREAMVTBL Get and Put callback functions
-
- DWORD FAR PASCAL Get(LPOLESTREAM pstm, void FAR* pb, DWORD cb);
- DWORD FAR PASCAL Put(LPOLESTREAM pstm, const void FAR* pb, DWORD cb);
-
- /////////////////////////////////////////////////////////////////////////////
- // CAccessPictCtrl : See AccsCtl.cpp for implementation.
-
- class CAccessPictCtrl : public COleControl
- {
- DECLARE_DYNCREATE(CAccessPictCtrl)
-
- // Constructor
- public:
- CAccessPictCtrl();
-
- // Overrides
-
- // Drawing function
- virtual void OnDraw(
- CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
-
- // Persistence
- virtual void DoPropExchange(CPropExchange* pPX);
-
- // Reset control state
- virtual void OnResetState();
-
- // Attributes
- protected:
- CRect CalcRectSize();
- // Attributes of Access Object
- BOOL m_bIsObject;
- CStreamDib m_StreamDib;
- CSize m_size;
-
- CPictureHolder m_Pict;
- BOOL m_bPictLoaded;
-
- // Implementation
- protected:
- // State Cleanup Function
- void ResetState();
-
- // Drawing Helper
- CRect CalcRectSize(const CRect& rect);
-
- ~CAccessPictCtrl();
-
- DECLARE_OLECREATE_EX(CAccessPictCtrl) // Class factory and guid
- DECLARE_OLETYPELIB(CAccessPictCtrl) // GetTypeInfo
- DECLARE_PROPPAGEIDS(CAccessPictCtrl) // Property page IDs
- DECLARE_OLECTLTYPE(CAccessPictCtrl) // Type name and misc status
-
- // Data Read Functions
- BOOL ReadObject(SAFEARRAY FAR* psaObject);
- LPSTORAGE ReadObjectHeader(SAFEARRAY FAR* psaObject);
- BOOL ReadObjectData(LPSTREAM lpStream);
-
- // OLESTREAM Function Helpers
- LPOLE1STREAM CreateOleStream(LPBYTE lpData, DWORD dwSize);
- void DeleteOleStream(LPOLE1STREAM pStream);
- DWORD GetStreamSize(SAFEARRAY FAR* psaObject, DWORD dwOffset);
-
-
- // Message maps
- //{{AFX_MSG(CAccessPictCtrl)
- // NOTE - ClassWizard will add and remove member functions here.
- // DO NOT EDIT what you see in these blocks of generated code !
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-
- // Dispatch maps
- //{{AFX_DISPATCH(CAccessPictCtrl)
- BOOL m_bStretch;
- BOOL m_bPreserveRatio;
- afx_msg BOOL GetIsAccessObject();
- afx_msg LPPICTUREDISP GetPicture();
- afx_msg BOOL SetData(VARIANT FAR* pvarData);
- //}}AFX_DISPATCH
- DECLARE_DISPATCH_MAP()
-
- afx_msg void AboutBox();
-
- // Event maps
- //{{AFX_EVENT(CAccessPictCtrl)
- //}}AFX_EVENT
- DECLARE_EVENT_MAP()
-
- // Dispatch and event IDs
- public:
- enum {
- //{{AFX_DISP_ID(CAccessPictCtrl)
- dispidIsAccessObject = 3L,
- dispidStretchToFit = 1L,
- dispidPreserveRatio = 2L,
- dispidPicture = 4L,
- dispidSetData = 5L,
- //}}AFX_DISP_ID
- };
- };
-