2013년 12월 2일 월요일

SDK - ATEM Switchers (1.개요)

1.4 인터페이스 참조
모든 객체 인터페이스는 IUnknown 인터페이스의 부클래스이다.

1.4.1 IUnknown 인터페이스
각각의 API 인터페이스는 표준 COM 기본 클래스인 IUnknown의 부클래스이다. IUnknown 객체 인터페이스는 참조 횟수와 인터페이스 ID로 관계된 인터페이스를 찾는 능력을 제공한다. 인터페이스 ID 메커니즘은 현재의 응용프로그램에 영향을 끼치지 않고 API에 인터페이스가 추가되는 것을 허용한다.

메소드 설명
QueryInterface 객체의 자식 인터페이스 지원에 접근을 제공
AddRef 객체의 참조 회수 증가
Release 객체의 참조 회수 감소. 마지막 참조가 제거될 때, 객체는 해제.

1.4.1.1 IUnknown::QueryInterface 메소드
QueryInterface 메소드는 객체 인터페이스의 관계된 인터페이스를 찾는다.

  • 문법
    • HRESULT  QueryInterface(REFIID id, void **outputInterface);
  • 파라메타
    • id
      • in
      • 찾는 인터페이스의 인터페이스 ID
    • outputInterface
      • out
      • 새로운 객체 인터페이스 또는 실패시 NULL

  • 반환값
    • E_NOINTERFACE
      • 인터페이스를 못 찾음
    • S_OK
      • 성공

1.4.1.2 IUnknown::AddRef 메소드
AddRef 메소드는 객체 인터페이스의 참조 회수를 상승한다.
  • 문법
    • ULONG  AddRef();
  • 반환값
    • Count
      • 새로운 참조 횟수 - 오직 디버그 목적을 위함

1.4.1.3 IUnknown::Release 메소드
Release 메소드는 객체 인터페이스의 참조 횟수를 감소한다. 객체로부터 마지막 참조가 제거될 때, 객체는 해제될 것이다.
  • 문법
    • ULONG Release();
  • 반환값
    • Count
      • 새로운 참조 횟수 - 오직 디버그 목적을 위함

1.5 프로젝트에서 스위처 API 사용
지원되는 샘플 응용프로그램은 각 지원되는 플랫폼의 프로젝트에 스위처 API를 포함하는 방법의 예제를 제공한다
당신의 프로젝트에 스위처 API를 사용하는 것은 하나 또는 그 이상의 파일이 포함되는 것을 요구한다.
윈도우즈 : BMDSwitcherAPI.idl
맥OS X : BMDSwitcherAPI.h, BMDSwitcherAPIDispatch.cpp

1.5.2 스위처 장비에 접근하기
스위처 장비는 IBMDSwitcherDiscovery 인터페이스를 통해 접근된다.

1.5.2.1 윈도우즈
스위처 API의 주 진입점은 CBMDSwitcherDiscovery 클래스이다. 이 클래스는 COM 사용 CoCreateInstance에서 포함되어져야 한다.

BMDSwitcherDiscovery* switcherDiscovery = NULL;
CoCreateInstance(CLSID_CBMDSwitcherDiscovery, NULL, CLSCTX_ALL,
                               IID_IBMDSwitcherDiscovery, (void**)&switcherDiscovery));

성공시, CoCreateInstance는 S_OK의 HRESULT를 반환하고 switcherDiscovery는 새로운 IBMDSwitcherDiscovery 객체 인터페이스를 가리킨다.

댓글 없음:

댓글 쓰기