Share.cpp
上传用户:popouu88
上传日期:2013-02-11
资源大小:2894k
文件大小:3k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. // Share.cpp : Defines the initialization routines for the DLL.
  2. //
  3. #include "stdafx.h"
  4. #include "Share.h"
  5. #include "MainFrame.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. //
  12. // Note!
  13. //
  14. // If this DLL is dynamically linked against the MFC
  15. // DLLs, any functions exported from this DLL which
  16. // call into MFC must have the AFX_MANAGE_STATE macro
  17. // added at the very beginning of the function.
  18. //
  19. // For example:
  20. //
  21. // extern "C" BOOL PASCAL EXPORT ExportedFunction()
  22. // {
  23. // AFX_MANAGE_STATE(AfxGetStaticModuleState());
  24. // // normal function body here
  25. // }
  26. //
  27. // It is very important that this macro appear in each
  28. // function, prior to any calls into MFC.  This means that
  29. // it must appear as the first statement within the 
  30. // function, even before any object variable declarations
  31. // as their constructors may generate calls into the MFC
  32. // DLL.
  33. //
  34. // Please see MFC Technical Notes 33 and 58 for additional
  35. // details.
  36. //
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CShareApp
  39. BEGIN_MESSAGE_MAP(CShareApp, CWinApp)
  40. //{{AFX_MSG_MAP(CShareApp)
  41. //}}AFX_MSG_MAP
  42. END_MESSAGE_MAP()
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CShareApp construction
  45. CShareApp::CShareApp()
  46. {
  47. }
  48. /////////////////////////////////////////////////////////////////////////////
  49. // The one and only CShareApp object
  50. CShareApp theApp;
  51. extern "C" __declspec( dllexport ) CWnd * CreateShareWnd( bool ( * OnShare )( void * pContext , CWnd * pShareWnd , char * buffer , int size ) , void * pContext , const char * username )
  52. {
  53. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  54.     //创建窗口
  55. CMainFrame * frame = new CMainFrame( );
  56. frame->OnShare = OnShare;
  57. frame->pContext = pContext;
  58. frame->userName = username;
  59. return frame;
  60. }
  61. extern "C" __declspec( dllexport ) void SetShareMessage( CWnd * pShareWnd , char * buffer , int size )
  62. {
  63. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  64. CMainFrame * frame = ( CMainFrame * )pShareWnd;
  65. if( buffer && size && ::IsWindow( frame->GetSafeHwnd( ) ) && ::IsWindow( frame->GetView( )->GetSafeHwnd( ) ) )
  66. switch( *( int * )buffer )
  67. {//显示位图
  68. case VIDEO : frame->GetView( )->DrawBitmap( buffer , size ); break;
  69.         //鼠标键盘的命令
  70. case COMMAND : frame->GetView( )->DoCommand( buffer , size ); break;
  71.         //设定控制权
  72. case CONTROL : frame->GetView( )->DoControl( buffer , size ); break;
  73.         //全屏显示
  74. case FULLSCREEN : frame->PostMessage( WM_COMMAND , ID_FULLSCREEN ); break;
  75. }
  76. }
  77. }