TInitOleクラスでCOMの初期化を簡単に行う

TInitOleクラスでCOMの初期化を簡単に行うことができるTInitOleクラスを紹介します。

COMを使用する場合、最初にCoInitializeEx()やCoInitialize()で初期化し、最後にCoUninitialize()で終了します。

//COMを使う前の準備
HRESULT hr_Initializing_OLE = ::CoInitialize(0);
bool init = SUCCEEDED(hr_Initializing_OLE);
try 
{
  //COMを使った処理
  DoSomething();
} 
__finally 
{
  //COMを使った後の終了処理
  if (init)
    ::CoUninitialize();
}

C++BuilderにはTInitOleというクラスが用意されています。
COMの初期化と終了処理を行うRAIIクラスです。

TInitOleクラスを使うとCOMの初期化と終了処理をすっきりと書くことができます。

#include <utilcls.h>

{
  TInitOle initOle; //TInitOleのコンストラクタでCOMの初期化を行う

  //COMを使った処理
  DoSomething();

} //TInitOleのデストラクタでCOMの終了処理を行う

シンプルですが便利なクラスだと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください