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

Windows编程

开发平台:

Visual C++

  1. // idataobj.h
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. // Header file for the IDataObject interface viewer.
  13. //
  14. //
  15. // Charlie Kindel, Program Manager
  16. // Microsoft Vertical Developer Relations
  17. // August 6, 1993
  18. //
  19. // InterNet   :  ckindel@microsoft.com
  20. // CompuServe :  >INTERNET:ckindel@microsoft.com
  21. //
  22. // Revisions:
  23. //  August 6, 1993  cek     First implementation.
  24. //
  25. #ifndef _IDATAOBJ_H_
  26. #define _IDATAOBJ_H_
  27. int WINAPI GetTextMetricsCorrectly( HDC hDC, LPTEXTMETRIC lpTM ) ;
  28. typedef struct FAR tagCOLUMNSTRUCT
  29. {
  30.    int   nLeft ;       // starting x position of the column
  31.    int   nRight ;      // ending x position of the column
  32.    UINT  uiFlags ;      // format flags
  33. } COLUMNSTRUCT, *PCOLUMNSTRUCT, FAR *LPCOLUMNSTRUCT ;
  34. void WINAPI ColumnTextOut( HDC hdc, int nX, int nY, LPTSTR lpszIN,
  35. int cColumns, LPCOLUMNSTRUCT rgColumns );
  36. void WINAPI DlgCenter( HWND hwndCenter, HWND hwndWithin, BOOL fClient ) ;
  37. class CImpIAdviseSink ;
  38. #define CCHOUTPUTMAX        8192
  39. #define CLINESMAX           500
  40. #define WM_OUTPUTBUFFERHASDATA      (WM_USER+1000)
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CIDataObjectDlg dialog
  43. //
  44. extern "C"
  45. BOOL CALLBACK fnIDataObjectDlg( HWND hDlg, UINT uiMsg, WPARAM wParam, LPARAM lParam ) ;
  46. class FAR CIDataObjectDlg
  47. {
  48. friend BOOL CALLBACK fnIDataObjectDlg( HWND hDlg, UINT uiMsg, WPARAM wParam, LPARAM lParam ) ;
  49. friend class CImpIAdviseSink ;
  50. public:
  51. CIDataObjectDlg( HWND hwnd, LPDATAOBJECT lpDO, REFIID riid, LPTSTR lpszName ) ;
  52. ~CIDataObjectDlg() ;
  53. int DoModal( void ) ;
  54. LPDATAOBJECT    m_lpDO ;
  55. LPTSTR          m_lpszName ;
  56. FORMATETC       m_fetc ;
  57. DWORD           m_advf ;
  58. BOOL            m_fDoOnGetDataPosted ;
  59. HWND        m_hWndParent ;
  60. HWND        m_hDlg ;
  61. HWND        m_btnDoGetData ;
  62. HWND        m_btnSetupAdvise ;
  63. HWND        m_lbGetData ;
  64. HWND        m_edtAdvise ;
  65. TCHAR       m_szOutput[CCHOUTPUTMAX] ;
  66. METAFILEPICT m_MetaFile ;
  67. UINT        m_cchOutput ;
  68. UINT        m_cLinesOutput ;
  69. HWND        m_chkUpdateDisplay ;
  70. BOOL        m_fUpdateDisplay ;
  71. HWND        m_chkPrimeFirst ;
  72. HWND        m_lbFmtEtc ;
  73. HWND        m_chkDump ;
  74. DWORD       m_dwTime ;
  75. DWORD       m_cOnDataChanges ;
  76. CImpIAdviseSink FAR* m_pSink ;
  77. DWORD               m_dwConn ;
  78. // Implementation
  79. protected:
  80. BOOL DoIDataObject( UINT nLevel, LPDATAOBJECT pI ) ;
  81. BOOL DoIEnumFormatEtc( UINT nLevel, LPENUMFORMATETC pI ) ;
  82. int AddItem( UINT nLevel, LPTSTR sz, LPVOID lpData, UINT uiType, int cColumns, LPCOLUMNSTRUCT  rgCol ) ;
  83. int AddItem( UINT nLevel, LPTSTR sz, LPVOID lpData, UINT uiType ) ;
  84. int AddItem( UINT nLevel, LPTSTR sz, LPVOID lpData ) ;
  85. BOOL OnInitDialog();
  86. void OnDoGetData() ;
  87. HRESULT GotData( LPFORMATETC lpfetc, LPSTGMEDIUM lpstm ) ;
  88. void OnSetupAdvise() ;
  89. void OnKillAdvise() ;
  90. void OnSize(UINT nType, int cx, int cy);
  91. void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
  92. void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
  93. void OnDblClkFormatEtc();
  94. void OnSelChangeFormatEtc();
  95. void OnDestroy();
  96. BOOL  WriteToOutput( LPTSTR lpsz ) ;
  97. void OnOutputBufferHasData() ;
  98. };
  99. #endif // _IDATAOBJ_H_