balloonman.cpp

来自「《ATL深入解析》随书源码」· C++ 代码 · 共 30 行

CPP
30
字号
// BalloonMan.cpp : Implementation of CBallonMan
#include "stdafx.h"
#include "This.h"
#include "BalloonMan.h"

/////////////////////////////////////////////////////////////////////////////
// CBalloonMan

STDMETHODIMP CBalloonMan::CreateBalloon(long rgbColor, IBalloon **ppBalloon) {
  // Create balloon
  HRESULT     hr = CBalloon::CreateInstance(0, ppBalloon);

  if( SUCCEEDED(hr) ) {
    // Use backdoor to acquire CBalloon's this pointer
    CBalloon*   pBalloonThis = 0;
    hr = (*ppBalloon)->QueryInterface(IID_NULL, (void**)&pBalloonThis);
    if( SUCCEEDED(hr) ) {
      // Use CBalloon's this pointer for private initialization
      pBalloonThis->m_rgbColor = rgbColor;
    }
  }

  if( FAILED(hr) ) {
    (*ppBalloon)->Release();
    *ppBalloon = 0;
  }

	return hr;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?