// 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. // Note: This header file contains useful classes that are documented only // in the MFC Technical Notes. These classes may change from version to // version, so be prepared to change your code accordingly if you utilize // this header. In the future, commonly used portions of this header // may be moved and officially documented. #ifndef __AFXPRIV2_H__ // Do not define __AFXPRIV2_H__ here. It is defined at the bottom. #ifndef __AFXPRIV_H__ #include #endif #ifdef _AFX_MINREBUILD #pragma component(minrebuild, off) #endif #ifndef _AFX_FULLTYPEINFO #pragma component(mintypeinfo, on) #endif #ifdef _AFX_PACKING #pragma pack(push, _AFX_PACKING) #endif ///////////////////////////////////////////////////////////////////////////// // AFXPRIV2 - MFC Private Classes // General OLE features #if (!defined _AFX_NO_OLE_SUPPORT) && (defined _OBJBASE_H_) // Implementation structures struct AFX_EVENT; // Event sink implementation // Classes declared in this file class COleControlLock; #endif // OLE Automation features #ifdef __AFXDISP_H__ // Classes declared in this file //IStream class CArchiveStream; // Functions declared in this file // AfxBSTR2ABTSR // AfxTaskStringA2W // AfxTaskStringW2A #endif ///////////////////////////////////////////////////////////////////////////// #undef AFX_DATA #define AFX_DATA AFX_CORE_DATA ///////////////////////////////////////////////////////////////////////////// // General OLE features #if (!defined _AFX_NO_OLE_SUPPORT) && (defined _OBJBASE_H_) #ifndef __AFXPRIV2_H__OLE__ #define __AFXPRIV2_H__OLE__ ///////////////////////////////////////////////////////////////////////////// // Implementation of event sink handling struct AFX_EVENT { enum { event, propRequest, propChanged, propDSCNotify }; AFX_EVENT(int eventKind); AFX_EVENT(int eventKind, DISPID dispid, DISPPARAMS* pDispParams = NULL, EXCEPINFO* pExcepInfo = NULL, UINT* puArgError = NULL); int m_eventKind; DISPID m_dispid; DISPPARAMS* m_pDispParams; EXCEPINFO* m_pExcepInfo; UINT* m_puArgError; BOOL m_bPropChanged; HRESULT m_hResult; DSCSTATE m_nDSCState; DSCREASON m_nDSCReason; }; AFX_INLINE AFX_EVENT::AFX_EVENT(int eventKind) { m_eventKind = eventKind; m_dispid = DISPID_UNKNOWN; m_pDispParams = NULL; m_pExcepInfo = NULL; m_puArgError = NULL; m_hResult = NOERROR; m_nDSCState = dscNoState; m_nDSCReason = dscNoReason; } AFX_INLINE AFX_EVENT::AFX_EVENT(int eventKind, DISPID dispid, DISPPARAMS* pDispParams, EXCEPINFO* pExcepInfo, UINT* puArgError) { m_eventKind = eventKind; m_dispid = dispid; m_pDispParams = pDispParams; m_pExcepInfo = pExcepInfo; m_puArgError = puArgError; m_hResult = NOERROR; m_nDSCState = dscNoState; m_nDSCReason = dscNoReason; } ///////////////////////////////////////////////////////////////////////////// // COleControlLock class COleControlLock { // Constructors public: COleControlLock(REFCLSID clsid); // Attributes CLSID m_clsid; LPCLASSFACTORY m_pClassFactory; COleControlLock* m_pNextLock; // Implementation public: virtual ~COleControlLock(); }; #endif // __AFXPRIV2_H__OLE__ #endif //(!defined _AFX_NO_OLE_SUPPORT) && (defined _OBJBASE_H_) ///////////////////////////////////////////////////////////////////////////// // OLE Automation features #ifdef __AFXDISP_H__ #ifndef __AFXPRIV2_H__DISP__ #define __AFXPRIV2_H__DISP__ ///////////////////////////////////////////////////////////////////////////// // CArchiveStream class CArchiveStream : public IStream { public: CArchiveStream(CArchive* pArchive); // Implementation CArchive* m_pArchive; STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)(); STDMETHOD(QueryInterface)(REFIID, LPVOID*); STDMETHOD(Read)(void*, ULONG, ULONG*); STDMETHOD(Write)(const void*, ULONG cb, ULONG*); STDMETHOD(Seek)(LARGE_INTEGER, DWORD, ULARGE_INTEGER*); STDMETHOD(SetSize)(ULARGE_INTEGER); STDMETHOD(CopyTo)(LPSTREAM, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*); STDMETHOD(Commit)(DWORD); STDMETHOD(Revert)(); STDMETHOD(LockRegion)(ULARGE_INTEGER, ULARGE_INTEGER,DWORD); STDMETHOD(UnlockRegion)(ULARGE_INTEGER, ULARGE_INTEGER, DWORD); STDMETHOD(Stat)(STATSTG*, DWORD); STDMETHOD(Clone)(LPSTREAM*); }; ///////////////////////////////////////////////////////////////////////////// // Global UNICODE<>ANSI translation helpers void AFXAPI AfxBSTR2CString(CString* pStr, BSTR bstr); #if !defined(_UNICODE) && !defined(OLE2ANSI) BSTR AFXAPI AfxBSTR2ABSTR(BSTR bstrW); LPWSTR AFXAPI AfxTaskStringA2W(LPCSTR lpa); LPSTR AFXAPI AfxTaskStringW2A(LPCWSTR lpw); #endif #endif // __AFXPRIV2_H__DISP__ #endif // __AFXDISP_H__ ///////////////////////////////////////////////////////////////////////////// #ifdef _AFX_PACKING #pragma pack(pop) #endif #undef AFX_DATA #define AFX_DATA #ifdef _AFX_MINREBUILD #pragma component(minrebuild, on) #endif #ifndef _AFX_FULLTYPEINFO #pragma component(mintypeinfo, off) #endif #if (defined __AFXPRIV2_H__OLE__) && (defined __AFXPRIV2_H__DISP__) #define __AFXPRIV2_H__ #endif #endif // __AFXPRIV2_H__ /////////////////////////////////////////////////////////////////////////////