Пример работы с COM объектом.

Чтобы иметь возможность работы с COM объектами для начала необходимо инициализировать библиотеку COM. Это делается при помощи функции CoInitialize(). После окончания работы необходимо вызвать функцию CoUninitialize().

Далее можно создавать COM объект и запрашивать его интерфейсы. Для этого предназнечена функция CoCreateInstance(). После того, как мы получили какой-либо интерфейс, при помощи функции QueryInterface() можно получить любые другие интерфейсы COM объекта. После окончания работы с интерфейсом для него необходимо вызывать функцию Release().

void CallObject()
{
  IMyInterface1* pMyInterface1;
  IMyInterface2* pMyInterface2;
  HRESULT        hr;

  CoInitialize(NULL);

  hr=CoCreateInstance(CLSID_MyComObject,
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      IID_IMyInterface1,
                      (void**)&pMyInterface1);
  if(FAILED(hr)) return;

  pMyInterface1->Fa();

  hr=pMyInterface1->QueryInterface(IID_IMyInterface2,
                                   (void**)&pMyInterface2);

  if(FAILED(hr))
  {
    pMyInterface1->Release();
    return;
  }

  pMyInterface1->Release();

  pMyInterface2->Fb();
  pMyInterface2->Fc();

  pMyInterface2->Release();

  CoUninitialize();  
}

						


Hosted by uCoz