MFC,谁能给我..\src\occimpl.h这个文件吗???
如题 occimpl.h mfc
[解决办法]
VS2010的
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 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.
#ifndef _AFX_NO_OCC_SUPPORT
// MFC doesn't use the OLEDB 1.5 features of ATL and it causes
// compile problems, so just make ATL think it's not version 1.5
#if (OLEDBVER >= 0x0150)
#undef OLEDBVER
#define OLEDBVER 0x0100
#endif
#include "atldbcli.h"
class CDataSourceControl;
class CDataBoundProperty;
// CCmdTarget
class COleControlContainer;
class COleControlSite;
class COccManager;
struct _AFX_OCC_DIALOG_INFO;
#define DISPID_DATASOURCE 0x80010001
#define DISPID_DATAFIELD 0x80010002
interface AFX_NOVTABLE IDataSourceListener : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE OnDataMemberChanged(BSTR bstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE OnDataMemberAdded(BSTR bstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE OnDataMemberRemoved(BSTR bstrDM) = 0;
};
interface AFX_NOVTABLE IDataSource : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDataMember(BSTR bstrDM, const GUID __RPC_FAR* riid, IUnknown __RPC_FAR* __RPC_FAR* ppunk) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDataMemberName(long lIndex, BSTR __RPC_FAR *pbstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDataMemberCount(long __RPC_FAR *plCount) = 0;
virtual HRESULT STDMETHODCALLTYPE AddDataSourceListener(IDataSourceListener __RPC_FAR *pDSL) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveDataSourceListener(IDataSourceListener __RPC_FAR *pDSL) = 0;
};
/////////////////////////////////////////////////////////////////////////////
// OLE Databinding support class for data sources
interface IRowPosition;
class CDataSourceControl
{
private:
CDataSourceControl() {};
public:
struct METAROWTYPE
{
DBCOLUMNID idColumnID;
DWORD dwColumnID;
LPSTR lpstrName;
DWORD dwName;
CPtrList* m_pClientList;
};
CDataSourceControl(COleControlSite *pClientSite);
~CDataSourceControl();
HRESULT Initialize();
virtual IUnknown* GetCursor();
HRESULT GetMetaData();
virtual void BindProp(COleControlSite* pClientSite, BOOL bBind = TRUE);
virtual void BindProp(CDataBoundProperty* pProperty, BOOL bBind = TRUE);
virtual void BindColumns();
BOOL CopyColumnID(DBCOLUMNID* pcidDst, DBCOLUMNID const *pcidSrc);
HRESULT GetBoundClientRow();
virtual HRESULT UpdateControls();
virtual HRESULT UpdateCursor();
COleVariant ToVariant(int nCol);
COleControlSite *m_pClientSite; // Back ptr to containing site
ICursorMove* m_pCursorMove;
ICursorUpdateARow* m_pCursorUpdateARow;
INT_PTR m_nColumns;
METAROWTYPE* m_pMetaRowData;
CPtrList m_CursorBoundProps;
void* m_pVarData;
INT_PTR m_nBindings;
DBCOLUMNBINDING *m_pColumnBindings;
VARIANT* m_pValues;
BOOL m_bUpdateInProgress;
// OLE/DB stuff
IDataSource* m_pDataSource;
IRowPosition* m_pRowPosition;
ATL::CRowset<>* m_pRowset;
ATL::CDynamicAccessor* m_pDynamicAccessor;
DWORD m_dwRowsetNotify; // IRowsetNotify cookie
};
/////////////////////////////////////////////////////////////////////////////
// OLE Databinding support class for bound controls
class CDataBoundProperty
{
protected:
CDataBoundProperty() {};
public:
CDataBoundProperty(CDataBoundProperty* pLast, DISPID dispid, WORD ctlid);
~CDataBoundProperty() {};
void SetClientSite(COleControlSite *pClientSite);
void SetDSCSite(COleControlSite *pDSCSite);
void RemoveSource();
void Notify();
IUnknown* GetCursor();
CDataBoundProperty* GetNext();
COleControlSite *m_pClientSite; // Back ptr to containing site
WORD m_ctlid;
DISPID m_dispid;
COleControlSite *m_pDSCSite;
BOOL m_bOwnXferOut;
BOOL m_bIsDirty;
CDataBoundProperty* m_pNext;
};
#endif // !_AFX_NO_OCC_SUPPORT
vs2005的
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 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.
#ifndef _AFX_NO_OCC_SUPPORT
// MFC doesn't use the OLEDB 1.5 features of ATL and it causes
// compile problems, so just make ATL think it's not version 1.5
#if (OLEDBVER >= 0x0150)
#undef OLEDBVER
#define OLEDBVER 0x0100
#endif
#include "atldbcli.h"
class CDataSourceControl;
class CDataBoundProperty;
// CCmdTarget
class COleControlContainer;
class COleControlSite;
class COccManager;
struct _AFX_OCC_DIALOG_INFO;
#define DISPID_DATASOURCE 0x80010001
#define DISPID_DATAFIELD 0x80010002
interface AFX_NOVTABLE IDataSourceListener : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE OnDataMemberChanged(BSTR bstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE OnDataMemberAdded(BSTR bstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE OnDataMemberRemoved(BSTR bstrDM) = 0;
};
interface AFX_NOVTABLE IDataSource : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDataMember(BSTR bstrDM, const GUID __RPC_FAR* riid, IUnknown __RPC_FAR* __RPC_FAR* ppunk) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDataMemberName(long lIndex, BSTR __RPC_FAR *pbstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDataMemberCount(long __RPC_FAR *plCount) = 0;
virtual HRESULT STDMETHODCALLTYPE AddDataSourceListener(IDataSourceListener __RPC_FAR *pDSL) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveDataSourceListener(IDataSourceListener __RPC_FAR *pDSL) = 0;
};
/////////////////////////////////////////////////////////////////////////////
// OLE Databinding support class for data sources
interface IRowPosition;
class CDataSourceControl
{
private:
CDataSourceControl() {};
public:
struct METAROWTYPE
{
DBCOLUMNID idColumnID;
DWORD dwColumnID;
LPSTR lpstrName;
DWORD dwName;
CPtrList* m_pClientList;
};
CDataSourceControl(COleControlSite *pClientSite);
~CDataSourceControl();
HRESULT Initialize();
virtual IUnknown* GetCursor();
HRESULT GetMetaData();
virtual void BindProp(COleControlSite* pClientSite, BOOL bBind = TRUE);
virtual void BindProp(CDataBoundProperty* pProperty, BOOL bBind = TRUE);
virtual void BindColumns();
BOOL CopyColumnID(DBCOLUMNID* pcidDst, DBCOLUMNID const *pcidSrc);
HRESULT GetBoundClientRow();
virtual HRESULT UpdateControls();
virtual HRESULT UpdateCursor();
COleVariant ToVariant(int nCol);
COleControlSite *m_pClientSite; // Back ptr to containing site
ICursorMove* m_pCursorMove;
ICursorUpdateARow* m_pCursorUpdateARow;
INT_PTR m_nColumns;
METAROWTYPE* m_pMetaRowData;
CPtrList m_CursorBoundProps;
void* m_pVarData;
INT_PTR m_nBindings;
DBCOLUMNBINDING *m_pColumnBindings;
VARIANT* m_pValues;
BOOL m_bUpdateInProgress;
// OLE/DB stuff
IDataSource* m_pDataSource;
IRowPosition* m_pRowPosition;
ATL::CRowset<>* m_pRowset;
ATL::CDynamicAccessor* m_pDynamicAccessor;
DWORD m_dwRowsetNotify; // IRowsetNotify cookie
};
/////////////////////////////////////////////////////////////////////////////
// OLE Databinding support class for bound controls
class CDataBoundProperty
{
protected:
CDataBoundProperty() {};
public:
CDataBoundProperty(CDataBoundProperty* pLast, DISPID dispid, WORD ctlid);
~CDataBoundProperty() {};
void SetClientSite(COleControlSite *pClientSite);
void SetDSCSite(COleControlSite *pDSCSite);
void RemoveSource();
void Notify();
IUnknown* GetCursor();
CDataBoundProperty* GetNext();
COleControlSite *m_pClientSite; // Back ptr to containing site
WORD m_ctlid;
DISPID m_dispid;
COleControlSite *m_pDSCSite;
BOOL m_bOwnXferOut;
BOOL m_bIsDirty;
CDataBoundProperty* m_pNext;
};
#endif // !_AFX_NO_OCC_SUPPORT
[解决办法]
// 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.
#ifndef _AFX_NO_OCC_SUPPORT
#include <oledb.h>
#include "olebind.h"
#include "ocdbid.h"
#include "ocdb.h"
// MFC doesn't use the OLEDB 1.5 features of ATL and it causes
// compile problems, so just make ATL think it's not version 1.5
#if (OLEDBVER >= 0x0150)
#undef OLEDBVER
#define OLEDBVER 0x0100
#endif
#define AtlTrace AfxTrace
#include "atldbcli.h"
class CDataSourceControl;
class CDataBoundProperty;
// CCmdTarget
class COleControlContainer;
class COleControlSite;
class COccManager;
struct _AFX_OCC_DIALOG_INFO;
#define DISPID_DATASOURCE 0x80010001
#define DISPID_DATAFIELD 0x80010002
interface AFX_NOVTABLE IDataSourceListener : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE OnDataMemberChanged(BSTR bstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE OnDataMemberAdded(BSTR bstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE OnDataMemberRemoved(BSTR bstrDM) = 0;
};
interface AFX_NOVTABLE IDataSource : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDataMember(BSTR bstrDM, const GUID __RPC_FAR* riid, IUnknown __RPC_FAR* __RPC_FAR* ppunk) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDataMemberName(long lIndex, BSTR __RPC_FAR *pbstrDM) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDataMemberCount(long __RPC_FAR *plCount) = 0;
virtual HRESULT STDMETHODCALLTYPE AddDataSourceListener(IDataSourceListener __RPC_FAR *pDSL) = 0;
virtual HRESULT STDMETHODCALLTYPE RemoveDataSourceListener(IDataSourceListener __RPC_FAR *pDSL) = 0;
};
/////////////////////////////////////////////////////////////////////////////
// OLE Databinding support class for data sources
interface IRowPosition;
class CDataSourceControl
{
private:
CDataSourceControl() {};
public:
struct METAROWTYPE
{
DBCOLUMNID idColumnID;
DWORD dwColumnID;
LPSTR lpstrName;
DWORD dwName;
CPtrList* m_pClientList;
};
CDataSourceControl(COleControlSite *pClientSite);
~CDataSourceControl();
HRESULT Initialize();
virtual IUnknown* GetCursor();
HRESULT GetMetaData();
virtual void BindProp(COleControlSite* pClientSite, BOOL bBind = TRUE);
virtual void BindProp(CDataBoundProperty* pProperty, BOOL bBind = TRUE);
virtual void BindColumns();
BOOL CopyColumnID(DBCOLUMNID* pcidDst, DBCOLUMNID const *pcidSrc);
HRESULT GetBoundClientRow();
virtual HRESULT UpdateControls();
virtual HRESULT UpdateCursor();
COleVariant ToVariant(int nCol);
COleControlSite *m_pClientSite; // Back ptr to containing site
ICursorMove* m_pCursorMove;
ICursorUpdateARow* m_pCursorUpdateARow;
int m_nColumns;
METAROWTYPE* m_pMetaRowData;
CPtrList m_CursorBoundProps;
void* m_pVarData;
int m_nBindings;
DBCOLUMNBINDING *m_pColumnBindings;
VARIANT* m_pValues;
BOOL m_bUpdateInProgress;
// OLE/DB stuff
IDataSource* m_pDataSource;
IRowPosition* m_pRowPosition;
ATL::CRowset* m_pRowset;
ATL::CDynamicAccessor* m_pDynamicAccessor;
DWORD m_dwRowsetNotify; // IRowsetNotify cookie
};
/////////////////////////////////////////////////////////////////////////////
// OLE Databinding support class for bound controls
class CDataBoundProperty
{
protected:
CDataBoundProperty() {};
public:
CDataBoundProperty(CDataBoundProperty* pLast, DISPID dispid, WORD ctlid);
~CDataBoundProperty() {};
void SetClientSite(COleControlSite *pClientSite);
void SetDSCSite(COleControlSite *pDSCSite);
void RemoveSource();
void Notify();
IUnknown* GetCursor();
CDataBoundProperty* GetNext();
COleControlSite *m_pClientSite; // Back ptr to containing site
WORD m_ctlid;
DISPID m_dispid;
COleControlSite *m_pDSCSite;
BOOL m_bOwnXferOut;
BOOL m_bIsDirty;
CDataBoundProperty* m_pNext;
};
/////////////////////////////////////////////////////////////////////////////
// Control containment helper functions
DLGTEMPLATE* _AfxSplitDialogTemplate(const DLGTEMPLATE* pTemplate,
CMapWordToPtr* pOleItemMap);
void _AfxZOrderOleControls(CWnd* pWnd, CMapWordToPtr* pOleItemMap);
/////////////////////////////////////////////////////////////////////////////
// COleControlContainer - implementation class
class COleControlContainer : public CCmdTarget
{
public:
// Constructors/destructors
COleControlContainer(CWnd* pWnd);
virtual ~COleControlContainer();
// Operations
BOOL CreateControl(CWnd* pWndCtrl, REFCLSID clsid,
LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, UINT nID,
CFile* pPersist=NULL, BOOL bStorage=FALSE, BSTR bstrLicKey=NULL,
COleControlSite** ppNewSite=NULL);
// Overload to allow creation of default-sized controls
BOOL CreateControl(CWnd* pWndCtrl, REFCLSID clsid,
LPCTSTR lpszWindowName, DWORD dwStyle, const POINT* ppt,
const SIZE* psize, UINT nID, CFile* pPersist=NULL, BOOL bStorage=FALSE,
BSTR bstrLicKey=NULL, COleControlSite** ppNewSite=NULL);
virtual COleControlSite* FindItem(UINT nID) const;
virtual BOOL GetAmbientProp(COleControlSite* pSite, DISPID dispid,
VARIANT* pvarResult);
void CreateOleFont(CFont* pFont);
void FreezeAllEvents(BOOL bFreeze);
virtual void ScrollChildren(int dx, int dy);
virtual void OnUIActivate(COleControlSite* pSite);
virtual void OnUIDeactivate(COleControlSite* pSite);
virtual void CheckDlgButton(int nIDButton, UINT nCheck);
virtual void CheckRadioButton(int nIDFirstButton, int nIDLastButton,
int nIDCheckButton);
virtual CWnd* GetDlgItem(int nID) const;
virtual void GetDlgItem(int nID, HWND* phWnd) const;
virtual UINT GetDlgItemInt(int nID, BOOL* lpTrans, BOOL bSigned) const;
virtual int GetDlgItemText(int nID, LPTSTR lpStr, int nMaxCount) const;
virtual LRESULT SendDlgItemMessage(int nID, UINT message, WPARAM wParam,
LPARAM lParam);
virtual void SetDlgItemInt(int nID, UINT nValue, BOOL bSigned);
virtual void SetDlgItemText(int nID, LPCTSTR lpszString);
virtual UINT IsDlgButtonChecked(int nIDButton) const;
#ifndef _AFXDLL
virtual void AttachControlSite(CWnd* pWnd);
#else
void AttachControlSite(CWnd* pWnd);
#endif
// Attributes
CWnd* m_pWnd;
CMapPtrToPtr m_siteMap;
COLORREF m_crBack;
COLORREF m_crFore;
LPFONTDISP m_pOleFont;
COleControlSite* m_pSiteUIActive;
public:
// Interface maps
BEGIN_INTERFACE_PART(OleIPFrame, IOleInPlaceFrame)
INIT_INTERFACE_PART(COleControlContainer, OleIPFrame)
STDMETHOD(GetWindow)(HWND*);
STDMETHOD(ContextSensitiveHelp)(BOOL);
STDMETHOD(GetBorder)(LPRECT);
STDMETHOD(RequestBorderSpace)(LPCBORDERWIDTHS);
STDMETHOD(SetBorderSpace)(LPCBORDERWIDTHS);
STDMETHOD(SetActiveObject)(LPOLEINPLACEACTIVEOBJECT, LPCOLESTR);
STDMETHOD(InsertMenus)(HMENU, LPOLEMENUGROUPWIDTHS);
STDMETHOD(SetMenu)(HMENU, HOLEMENU, HWND);
STDMETHOD(RemoveMenus)(HMENU);
STDMETHOD(SetStatusText)(LPCOLESTR);
STDMETHOD(EnableModeless)(BOOL);
STDMETHOD(TranslateAccelerator)(LPMSG, WORD);
END_INTERFACE_PART(OleIPFrame)
BEGIN_INTERFACE_PART(OleContainer, IOleContainer)
INIT_INTERFACE_PART(COleControlContainer, OleContainer)
STDMETHOD(ParseDisplayName)(LPBINDCTX, LPOLESTR, ULONG*, LPMONIKER*);
STDMETHOD(EnumObjects)(DWORD, LPENUMUNKNOWN*);
STDMETHOD(LockContainer)(BOOL);
END_INTERFACE_PART(OleContainer)
DECLARE_INTERFACE_MAP()
DECLARE_DISPATCH_MAP()
};
//未完待续