다음을 통해 공유


IMultiInterfaceEventControl::GetSubscriptions 메서드(eventsys.h)

이벤트 메서드와 연결된 구독 개체의 컬렉션을 검색합니다.

구문

HRESULT GetSubscriptions(
  [in]          REFIID                 eventIID,
  [in]          BSTR                   bstrMethodName,
  [in]          BSTR                   optionalCriteria,
  [in]          int                    *optionalErrorIndex,
  [out, retval] IEventObjectCollection **ppCollection
);

매개 변수

[in] eventIID

발생 인터페이스의 인터페이스 식별자입니다.

[in] bstrMethodName

구독 컬렉션과 연결된 이벤트 메서드입니다.

[in] optionalCriteria

쿼리 조건을 지정하는 문자열입니다. 이 매개 변수가 NULL이면 SetDefaultQuery 메서드에 지정된 기본 쿼리가 사용됩니다. 이 매개 변수에 대한 유효한 식을 형성하는 자세한 내용은 아래 설명 섹션을 참조하세요.

[in] optionalErrorIndex

optionalCriteria 매개 변수에서 오류의 오프셋으로 표현된 위치입니다. 이 매개 변수는 NULL일 수 없습니다.

[out, retval] ppCollection

이벤트 개체와 연결된 구독을 열거하는 컬렉션 개체의 IEventObjectCollection 인터페이스에 대한 포인터의 주소입니다.

반환 값

이 메서드는 다음 값뿐만 아니라 표준 반환 값 E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED 및 E_FAIL 반환할 수 있습니다.

반환 코드 Description
S_OK
메서드가 완료되었습니다.
EVENT_E_QUERYSYNTAX
쿼리 문자열을 평가하는 동안 구문 오류가 발생했습니다.
EVENT_E_QUERYFIELD
쿼리 문자열에 잘못된 필드 이름이 사용되었습니다.
EVENT_E_INTERNALEXCEPTION
예기치 않은 예외가 발생했습니다.
EVENT_E_INTERNALERROR
예기치 않은 내부 오류가 감지되었습니다.

설명

이 메서드는 보다 특수한 형식의 IEventSystem::Query 메서드입니다. 구독 개체만 가져오는 것 외에도 구독 컬렉션이 변경될 때마다 GetSubscriptions 를 호출하여 가져온 컬렉션이 자동으로 업데이트됩니다.

optionalCriteria 매개 변수로 지정된 쿼리 조건은 모든 구독 개체에 대한 요청을 지정하기 위해 "ALL"일 수 있으며, 쿼리 결과에 포함하려면 구독 개체가 충족해야 하는 하나 이상의 조건을 나타내는 부울 식일 수 있습니다. 유효한 식은 다음과 같은 형식입니다.

[NOT] propertynamerelationalOperator입니다. 유효한 관계형 연산자는 다음과 같습니다.

==, =, !=, <>, ~=. 유효한 값은 "string", 'string', {GUID}, TRUE, FALSE, NULL입니다.

개별 부울 식을 AND 또는 OR과 조인할 수 있습니다. 식은 괄호 안에 중첩되어 특정 평가 순서를 적용할 수 있습니다.

다음은 유효한 쿼리 조건의 몇 가지 예입니다.

"EventClassID == {F89859D1-6565-11D1-88C8-0080C7D771BF}"

"EventClassID == {F89859D1-6565-11D1-88C8-0080C7D771BF} AND MethodName = 'StockPriceChange'"

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 eventsys.h

추가 정보

IMultiInterfaceEventControl