Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: None  |  size: 2.46 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. PeekMessage C   64-bit
  2. // Main message loop:
  3. bool noQuit = true;
  4. while (noQuit)
  5. {
  6.     if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
  7.     {
  8.         TranslateMessage(&msg);
  9.         DispatchMessage(&msg);
  10.  
  11.         if (msg.message == WM_QUIT)
  12.             noQuit = false;
  13.     }
  14.     else
  15.     {
  16.         DrawFrame();
  17.     }
  18. }
  19.        
  20. CFlashDXPlayer::CFlashDXPlayer(HMODULE flashDLL, unsigned int width, unsigned int height)
  21. {
  22. m_userData = NULL;
  23. m_flashInterface = NULL;
  24. m_oleObject = NULL;
  25. m_windowlessObject = NULL;
  26. m_lastMouseX = 0;
  27. m_lastMouseY = 0;
  28. m_lastMouseButtons = 0;
  29.  
  30. m_dirtyFlag = false;
  31.  
  32. m_width = width;
  33. m_height = height;
  34.  
  35. m_controlSite.Init(this);
  36. m_controlSite.AddRef();
  37.  
  38. m_alphaBlackDC = NULL;
  39. m_alphaBlackBitmap = NULL;
  40. m_alphaBlackBuffer = NULL;
  41. m_alphaWhiteDC = NULL;
  42. m_alphaWhiteBitmap = NULL;
  43. m_alphaWhiteBuffer = NULL;
  44.  
  45. HRESULT hr;
  46.  
  47. typedef HRESULT (__stdcall *DllGetClassObjectFunc)(REFCLSID rclsid, REFIID riid, LPVOID * ppv);
  48.  
  49. if (flashDLL != NULL)
  50. {
  51.     IClassFactory* aClassFactory = NULL;
  52.     DllGetClassObjectFunc aDllGetClassObjectFunc = (DllGetClassObjectFunc) GetProcAddress(flashDLL, "DllGetClassObject");
  53.     hr = aDllGetClassObjectFunc(CLSID_ShockwaveFlash, IID_IClassFactory, (void**)&aClassFactory);
  54.  
  55.     if (FAILED(hr))
  56.         return;
  57.  
  58.     aClassFactory->CreateInstance(NULL, IID_IOleObject, (void**)&m_oleObject);
  59.     aClassFactory->Release();  
  60. }
  61. else
  62. {
  63.     hr = CoCreateInstance(CLSID_ShockwaveFlash, NULL, CLSCTX_INPROC_SERVER, IID_IOleObject, (void**)&m_oleObject);
  64.  
  65.     if (FAILED(hr))
  66.         return;
  67. }
  68.  
  69. IOleClientSite* pClientSite = NULL;
  70. hr = m_controlSite.QueryInterface(__uuidof(IOleClientSite), (void**)&pClientSite);
  71. if (FAILED(hr))
  72.     return;
  73.  
  74. hr = m_oleObject->SetClientSite(pClientSite);
  75. if (FAILED(hr))
  76.     return;
  77.  
  78. hr = m_oleObject->QueryInterface(__uuidof(IShockwaveFlash), (void**)&m_flashInterface);
  79. if (FAILED(hr))
  80.     return;
  81.  
  82. m_flashInterface->DisableLocalSecurity();
  83. m_flashInterface->PutEmbedMovie(FALSE);
  84. m_flashInterface->PutAllowScriptAccess(L"always");
  85. SetTransparencyMode(IFlashDXPlayer::TMODE_OPAQUE);
  86. SetQuality(IFlashDXPlayer::QUALITY_HIGH);
  87.  
  88. hr = m_oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, pClientSite, 0, NULL, NULL);
  89. assert(SUCCEEDED(hr));
  90.  
  91. pClientSite->Release();
  92.  
  93. hr = m_oleObject->QueryInterface(__uuidof(IOleInPlaceObjectWindowless), (void**)&m_windowlessObject);
  94. assert(SUCCEEDED(hr));
  95.  
  96. m_flashSink.Init(this);
  97. m_flashSink.AddRef();
  98.  
  99. // Resize player
  100. ResizePlayer(width, height);
  101. }
  102.        
  103. m_flashLibHandle = LoadLibrary(L"Flash11e.ocx");