| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489 |
- // 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()
- };
- /////////////////////////////////////////////////////////////////////////////
- // COleControlSite - implementation class
- #define VT_MFCFORCEPUTREF 0x8000 // force DISPATCH_PROPERTYPUTREF
- class COleControlSite : public CCmdTarget
- {
- public:
- // Constructors/destructors
- COleControlSite(COleControlContainer* pCtrlCont);
- ~COleControlSite();
- // Operations
- HRESULT CreateControl(CWnd* pWndCtrl, REFCLSID clsid,
- LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, UINT nID,
- CFile* pPersist=NULL, BOOL bStorage=FALSE, BSTR bstrLicKey=NULL);
- // Overload to allow creation of default-sized controls
- HRESULT 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);
- virtual BOOL DestroyControl();
- UINT GetID();
- BOOL GetEventIID(IID* piid);
- virtual HRESULT DoVerb(LONG nVerb, LPMSG lpMsg = NULL);
- BOOL IsDefaultButton();
- DWORD GetDefBtnCode();
- void SetDefaultButton(BOOL bDefault);
- void GetControlInfo();
- BOOL IsMatchingMnemonic(LPMSG lpMsg);
- void SendMnemonic(LPMSG lpMsg);
- void FreezeEvents(BOOL bFreeze);
- virtual void InvokeHelperV(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
- void* pvRet, const BYTE* pbParamInfo, va_list argList);
- virtual void SetPropertyV(DISPID dwDispID, VARTYPE vtProp, va_list argList);
- virtual void AFX_CDECL InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
- void* pvRet, const BYTE* pbParamInfo, ...);
- virtual void GetProperty(DISPID dwDispID, VARTYPE vtProp, void* pvProp) const;
- virtual void AFX_CDECL SetProperty(DISPID dwDispID, VARTYPE vtProp, ...);
- virtual BOOL AFX_CDECL SafeSetProperty(DISPID dwDispID, VARTYPE vtProp, ...);
- virtual DWORD GetStyle() const;
- virtual DWORD GetExStyle() const;
- virtual BOOL ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags);
- virtual BOOL ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags);
- virtual void SetWindowText(LPCTSTR lpszString);
- virtual void GetWindowText(CString& str) const;
- virtual int GetWindowText(LPTSTR lpszStringBuf, int nMaxCount) const;
- virtual int GetWindowTextLength() const;
- virtual int GetDlgCtrlID() const;
- virtual int SetDlgCtrlID(int nID);
- virtual void MoveWindow(int x, int y, int nWidth, int nHeight,
- BOOL bRepaint);
- virtual BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y,
- int cx, int cy, UINT nFlags);
- virtual BOOL ShowWindow(int nCmdShow);
- virtual BOOL IsWindowEnabled() const;
- virtual BOOL EnableWindow(BOOL bEnable);
- virtual CWnd* SetFocus();
- virtual void EnableDSC();
- virtual void BindDefaultProperty(DISPID dwDispID, VARTYPE vtProp, LPCTSTR szFieldName, CWnd* pDSCWnd);
- virtual void BindProperty(DISPID dwDispId, CWnd* pWndDSC);
- // Overridables
- virtual BOOL QuickActivate();
- // Attributes
- COleControlContainer* m_pCtrlCont;
- HWND m_hWnd;
- CWnd* m_pWndCtrl;
- UINT m_nID;
- CRect m_rect;
- IID m_iidEvents;
- LPOLEOBJECT m_pObject;
- LPOLEINPLACEOBJECT m_pInPlaceObject;
- LPOLEINPLACEACTIVEOBJECT m_pActiveObject;
- COleDispatchDriver m_dispDriver;
- DWORD m_dwEventSink;
- DWORD m_dwPropNotifySink;
- DWORD m_dwStyleMask;
- DWORD m_dwStyle;
- DWORD m_dwMiscStatus;
- CONTROLINFO m_ctlInfo;
- // Databound control stuff
- DWORD m_dwNotifyDBEvents; // INotifyDBEvents sink cookie
- CDataSourceControl* m_pDataSourceControl;
- CDataBoundProperty* m_pBindings;
- union {
- COleControlSite *m_pDSCSite;
- WORD m_ctlidRowSource;
- };
- DISPID m_defdispid;
- UINT m_dwType;
- CString m_strDataField;
- BOOL m_bIgnoreNotify;
- BOOL m_bIsDirty;
- VARIANT m_varResult;
- protected:
- // Implementation
- BOOL SetExtent();
- HRESULT CreateOrLoad(REFCLSID clsid, CFile* pPersist, BOOL bStorage,
- BSTR bstrLicKey);
- DWORD ConnectSink(REFIID iid, LPUNKNOWN punkSink);
- void DisconnectSink(REFIID iid, DWORD dwCookie);
- void AttachWindow();
- void DetachWindow();
- BOOL OnEvent(AFX_EVENT* pEvent);
- HRESULT GetCursor(DISPID dispid, LPUNKNOWN* ppcursorOut, LPVOID *ppcidOut);
- public:
- // Interface maps
- BEGIN_INTERFACE_PART(OleClientSite, IOleClientSite)
- INIT_INTERFACE_PART(COleControlSite, OleClientSite)
- STDMETHOD(SaveObject)();
- STDMETHOD(GetMoniker)(DWORD, DWORD, LPMONIKER*);
- STDMETHOD(GetContainer)(LPOLECONTAINER*);
- STDMETHOD(ShowObject)();
- STDMETHOD(OnShowWindow)(BOOL);
- STDMETHOD(RequestNewObjectLayout)();
- END_INTERFACE_PART(OleClientSite)
- BEGIN_INTERFACE_PART(OleIPSite, IOleInPlaceSite)
- INIT_INTERFACE_PART(COleControlSite, OleIPSite)
- STDMETHOD(GetWindow)(HWND*);
- STDMETHOD(ContextSensitiveHelp)(BOOL);
- STDMETHOD(CanInPlaceActivate)();
- STDMETHOD(OnInPlaceActivate)();
- STDMETHOD(OnUIActivate)();
- STDMETHOD(GetWindowContext)(LPOLEINPLACEFRAME*,
- LPOLEINPLACEUIWINDOW*, LPRECT, LPRECT, LPOLEINPLACEFRAMEINFO);
- STDMETHOD(Scroll)(SIZE);
- STDMETHOD(OnUIDeactivate)(BOOL);
- STDMETHOD(OnInPlaceDeactivate)();
- STDMETHOD(DiscardUndoState)();
- STDMETHOD(DeactivateAndUndo)();
- STDMETHOD(OnPosRectChange)(LPCRECT);
- END_INTERFACE_PART(OleIPSite)
- BEGIN_INTERFACE_PART(OleControlSite, IOleControlSite)
- INIT_INTERFACE_PART(COleControlSite, OleControlSite)
- STDMETHOD(OnControlInfoChanged)();
- STDMETHOD(LockInPlaceActive)(BOOL fLock);
- STDMETHOD(GetExtendedControl)(LPDISPATCH* ppDisp);
- STDMETHOD(TransformCoords)(POINTL* lpptlHimetric,
- POINTF* lpptfContainer, DWORD flags);
- STDMETHOD(TranslateAccelerator)(LPMSG lpMsg, DWORD grfModifiers);
- STDMETHOD(OnFocus)(BOOL fGotFocus);
- STDMETHOD(ShowPropertyFrame)();
- END_INTERFACE_PART(OleControlSite)
- BEGIN_INTERFACE_PART(AmbientProps, IDispatch)
- INIT_INTERFACE_PART(COleControlSite, AmbientProps)
- STDMETHOD(GetTypeInfoCount)(unsigned int*);
- STDMETHOD(GetTypeInfo)(unsigned int, LCID, ITypeInfo**);
- STDMETHOD(GetIDsOfNames)(REFIID, LPOLESTR*, unsigned int, LCID, DISPID*);
- STDMETHOD(Invoke)(DISPID, REFIID, LCID, unsigned short, DISPPARAMS*,
- VARIANT*, EXCEPINFO*, unsigned int*);
- END_INTERFACE_PART(AmbientProps)
- BEGIN_INTERFACE_PART(PropertyNotifySink, IPropertyNotifySink)
- INIT_INTERFACE_PART(COleControlSite, PropertyNotifySink)
- STDMETHOD(OnChanged)(DISPID dispid);
- STDMETHOD(OnRequestEdit)(DISPID dispid);
- END_INTERFACE_PART(PropertyNotifySink)
- BEGIN_INTERFACE_PART(EventSink, IDispatch)
- INIT_INTERFACE_PART(COleControlSite, EventSink)
- STDMETHOD(GetTypeInfoCount)(unsigned int*);
- STDMETHOD(GetTypeInfo)(unsigned int, LCID, ITypeInfo**);
- STDMETHOD(GetIDsOfNames)(REFIID, LPOLESTR*, unsigned int, LCID, DISPID*);
- STDMETHOD(Invoke)(DISPID, REFIID, LCID, unsigned short, DISPPARAMS*,
- VARIANT*, EXCEPINFO*, unsigned int*);
- END_INTERFACE_PART(EventSink)
- BEGIN_INTERFACE_PART(BoundObjectSite, IBoundObjectSite)
- STDMETHOD(GetCursor)(DISPID dispid, LPLPCURSOR ppcursorOut, LPVOID *ppcidOut);
- END_INTERFACE_PART(BoundObjectSite)
- BEGIN_INTERFACE_PART(NotifyDBEvents, INotifyDBEvents)
- STDMETHOD(OKToDo)(DWORD dwEventWhat, ULONG cReasons, DBNOTIFYREASON rgReasons[]);
- STDMETHOD(Cancelled)(DWORD dwEventWhat, ULONG cReasons, DBNOTIFYREASON rgReasons[]);
- STDMETHOD(SyncBefore)(DWORD dwEventWhat, ULONG cReasons, DBNOTIFYREASON rgReasons[]);
- STDMETHOD(AboutToDo)(DWORD dwEventWhat, ULONG cReasons, DBNOTIFYREASON rgReasons[]);
- STDMETHOD(FailedToDo)(DWORD dwEventWhat, ULONG cReasons, DBNOTIFYREASON rgReasons[]);
- STDMETHOD(SyncAfter)(DWORD dwEventWhat, ULONG cReasons, DBNOTIFYREASON rgReasons[]);
- STDMETHOD(DidEvent)(DWORD dwEventWhat, ULONG cReasons, DBNOTIFYREASON rgReasons[]);
- // Not part of i/f - just a helper
- HRESULT FireEvent(DWORD dwEventWhat, ULONG cReasons,
- DBNOTIFYREASON rgReasons[], DSCSTATE nState);
- END_INTERFACE_PART(NotifyDBEvents)
- BEGIN_INTERFACE_PART(RowsetNotify, IRowsetNotify)
- STDMETHOD(OnFieldChange)(IRowset* pRowset, HROW hRow, ULONG cColumns, ULONG rgColumns[], DBREASON eReason, DBEVENTPHASE ePhase, BOOL fCantDeny);
- STDMETHOD(OnRowChange)(IRowset* pRowset, ULONG cRows, const HROW rghRows[], DBREASON eReason, DBEVENTPHASE ePhase, BOOL fCantDeny);
- STDMETHOD(OnRowsetChange)(IRowset* pRowset, DBREASON eReason, DBEVENTPHASE ePhase, BOOL fCantDeny);
- END_INTERFACE_PART(RowsetNotify)
- DECLARE_INTERFACE_MAP()
- };
- /////////////////////////////////////////////////////////////////////////////
- // OLE control container manager
- class COccManager : public CNoTrackObject
- {
- // Operations
- public:
- // Event handling
- virtual BOOL OnEvent(CCmdTarget* pCmdTarget, UINT idCtrl, AFX_EVENT* pEvent,
- AFX_CMDHANDLERINFO* pHandlerInfo);
- // Internal object creation
- virtual COleControlContainer* CreateContainer(CWnd* pWnd);
- virtual COleControlSite* CreateSite(COleControlContainer* pCtrlCont);
- // Dialog creation
- virtual const DLGTEMPLATE* PreCreateDialog(_AFX_OCC_DIALOG_INFO* pOccDialogInfo,
- const DLGTEMPLATE* pOrigTemplate);
- virtual void PostCreateDialog(_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
- virtual DLGTEMPLATE* SplitDialogTemplate(const DLGTEMPLATE* pTemplate,
- DLGITEMTEMPLATE** ppOleDlgItems);
- virtual BOOL CreateDlgControls(CWnd* pWndParent, LPCTSTR lpszResourceName,
- _AFX_OCC_DIALOG_INFO* pOccDialogInfo);
- virtual BOOL CreateDlgControls(CWnd* pWndParent, void* lpResource,
- _AFX_OCC_DIALOG_INFO* pOccDialogInfo);
- // Dialog manager
- virtual BOOL IsDialogMessage(CWnd* pWndDlg, LPMSG lpMsg);
- static BOOL AFX_CDECL IsLabelControl(CWnd* pWnd);
- static BOOL AFX_CDECL IsMatchingMnemonic(CWnd* pWnd, LPMSG lpMsg);
- static void AFX_CDECL SetDefaultButton(CWnd* pWnd, BOOL bDefault);
- static DWORD AFX_CDECL GetDefBtnCode(CWnd* pWnd);
- // Implementation
- protected:
- // Dialog creation
- HWND CreateDlgControl(CWnd* pWndParent, HWND hwAfter, BOOL bDialogEx,
- LPDLGITEMTEMPLATE pDlgItem, WORD nMsg, BYTE* lpData, DWORD cb);
- // Databinding
- void BindControls(CWnd* pWndParent);
- // Dialog manager
- static void AFX_CDECL UIActivateControl(CWnd* pWndNewFocus);
- static void AFX_CDECL UIDeactivateIfNecessary(CWnd* pWndOldFocus, CWnd* pWndNewFocus);
- };
- struct _AFX_OCC_DIALOG_INFO
- {
- DLGTEMPLATE* m_pNewTemplate;
- DLGITEMTEMPLATE** m_ppOleDlgItems;
- };
- #endif // !_AFX_NO_OCC_SUPPORT
|